|
|
1
8
S#arp Architecture 将其控制器、服务和核心拆分为具有相应测试项目的项目。 |
|
|
2
2
模型-MVC中的M,它包含所有的业务类。如果您能够管理它(您确实应该这样做),那么这里就不应该有持久性或与web服务相关的类。当然,您可以在这个项目中定义数据访问接口。检查此项目是否“干净”数据访问的一种快速方法是检查您是否需要在此项目中引用NHibernate之类的数据访问DLL。 原因:从理论上讲,您应该能够捆绑这个项目并在其他任何地方使用这些类,即使您切换到不同的UI,如控制台等。 理由:如果你有一个网站设计师,你可以让他/她访问这个项目,让他工作。 Controllers-MVC中的C,它包含所有控制器以及ModelBinder。 原因:模型、视图和控制器的三个不同项目使得问题泄漏更难发生。
服务-所有web服务、持久性相关代码都放在这个项目中。 目前,任何实用程序类都会进入Project.Models,但我认为最好为实用程序类提供一个单独的解决方案,并在需要时将它们作为编译程序集的引用导入。 |