我正在计划一个项目来开发一个使用 MVC4、EF5 和 Web Api 的应用程序。请任何人建议我们如何在不同层设计项目。使用 MVC4 的 Web 和使用 EF5/Repository 模式的数据层以及用于 JQuery 访问的 Web Api。
我建议使用下图中显示的层。
我添加了 工作单元设计模式,它处理跨多个存储库的事务。我还使用处理所有业务逻辑的应用程序或域层。当您使用域层时,您的 Web API 就变成了一个薄层,负责处理对象到远程客户端(例如您的 Web 客户端(即 Web 浏览器))的传输和序列化。 Web 客户端使用 jQuery Ajax 与 Web API 进行通信。 MVC 控制器用于呈现视图(您的 HTML、CSS 和 JavaScript)。此架构中 MVC 的模型部分是您的应用程序/域层。请注意,此架构也适用于单页应用程序(SPA).
凯文,非常有趣和有用的答案,非常清楚,谢谢。只有一个问题。当使用 Web API 并尝试遵循您的体系结构流程时,请告诉我我是否理解得很好:客户端请求(通过 AJAX)=> 控制器 => ASP.NET Web API => 应用程序层 => UoW => 存储库=> EF => 数据库。所以现在,响应:DB => EF => Repo => UoW => Application layer => ASP.NET Web API => Controller(填充视图或将 json 返回给客户端)=> 在客户端更改(页面/视图/jquery 等)。谢谢。