【发布时间】:2011-11-29 11:14:10
【问题描述】:
我正在建立一个 MVC 解决方案并尝试将其分离到逻辑项目中。到目前为止,我有以下项目:
- MVC(表示层,Models 文件夹仅包含 ViewModel)
- 服务(提供业务逻辑,具有接口和提供程序文件夹)
- 存储库(用于持久性,具有接口和提供程序文件夹)
- 域 (POCO)
mvc 层引用服务层,服务引用 repo。所有三个都引用域,以便我可以在它们之间传递 POCO。
这种设置是否有意义,因为我将来可能会使用不同的表示层,该表示层将再次通过服务层工作?
另一方面,我的域层是否允许我将一个 ORM 换成另一个而不中断?我是否认为只要 Repo 层中的 repo 类实现接口,我就可以创建一组新的具体 repo 类,它们可以与不同的 ORM 一起使用?
我的 DbContext 是否应该与 EF 实现一起存在于 Repo 层中?这是 UoW 会去的地方吗?
我的服务可以使用域 POCO 上的注释进行基本验证,还是应该使用 Fluent Validation 等工具?
最后(!)为每一层创建一个单独的测试项目是否正确(在适当的情况下)?
提前感谢所有帮助,
詹姆斯
【问题讨论】:
标签: asp.net-mvc-3 n-tier-architecture