我正在制作一个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模板。回答牢记这一点。
欢迎提供更好的描述性答案
答案 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没有任何价值。