我正在尝试启动一个新项目(asp.net MVC),我想应用我在最近几个月学到的一些DDD规则。
我不知道如何组织我的解决方案。
我想使用Nhibernate,但我不想使用Fluent Nhibernate,因为它一定像实验一样。
我已经看到了一些示例,其中人们将所有内容保留在同一项目中。
其他一些人倾向于为所有内容创建一个不同的项目。
您认为我应该区分模型和存储库还是将其放在同一项目中?
如果有人有一些文章等链接,将不胜感激。

谢谢

阿尔贝托

最佳答案

我个人认为将每个层分为一个单独的项目是一个更好的主意。如果拥有一个包含所有图层的大型ASP.NET MVC项目,则有些事情是无法实现的。

例如,假设您有一个产品 ProductFactory 类。您希望通过 ProductFactory 来强制创建产品对象。为此,您可以将产品类的构造函数设为内部。这样, ProductFactory 类可以实例化产品类,因为产品 ProductFactory 在同一程序集中。但是,如果尝试从另一个项目(即ASP.NET MVC项目)实例化产品类,则会收到编译时错误。这样,您可以实现更好的封装。

请注意,如果产品 ProductFactory 和您的 Controller 在同一项目中,您仍然可以在 Controller 中看到产品的构造函数。因此,一个不了解您的设计背后的体系结构决策的业余开发人员,可以简单地忽略 ProductFactory 并直接创建一个 Product 对象。

另外,每一层都有一个单独的项目使维护变得更容易,因为您必须处理较小的项目,而不是一个大型项目。

关于nhibernate - 如何组织ASP.NET MVC解决方案(DDD),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2284941/

10-10 13:08