在大项目中是否有使用命名空间的指导原则?

时间:2011-04-05 07:23:44

标签: c# .net namespaces

在大型项目中是否有任何普遍接受的命名空间使用和组织指南?

谢谢!

4 个答案:

答案 0 :(得分:4)

MIcrosoft's guidanceCompanyName.TechnologyName[.Feature][.Design]

答案 1 :(得分:2)

你可以试试FxCop,有一些规则。

  1. 通常你可以制作一些基本前缀(公司)

  2. 然后添加项目的层/模块(DAL,UI,Common等)

  3. 然后我将文件夹名称添加到命名空间。

    因此,如果我的MegaUtil类文件位于文件夹Utils / Misc中的prj Common中,它将是:

    YourCompanyName.Common.Utils.Misc
    

答案 2 :(得分:0)

命名空间主要是为了避免与其他类/对象的歧义。在组织方面,我喜欢将UI元素与其他工作函数组织起来;

提示: 为确保您的代码永远不会与其他对象混淆,请使用可能为产品注册的域名的相反顺序。

com.somecompany.app.*


    com.somecompany.Math;   
                     Math.work(a,b)

    com.somecompany.UI;
                     UI.SomeUserControl
                     UI.AnotherUserControl
                     UI.Forms;


    com.somecompany.Web;

答案 3 :(得分:0)

...

E.g。如果您的公司名称是样本软件解决方案,并且您正在编写ATM系统,那么您可能有以下程序集:

  • SSS.ATM.Domain
  • SSS.ATM.Data
  • SSS.ATM.Common(ATM上的通用程序集)
  • SSS.ATM.Services
  • SSS.ATM.UI SSS.Common(所有产品中通用的程序集)

我们通常会有一些单元测试程序集:

  • SSS.ATM.Domain.UT
  • SSS.ATM.Data.UT
  • SSS.ATM.Common.UT
  • SSS.ATM.Services.UT
  • SSS.ATM.UI.UT
  • SSS.Common.UT

并且可能还有一个或两个IT或AT组件(集成/验收测试),例如

  • SSS.ATM.Domain.IT(集成测试域名)
  • SSS.ATM.UI.AT(通过UI进行的接受测试)