【发布时间】:2015-09-22 17:34:58
【问题描述】:
通过阅读此处发布的几篇文章,我得到了关于如何正确配置项目的不匹配信息。
我正在寻求有关专业人士如何在企业层面做到这一点的建议。
我看到了不同的流派,有些人以真正的 N 层方式进行设计,其他人更喜欢直接在 MVC 应用程序中使用 EF Code First 并拥有 FAT 模型,并且有点拥有一个具有逻辑分离的大型 MVC 应用程序顾虑等。
所以对于一个中型项目,这是我的设置,我想征求您的意见。
MVC 应用程序
模型——这里我的模型正好有视图需要的东西、验证逻辑等。这些模型旨在仅在控制器和视图之间传递数据。
控制器——调用业务逻辑所在的服务层,并在需要时取回域模型。将领域模型转换为视图模型,反之亦然。
服务层
这就是业务(领域)逻辑的生命。 服务层还负责与数据层通信以执行 CRUD 操作。 服务层将域模型返回给 MVC 应用程序中的控制器,并且在调用时也需要域模型。
数据存储层
数据层是 EF 的薄包装器并执行 CRUD 操作。 通常我会采用 Code First 方法,EF 为我创建实体模型。 我将 EF 代码优先模型转换为域模型并将它们返回给服务层。 数据层还期望来自服务层的域模型,然后我将其转换为 EF 代码优先模型并保存到数据库中。
领域模型层
这些是通过应用程序层使用和共享的域模型。
什么是最好的设计? 企业层面的预期是什么?
【问题讨论】: