C#.NET中的DDD"模块"

hco*_*bda 10 .net c# domain-driven-design

在埃文斯DDD书中,他谈到用"模块"将域中的概念隔离开来.术语"模块"可以转化为软件开发中的许多不同的东西,无论是概念的还是具体的,所以我想知道如何在C#.NET系统中表达这个DDD模块的概念,如果有任何直接的相关性,在软件开发中使用术语"模块"的其他用法(例如,Evans提到某些开发人员将DDD模块表示为Java包,我认为这类似于.NET程序集).

我认为你可以用单独的.NET程序集或者命名空间来表达这个概念(这就是现在正在做的事情).我们正计划减少解决方案中的项目数量,以缩短构建时间,因此我真的对如何在单个程序集中应用此概念感兴趣.

谢谢!

Chr*_*sic 3

你已经回答了你自己的问题。您使用项目或命名空间作为模块的逻辑分离。您还可以使用项目类型的细分来暗示含义,例如在 Web 服务项目中是公开模块与内部模块等。

就我个人而言,我喜欢使用实际项目,如果 DLL 的数量在我的生产版本中使用 ILMerge 压缩它时遇到问题,当然我的解决方案目前只有大约 30 个项目。