新的ASP.Net MVC项目的架构

时间:2013-09-10 10:51:48

标签: c# wcf asp.net-mvc-4 design-patterns architecture

我正处于一个新项目的开始,但我不确定一些架构选择。 我希望你们能分享你对此的看法。

客户想要一个内部网站来管理他们的客户,项目,股票/产品,...... 除此之外,他们还希望为客户提供一个网站,供他们查看产品并订购。因此,对于外部网站,只会查询数据库的一小部分,而内部网站会更大。

首先,我考虑为所有businesslogic和存储库使用WCF服务。 但现在我不确定,因为我知道只有一小部分实际逻辑将用于外部部件。

使用WCF作为额外的层总是会给项目带来额外的工作和复杂性。在两个网站项目中引用业务/存储库层或在外部网站中使用webAPI更好吗?

在我决定做什么之前,我真的需要听取其他一些意见。

1 个答案:

答案 0 :(得分:2)

转发WCF,业务层程序集或Web API没有任何内在错误。所有人都有优点和缺点。

如果有一天你可能有许多不同的客户需要访问数据/业务逻辑,并且这些客户端可能需要以不同的方式进行通信(即HTTP,MSMQ,全双工等),那么WCF将是最有意义的。

如果您非常确定除了正在开发的2个Web应用程序之外的客户端不需要访问数据/业务逻辑,那么

业务层程序集是有意义的。这并不是说你在做这件事时也是如此。您可以随时从此处开始,稍后删除对程序集的引用,封装对WCF或Web API中程序集的访问,然后从Web应用程序引用WCF或Web API。

Web API是一个很好的选择,原因有几个。它为许多不同的客户端提供了访问数据/业务逻辑的能力,而没有WCF带来的所有开销。此外,如果您有非.NET客户端,则无需担心在WCF绑定上可能需要进行的一些调整。您还可以利用MVC在Web API中为您提供的一些功能,例如模型绑定和验证。