设计MVC5 Web App的体系结构

时间:2013-11-23 04:03:47

标签: asp.net-mvc architecture asp.net-web-api asp.net-mvc-5 asp.net-web-api2

我正在制作一个MVC网站。这是我之前计划做的事情:

Data Access Layer
     ^
     |
Business Layer
     ^
     |
Web API 2    <-- Apps or whatever
     ^
     |
MVC5 Website

但我认为以下是一个更好的主意,因为在我的情况下网站和WebAPI将在同一台服务器上,我认为网站解析JSON响应是没有意义的API。

Data Access Layer
     ^
     |
Business Layer   <--   Web API    <-- Apps or whatever
     ^
     |
MVC5 Website

我是Web API的新手(以前从未做过WebAPI或WCF),我真的不知道采取什么方法。

所以这是我的问题 我需要一张图表(就像我制作的那样)代表一个更好的解决方案,并附有解释 2.您建议的Visual Studio 2013 解决方案的项目结构

请注意,我计划使用VS2013的新ASP.NET App项目模板 - 而不是VS2012类型的Web模板。回答牢记这一点。

欢迎提供更好的描述性答案

2 个答案:

答案 0 :(得分:2)

对我而言,这取决于您的申请范围。我已经看到一个更大的企业系统同时使用MVC实例和WebAPI,其中WebAPI专门用于CRUD操作,这些操作是作为MVC以模型 - 视图 - ViewModel模式返回的UI(View)的ajax调用发送的。

WebAPI也被其他内部网系统使用。

所以它看起来像这样:

MVC  OTHER INTRANET
 |     |
 / \   /
|   \ /
|  WebAPI
|    |
 \  /
  \/
Business
 Layer
   |
   |
Data Access
   |
   DB

同一家公司还有一个单独的WebAPI附加到DAL,用于本土的跨公司工作流程系统。由于公司内的每个组织单位都定义了相同的数据(域)模型,因此它们将物理移动(也称为SELECT / DELETE,从groupA.db.active,INSERT到groupB.db.active,INSERT到groupA.db.INactive,更新的步骤ID。它工作得很好,但我怀疑它是性能最佳的系统。

希望这有帮助。

答案 1 :(得分:1)

恕我直言绝对做第二次,而不是第一次。 MVC网站调用您自己的Web API没有任何价值。