【问题标题】:Architecture for new ASP.Net MVC Project新 ASP.Net MVC 项目的架构
【发布时间】:2013-09-14 01:09:35
【问题描述】:

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

客户想要一个内部网站来管理他们的客户、项目、库存/产品…… 除此之外,他们还希望为他们的客户提供一个网站,在那里他们可以查看产品并订购它们。所以对于外部网站,只有一小部分的数据库会被查询,而内部网站会更大。

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

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

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

【问题讨论】:

  • 25 次浏览,没有人发表意见?

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


【解决方案1】:

使用 WCF、业务层组装或 Web API 本身并没有错。都有优点和缺点。

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

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

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

【讨论】:

  • 这不是让你可以在任何 MVC 项目中添加一个 Web API 控制器。如果是这样,我可以创建管理/内部网站并向其添加 Web API 控制器,以提供我需要在客户端/外部网站上实现订单产品的 CRUD 操作。
  • 是的,您确实可以这样做。这是一篇关于完成它需要采取的步骤的好帖子:link
  • 那么我认为 Web API 对我来说是最好的选择,因为我只需要其他网站中的一小部分逻辑。
猜你喜欢
  • 2010-10-01
  • 1970-01-01
  • 2013-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-29
  • 2015-04-02
相关资源
最近更新 更多