2009-10-13 43 views
0

我即将着手开发一个将由多个项目使用的.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 

这是considere d最佳实践/更广泛使用?我在网上看到过。就个人而言,选项1似乎更符合逻辑。

回答

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 

等等等等等等等。

你得到的图片。 (BTW,Share是我们公司的名称。)

0

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

我会坚持(1)。

相关问题