.NET:您如何决定如何构建命名空间?

时间:2009-10-19 02:38:24

标签: .net architecture namespaces

我想知道你们用什么指导方针来确定命名空间的结构。你什么时候决定保证它自己的命名空间?

我在一个论坛讨论或文章中读到,最好的做法是使用尽可能少的子命名空间的浅树,但不记得它背后的原因或链接。

现在我只是在做'感觉正确',但更喜欢一些更具体的指导方针,特别是向新的开发者解释。

感谢。

3 个答案:

答案 0 :(得分:3)

答案 1 :(得分:2)

我自己去寻求浅树的方法。多层命名空间的负面后果之一是同一个项目中同名和相同功能的类的扩散(仅由它们不同的命名空间位置区分),甚至更糟:同名和不同 -functioned类在同一个项目中。在项目中只有一个命名空间会迫使开发人员为每个单独的类提供一个好的,自我描述的名称。

在项目中有多个文件夹仍然是一个好主意,但是(出于组织目的),我希望Visual Studio中有一个选项,使得在子文件夹中添加的类不能自动将文件夹名称添加到其命名空间(在比2005更新的版本中可能有这样的选项)。我总是通过在根级别添加新类,然后将它们拖到适当的文件夹中来解决这个问题。

答案 2 :(得分:0)

我在解决方案中使用多个文件夹(多级文件夹),有时在项目中使用。

我将解决方案文件夹映射到命名空间,偶尔为项目提供子命名空间。

我的大多数项目都有一个命名空间。

E.g。

Company.Product.Initialization // (exe project)
Company.Product.Data.Interfaces // interfaces (dll)
Company.Product.Data.Collections // collections (dll)
Company.Product.Data.Binding // binding logic (dll)
Company.Product.Data.Binding.Tests // unit tests for above (dll)
Company.Product.Data.Serialization
Company.Product.Data.Serialization.Tests
Company.Product.Model // (dlls)
Company.Product.Gui.Controls // (dlls)
Company.Product.Gui.Windows // (dlls)
Company.Product.Gui.ModelView // (dlls)
Company.Product.Gui.Logic // (dlls)

我同意MusiGenesis关于好名字的重要性,并建议阅读MS的指导原则(最好是C#3.5或4.0)。