我即将着手开发一个将由多个项目使用的.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似乎更符合逻辑。
答案 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)。