为新的子业务部门正确命名空间命名

时间:2014-09-12 19:03:27

标签: c# .net namespaces

我们目前的结构:

  • BusinessName.Common - 常用实体,类,实用程序
  • BusinessName.Services - 业务服务

我们正在添加一个名为“Medical”的子单元,其中包含一个类似的结构。我决定最好的命名约定。

选项1

  • BusinessName.Medical.Common
  • BusinessName.Medical.Services

选项2:

  • BusinessName.Common.Medical
  • BusinessName.Services.Medical

最终会有更多的子单位。

1 个答案:

答案 0 :(得分:1)

我会坚持使用选项1 ,因为每个域都应该模仿相同的子命名空间命名方案。

如果您在所有域中调用BusinessName.Common共享库(您称之为单位...),则特定域的公共成员属于整个域,因此,您的命名方案应为BusinessName.[DomainName].CommonBusinessName.[DomainName].Services

无论如何,让我为这个答案增加更多价值。您说Common项目/命名空间将包含公共实体,类,实用程序。我不同意这一点。 通用库应该是跨层库(垂直)。我的建议是你应该这样组织你的解决方案:

  • BusinessName.Common:基础架构代码。任何与域名相关的代码都不应该在这里。这里的类,接口和枚举应该可以从任何层和层使用。
  • BusinessName.Domain:公共域实体和服务。我会在这里放置常见的域接口,抽象类,基类......
  • BusinessName.Domain.[SomeDomain]。例如BusinessName.Domain.Medical。我会把关于域的一切都放在这里。在特定域中,任何其他域都没有共同的实体,因为这会破坏在域中组织项目的目的。

在我自己的项目中,我更喜欢使用Shared标识符而不是Common,但这只是我的意见。