![]() |
1
4
我个人认为把每一层划分成一个单独的项目是一个更好的主意。拥有一个包含所有层的大型ASP.NET MVC项目是无法实现的。 例如,假设你有一个 产品 和 班级。您想强制创建 产品 产品工厂 内部的 产品工厂 产品 上课因为 产品 在同一程序集中。但是,如果您尝试实例化 从另一个项目(即ASP.NETMVC项目)初始化时,您将收到编译时错误。这样可以实现更好的封装。 注意,如果 产品 产品工厂 控制器 产品 的构造函数 控制器 . 因此,一个不了解设计背后的体系结构决策的业余开发人员可以简单地忽略 产品工厂 产品 直接反对。 另外,每一层都有一个单独的项目可以使维护更容易,因为你必须处理较小的项目,而不是一个大项目。 |
![]() |
2
5
Jimmy Bogard (Automapper的作者)写了一篇优秀的文章 article 他如何构造代码,这可能有助于您的决策。 我曾参与过大量独立程序集的项目和数量很少的项目。我个人的偏好是拥有更少的程序集,因为我总是发现它更容易使用。如果您使用良好的编码原则(如SOLID),那么使用2个或20个程序集就不重要了。 |
![]() |
3
2
在DDD中,不要在域逻辑中引入特定于技术的元素(例如您打算使用的NHibernate或任何其他ORM)是很重要的。这通常与创建所谓的反腐败层有关。
|
![]() |
4
0
MVC2有一个概念,即产生关注点分离的区域。我仍然不喜欢它的实施方式。我为几乎每个控制器创建一个单独的项目。这样我就可以在我工作的新项目中混合和匹配控制器。很好的例子是我有一个名为“Security”的项目,它处理所有登录和用户管理的事情。我的另一个项目叫做Notification,它处理所有的消息和电子邮件。我所要做的是把这些放在一起,我为我正在处理的任何项目创建一个核心项目,然后从另一个项目导入dll,我要确保的是我有视图和javascript,它会工作。 |