MVC当所有方法都来自Web服务时的最佳实践

时间:2010-09-22 15:42:02

标签: asp.net-mvc

您好我们有第三方应用程序,它公开了用于构建网站的Web服务。它处理创建会话,获取产品数据,购物车以及检出对数据库的调用。我是MVC的新手,我的问题是我如何将这个web服务工作到我正在构建的mvc网站中,我也希望利用测试。我无法更改对数据库的访问权限,我必须使用Web服务。

谢谢! 乔恩

1 个答案:

答案 0 :(得分:1)

我通常使用服务模式处理数据访问。在你的情况下,我有一个像IProductsService这样的接口,通常的方法是GetProducts(),GetProduct(id)......等等。通过对该接口进行编码,您的控制器将不关心数据的来源,因此您将声明并使用您的依赖项

private IProductsService _productsService

...

IEnumerable<Products> products = _productService.GetProducts();

这对于测试目的来说非常方便,因为对于IoC,您可以根据您的测试用例注入不同的服务(例如,返回硬编码列表)。最终,如果你们切换到不同的策略并直接访问数据存储,你只需要创建一个新服务,实现接口并注入该接口。