Lef*_*tyX 5 nhibernate model-view-controller domain-driven-design projects-and-solutions
我正在尝试开始一个新项目(asp.net MVC),我想应用我在过去几个月里学到的一些DDD规则.
我不知道如何组织我的解决方案.
我想使用Nhibernate,但我不想使用Fluent Nhibernate,因为它必须像实验一样.
我已经看到一些例子,人们将所有内容保存在同一个项目中.其他一些人倾向于为一切创建一个不同的项目.您认为我应该区分模型和存储库还是将它放在同一个项目中?
如果有人有一些文章的链接等,将不胜感激.
谢谢
阿尔贝托
Jimmy Bogard(Automapper的作者)撰写了一篇关于他如何构建代码的优秀文章,这可能有助于帮助您做出决定.
我参与了大量单独装配和项目数量较少的项目.我个人的偏好是减少装配,因为我总是觉得它更容易使用.如果您使用良好的编码原则(如SOLID),那么使用2或20个程序集无关紧要.
我个人认为将每一层划分为一个单独的项目是一个更好的主意。有些事情是通过 1 个包含所有层的大型 ASP.NET MVC 项目无法实现的。
例如,假设您有一个Product和ProductFactory类。您希望强制通过ProductFactory创建Product对象。为了实现这一点,您可以将Product类的构造函数设为内部。这样,ProductFactory类就可以实例化Product类,因为Product和ProductFactory位于同一个程序集中。但是,如果您尝试从另一个项目(即您的 ASP.NET MVC 项目)实例化Product类,您将收到编译时错误。这样就可以实现更好的封装。
请注意,如果Product、ProductFactory和您的Controller在同一个项目中,您仍然可以在Controller中看到Product的构造函数。因此,不了解设计背后的架构决策的业余开发人员可以简单地忽略 ProductFactory并直接创建Product对象。
另外,为每一层拥有一个单独的项目可以使您的维护更容易,因为您必须处理较小的项目,而不是一个大项目。
| 归档时间: |
|
| 查看次数: |
2353 次 |
| 最近记录: |