【问题标题】:Is changing root namespace in .net a bad idea?在 .net 中更改根名称空间是个坏主意吗?
【发布时间】:2016-10-03 12:34:58
【问题描述】:

我有一个跨多个 DLL 拆分的项目,主要是为了让事情更有条理并坚持一些分离。我正在考虑将所有项目的根命名空间更改为相同的东西,只是为了让事情变得更容易,但这篇(旧)文章表明它不是一种常见的做法,但没有给出为什么不这样做的理由。

Understanding and Using Assemblies and Namespaces

但是,除非您有充分的理由进行这种安排,否则最好保持简单,每个程序集使用一个命名空间,反之亦然。

在这种情况下,您想按照这些方式组织事情是否有“充分的理由”?

项目/命名空间

1. Core (interfaces) / CompanyName
2. CommonServices / CompanyName.Services
4. XYZProcess / CompanyName.XYZ
5. XYZViews / ComapnyName.Views
6. etc

【问题讨论】:

  • 对我来说这样做完全有意义
  • 我也是,我看不到任何重大的垮台,所以想知道我是否遗漏了什么。
  • 由于根命名空间不适用于 C#,您可能应该删除该标记。在 VB 项目中,我总是从项目属性中清除根命名空间,并显式使用命名空间语句。

标签: c# .net vb.net namespaces


【解决方案1】:

在我的公司我们有这样的事情:

  • ProjectName.Core.Infrastructure
  • ProjectName.Core.Services

这些是项目名称。 在我看来,最好正确命名项目(在更大的解决方案中)。 在开发过程中更容易导航。

【讨论】:

  • 我想这更有意义。我懒得避免使用长项目名称,但我想这只会增加尝试导航/查找内容所在位置的复杂性。
  • the_lotus - 是的,他们可以,但问题是他们是否应该这样做:)
【解决方案2】:

程序集与命名空间同名的主要好处是,当您的项目变得非常大,而您或团队中的其他工程师不记得某个特定类的位置时。只需将鼠标悬停在类上并查看名称空间,就会提示您该类所在的程序集。但这不是一个硬性规定。如果您的项目足够小以至于您始终记得所有内容的位置,那么单个命名空间就可以了,并且有合理的理由跨程序集共享命名空间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-03
    • 2016-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-17
    • 1970-01-01
    相关资源
    最近更新 更多