单独的项目或多个类文件... C#中的命名空间最佳实践

Dav*_*der 5 c# namespaces projects-and-solutions

我正在创建一个库,用于我正在构建的应用程序.我正在建立一个类似于下面的名称空间结构.

MyNamespace.Validation
MyNamespace.Reports
MyNamespace.Transactions
MyNamespace.DataImport
etc...
Run Code Online (Sandbox Code Playgroud)

最佳做法是为每个子命名空间创建一个包含多个项目的解决方案,还是为每个子命名空间创建一个包含多个类文件的项目?谢谢.

Ree*_*sey 10

两种方法都有利弊,您需要根据自己的情况亲自决定.

专业多个项目:

  • 单独的程序集允许编译器提供更严格的指导,可能防止耦合蔓延.这允许您更好地维护依赖项.
  • 可以根据需要在其他项目中加载单独的程序集,从而可以简化重用.
  • 单独的程序集可以防止不必要的代码被加载到进程中,因为它们是按需加载的.

对多个项目的缺点:

  • 更复杂的部署,因为需要部署更多文件(次要)
  • 较慢的构建/编译,甚至可能加载多个程序集(次要)的加载时间

就个人而言,我认为在大多数情况下,优点远远超过缺点.我通常会将我的命名空间拆分为单独的程序集,前提是它们不相关.在你的情况下,你正在研究4个截然不同的概念,所以我的直觉是分裂是最有意义的.