【问题标题】:MVC Web application architectural concernMVC Web 应用程序架构问题
【发布时间】:2015-08-18 11:52:26
【问题描述】:

我继承了一个按照上述项目结构设计的 MVC 应用程序。应用程序使用 Unity 框架进行依赖注入,用户交互按以下顺序进入数据库上游 View -> Controller -> ViewModels -> Repository Services -> ORM -> Database

基础架构组件在整个应用程序的不同层中静态使用。

我的问题是,这个结构是否遗漏了最佳实践方面的任何重要组成部分?这在本质上是正确的吗?

【问题讨论】:

  • 您在域实体模型中缺少域。此外,ViewModel 用于在控制器和视图之间进行通信。您似乎正在使用它们将它们发送到存储库。
  • @EddiePaz 所以本质上域模型应该在视图模型和ORM之间?
  • 遵循洋葱架构,域应该是核心:域 -> 基础设施 -> 表示(例如,EmployeeModel

标签: c# asp.net-mvc web-applications architecture


【解决方案1】:

您必须将前端部分与后端部分分开。

前端是 MVC 应用程序,由模型、视图模型、视图和控制器组成,实际上是您的表示层。

后端包括:

  • 服务层
  • 应用层
  • 域层
  • 基础设施层

基本上,您的控制器使用服务层来查询信息或发送命令。它取回模型,这些模型被转换为视图模型,然后传递给它们的专用视图。

Services 层使用底层应用程序层,它使用领域层和基础设施层来查询信息或执行命令,或者做一些日志记录和跟踪以及其他基础设施问题。

最后,如果您针对接口进行编程并使用 IoC 容器注入实例,您可以从您的域中移除基础设施依赖项并使所有内容都可测试和模块化。

【讨论】:

  • 感谢您的回答,我意识到我的问题非常主观。但你的模型可能比我目前的模型更好。
猜你喜欢
  • 1970-01-01
  • 2011-08-06
  • 2014-10-26
  • 2011-06-11
  • 1970-01-01
  • 2012-06-14
  • 1970-01-01
  • 2016-05-28
  • 2011-02-23
相关资源
最近更新 更多