在 Evan 的 DDD 书中,他谈到了使用“模块”隔离域中的概念。术语“模块”在软件开发中可以被翻译成许多不同的东西,包括概念上的和具体的,所以我想知道 DDD 模块的概念如何在 C#.NET 系统中表达,以及是否存在任何直接关联软件开发中术语“模块”的其他用途(例如,Evans 提到一些开发人员将 DDD 模块表示为 Java 包,我认为这类似于 .NET 程序集)。
我认为,您可以使用单独的 .NET 程序集或命名空间(这就是我们现在正在做的事情)从字面上表达这个概念。我们计划减少解决方案中的项目数量以缩短构建时间,因此我对如何将此概念应用于单个程序集非常感兴趣。
最佳答案
您已经回答了自己的问题。您使用项目或命名空间作为模块的逻辑分离。您还可以使用项目类型的分解来暗示含义,因为在 Web 服务项目中,暴露模块与内部模块等。
就我个人而言,我喜欢使用实际项目,如果 DLL 的数量曾经是一个问题,则可以在我的生产构建中使用 ILMerge 来压缩它,当然我的解决方案目前只有大约 30 个项目。
关于c# - C#.NET 中的 DDD "Module",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2503497/