命名空间名称中术语的首选顺序

时间:2009-10-13 20:53:28

标签: .net namespaces

我即将着手开发一个将由多个项目使用的.NET类库。我在设计中达到了一个目的,我不能100%确定我的命名空间应该嵌套在哪个命令中。我看到的两个选项是:

共享项目使用

  MyCompany.Common.Web
  MyCompany.Common.Data
  MyCompany.Common.Utils

每个项目然后使用

  MyCompany.ProjectName.Web
  MyCompany.ProjectName.Data
  MyCompany.ProjectName.Utils

或者我翻转并使用

  MyCompany.Web.Common
  MyCompany.Web.ProjectName
  etc

哪种被认为是最佳实践/更广泛使用?我在网上看到了两个。就个人而言,选项1似乎更符合逻辑。

2 个答案:

答案 0 :(得分:2)

推荐的做法,我相信如下:

Company.Product.Functionality

如果您有共享功能,那么在我看来,这将构成一个“产品”。在这种情况下,我的习惯是将该产品命名为“框架”。

因此,我们目前有:

Share.Framework.Data
Share.Framework.Data.Oracle
Share.Framework.IO
Share.Framework.Security

等等。我们也有,

Share.[Specific product].Windows
Share.[Specific product].Data
Share.[Specific product].Payroll
等等等等等等。

你得到了照片。 (顺便说一句,分享是我们公司的名称。)

答案 1 :(得分:0)

如果这段代码是特定于项目的,我只会使用(2),这几乎不是一个好的假设。 (3)只有在与网络有关的情况下才有意义;关于.NET的一个好处是你可以使用WPF / Winforms应用程序或其他任何东西重用你的代码。

我坚持使用(1)。