【发布时间】:2010-11-18 09:24:40
【问题描述】:
我最近重构了一个中型应用程序,其中一项工作是将常用代码拆分到不同的项目中。
现在,假设常用的命名空间结构是
Core.Interfaces - 用于主应用程序
接口为IFoo
对于每个专门/外部/引用的程序集,我决定对其进行扩展,例如
Core.Interfaces.Html
接口为IBar
主应用程序的Core 程序集位于名为Core 的项目中,默认命名空间为Core,而对于Html 程序集,我创建了一个名为HtmlCore 的项目,默认命名空间为Core .
结果效果(以及我选择此特定方法的原因)是,一旦您引用了 Html 程序集,using 语句就不必更新,最终效果是
Core.Interfaces.IFoo fooIf;
Core.Interfaces.Html.IBar barIf;
或者使用 Core.Interfaces 的 using 语句将上述转换为
IFoo fooIf;
Html.IBar barIf;
这个隐式命名空间结构是依赖关系的直接结果,它确实为我们提供了很好的服务,因为它使项目命名空间维护变得更加容易,并且唯一需要的就是对程序集的引用.该结构类似于微软已经在 .net 框架上所做的。
问题是我有第二个想法,并且(对于未来的项目)我正在考虑为每个程序集明确的命名空间结构,例如:
Core.DataInterfaces
Html.Core.DataInterfaces
那么,有没有人使用过 explicit 结构,甚至是我没有尝试过的其他东西?我愿意接受建议,我正在寻找最佳解决方案,因为目标是在开发过程中从维护和团队混乱中腾出时间。
【问题讨论】:
标签: .net visual-studio namespaces namespace-organisation