我正在创建一个库,用于我正在构建的应用程序。我正在建立一个类似于下面的名称空间结构。
MyNamespace.Validation
MyNamespace.Reports
MyNamespace.Transactions
MyNamespace.DataImport
etc...
最佳做法是为每个子命名空间创建一个包含多个项目的解决方案,还是为每个子命名空间创建一个包含多个类文件的项目?感谢。
答案 0 :(得分:9)
两种方法都有利弊,您需要根据自己的情况亲自决定。
赞成多个项目:
多个项目的缺点:
就个人而言,我认为在大多数情况下,优点远远超过缺点。我通常会将我的命名空间拆分为单独的程序集,前提是它们不相关。在你的情况下,你正在研究4个非常不同的概念,所以我的直觉是分裂是最有意义的。
答案 1 :(得分:3)
我会选择多个项目的解决方案。
优点:
- 每个项目可以是一个单独的dll
- 一个解决方案中的所有项目,便于在文件之间导航
答案 2 :(得分:3)
我认为这取决于。
我认为这里的真正问题是:
如果只使用一次,将所有内容放在一个项目中就有意义了。但是,如果此代码可以重用,您应该考虑是否只重用此库的一部分(或一个子命名空间)。如果答案是肯定的,我会将命名空间拆分为单独的项目,因此将来您只能包含所需的项目。
答案 3 :(得分:3)
确定如何分解您的解决方案是主观的 - 这实际上取决于您的代码的具体细节。
然而,有一件事是肯定的:维护多个组件有缺点! This article特别擅长描述这些缺点,观察它们在开发时,编译时,部署时和运行时如何增加成本。
我使用尽可能少的装配,旨在单个装配,同时隔离域的易失性区域。当多个程序集明显合适或需要时(并且它们通常是强制解耦),我会尽力将同时更改的接口分组到相同的程序集中。
答案 4 :(得分:1)
我通常遵循模式,一个程序集是一个名称空间,DLL名称在名称空间中。更容易找到要引用的DLL