新 ASP.Net MVC 项目的体系结构

本文关键字:体系结构 项目 MVC ASP Net | 更新日期: 2023-09-27 18:30:50

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

客户

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

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

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

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

新 ASP.Net MVC 项目的体系结构

使用 WCF、业务层程序集或 Web API 本身并没有什么问题。都有优点和缺点。

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

如果您非常确定数据/业务逻辑不需要由您正在开发的 2 个 Web 应用程序以外的客户端访问,那么业务层组装将是有意义的。不过,这并不是说你被束缚在这样做上。您始终可以从此处开始,然后删除对程序集的引用,在 WCF 或 Web API 中封装对程序集的访问,然后从 Web 应用程序引用 WCF 或 Web API。

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