从ASP .NET MVC3调用WCF服务的最佳实践是什么?

Kin*_*ing 4 wcf asp.net-mvc-3

我负责ASP .NET MVC 3 Web应用程序的解决方案体系结构,并希望确保遵循最佳实践.我以前曾使用过MVC 3,但是使用了别人放在一起的解决方案.

我主要担心的是Web应用程序将使用WCF服务来检索和更新数据.我不认为直接从我的控制器方法调用WCF服务是最好的做法,但我不确定什么是一个好的替代方案(可能是一个Repository模式,这与WCF一起使用会不常见吗?).我只想知道我是否可以使用标准模式/练习.

此外,WCF服务是许多其他Web服务的包装器,因此它拥有自己的业务对象类.我不确定是否应该在WCF服务类和MVC应用程序中的模型类之间创建另一级抽象.因此,例如WCF服务有一个Reservation类,我是否需要在我的模型中为Web应用程序创建相同的类?

任何援助将不胜感激.谢谢!

ole*_*sii 9

我的2美分

...我不认为直接从我的控制器方法调用WCF服务是最好的做法,但我不确定什么是一个好的替代方案(也许是一个存储库模式[...])

不,不要做另一个抽象.直接使用您的服务,将代理实例注入您的控制器,然后直接从那里调用WCF方法.如果您愿意,可以创建一个包装类来处理一些WCF错误或错误.

您的应用程序是否允许在WCF之间轻松切换并在最近的将来说出数据库(作为数据源)?如果不远离存储库模式 - 保持简单,愚蠢!

此外,WCF服务是许多其他Web服务的包装器,因此它拥有自己的业务对象类.

不要编写复制粘贴代码,因为它很难维护.如果您需要在其中一个服务中更改一种类型,则必须在其他服务中执行相同的镜像更改.

而是将所有常见业务对象分离到一个单独的项目(核心库)中,并在任何其他解决方案中重用此库.