我目前正在尝试重构一个根本没有任何分离的项目(asp.net mvc)。只是文件夹:s
我们有一个测试项目,但我们并不擅长TDD,所以它不是我们现在所做的事情。
我希望能够更清楚地分离项目必须解决的不同责任,并希望对实现这一目标的良好项目结构提出一些建议。
请帮忙。 提前谢谢
答案 0 :(得分:12)
我建议遵循域驱动设计(DDD),建议的方法是创建以下项目:
Company.Project.Web
< - 您的MVC应用程序,尽管您仍然可以使用WebForms
Company.Project.Domain
< - 数据传输对象(DTO),ViewModel,业务逻辑,事件
Company.Project.Data
< - 存储库接口
Company.Project.Data.EF
< - EntityFramework特定存储库的实现
Company.Project.Model
< - 您的EF CodeFirst类
Company.Common
< - 公用事业和/或扩展的常见项目
我建议您从模式和实践团队中查看Project Silk http://silk.codeplex.com/。 DDD,Repository和MVC的很好的参考实现,以及HTML 5和jQuery(vNext)的混合。
答案 1 :(得分:11)
我们使用与jdmonty提到的类似的设计,但有点简单。我们执行以下操作:
Web项目依赖于Services项目。 Services项目依赖于Domain项目。