Vin*_*cio 50 .net c# namespaces design-guidelines
对于那些编写可重用组件的人来说,如果扩展.NET框架的功能,您认为最佳实践是什么?
例如,我正在创建一个Pop3库,因为.NET中不存在.我是否创建自定义命名空间或使用System.Net.Mail?
coo*_*ird 63
从命名空间命名指南:
命名命名空间的一般规则是使用公司名称,后跟技术名称,以及可选的功能和设计,如下所示.复制代码
CompanyName.TechnologyName[.Feature][.Design]
通常,将内容包含在框架或库的默认命名空间中是一种非常糟糕的做法.这可能会导致混淆,即新命名空间是否是现有库的一部分,该库是分发给每个人的框架的一部分,或者是由其他人添加的自定义框架的一部分.
此外,命名约定通过使用诸如的唯一标识符来尝试避免命名空间冲突CompanyName.它还减少了新库源方面的任何混淆和问题.
这不仅是微软的东西,也是Java中的东西.Java中的命名空间,称为"包",具有以下约定:
唯一包名称的前缀始终以全小写ASCII字母书写,应该是顶级域名之一,目前是com,edu,gov,mil,net,org,或者是英文双字母代码之一识别ISO标准3166,1981中规定的国家.
软件包名称的后续组件根据组织自己的内部命名约定而有所不同.此类约定可能指定某些目录名称组件是分区,部门,项目,计算机或登录名.
所以,如果我有一个超级棒的软件,它可能在net.coobird.superawesomesoftware包中.
并使用包含默认的包名java.,javax.,com.sun.包一大禁忌.
akj*_*shi 16
另请参阅以下MSDN文章,了解有关命名命名空间的指导
为命名空间选择的名称应指示命名空间中的类型可用的功能.例如,System.Net.Sockets命名空间包含允许开发人员使用套接字通过网络进行通信的类型.
命名空间名称的一般格式如下:
<Company>.(<Product>|<Technology>)[.<Feature>][.<Subnamespace>]例如,
Microsoft.WindowsMobile.DirectX.