我们目前的结构:
我们正在添加一个名为“Medical”的子单元,其中包含一个类似的结构。我决定最好的命名约定。
选项1
选项2:
最终会有更多的子单位。
答案 0 :(得分:1)
我会坚持使用选项1 ,因为每个域都应该模仿相同的子命名空间命名方案。
如果您在所有域中调用BusinessName.Common
共享库(您称之为单位...),则特定域的公共成员属于整个域,因此,您的命名方案应为BusinessName.[DomainName].Common
,BusinessName.[DomainName].Services
。
无论如何,让我为这个答案增加更多价值。您说Common
项目/命名空间将包含公共实体,类,实用程序。我不同意这一点。 通用库应该是跨层库(垂直)。我的建议是你应该这样组织你的解决方案:
BusinessName.Common
:基础架构代码。任何与域名相关的代码都不应该在这里。这里的类,接口和枚举应该可以从任何层和层使用。 BusinessName.Domain
:公共域实体和服务。我会在这里放置常见的域接口,抽象类,基类...... BusinessName.Domain.[SomeDomain]
。例如BusinessName.Domain.Medical
。我会把关于域的一切都放在这里。在特定域中,任何其他域都没有共同的实体,因为这会破坏在域中组织项目的目的。在我自己的项目中,我更喜欢使用Shared
标识符而不是Common
,但这只是我的意见。