MVC Web 应用程序架构问题
MVC Web application architectural concern
我继承了一个按照上述项目结构设计的MVC应用程序。该应用程序使用 Unity 框架进行依赖注入,用户交互按照以下顺序向上游到数据库 View -> Controller -> ViewModels -> Repository Services -> ORM -> Database
基础结构组件在整个应用程序的不同层中静态使用。
我的问题是这个结构是否遗漏了最佳实践方面的任何重要组成部分?这在本质上是正确的吗?
您必须将前端部分与后端部分分开。
前端是MVC应用程序,由模型、视图模型、视图和控制器组成,实际上是您的表示层。
后端包括:
- 服务层
- 应用层
- 领域层
- 基础设施层
基本上,您的控制器使用服务层来查询信息或发送命令。它返回模型,这些模型被转换为视图模型,这些模型被传递到它们的专用视图。
服务层使用底层应用层,它使用领域层和基础设施层来查询信息或执行命令,或者做一些日志记录和跟踪以及其他基础设施问题。
最后,如果您针对接口进行编程并使用 IoC 容器注入实例,则可以从您的域中删除基础结构依赖性并使所有内容都可测试和模块化。
我继承了一个按照上述项目结构设计的MVC应用程序。该应用程序使用 Unity 框架进行依赖注入,用户交互按照以下顺序向上游到数据库 View -> Controller -> ViewModels -> Repository Services -> ORM -> Database
基础结构组件在整个应用程序的不同层中静态使用。
我的问题是这个结构是否遗漏了最佳实践方面的任何重要组成部分?这在本质上是正确的吗?
您必须将前端部分与后端部分分开。
前端是MVC应用程序,由模型、视图模型、视图和控制器组成,实际上是您的表示层。
后端包括:
- 服务层
- 应用层
- 领域层
- 基础设施层
基本上,您的控制器使用服务层来查询信息或发送命令。它返回模型,这些模型被转换为视图模型,这些模型被传递到它们的专用视图。
服务层使用底层应用层,它使用领域层和基础设施层来查询信息或执行命令,或者做一些日志记录和跟踪以及其他基础设施问题。
最后,如果您针对接口进行编程并使用 IoC 容器注入实例,则可以从您的域中删除基础结构依赖性并使所有内容都可测试和模块化。