对于那些正在编写可重用组件的人,如果要扩展.NET框架的功能,您认为什么是最佳实践?
例如,由于.NET中不存在Pop3库,因此我正在创建该库。我是创建自定义名称空间还是使用System.Net.Mail?
System.Net.Mail
根据命名空间命名准则:
命名空间的通用规则是使用公司名称,后跟技术名称,以及可选的功能和设计,如下所示。复制代码 CompanyName.TechnologyName[.Feature][.Design]
命名空间的通用规则是使用公司名称,后跟技术名称,以及可选的功能和设计,如下所示。复制代码
CompanyName.TechnologyName[.Feature][.Design]
通常,开始将内容包含在框架或库的默认名称空间中是一种非常糟糕的做法。就新名称空间是现有库的一部分(是分发给所有人的框架的一部分)还是其他人添加的自定义框架的一部分而言,这可能引起混淆。
同样,命名约定尝试通过使用诸如的唯一标识符来避免名称空间冲突CompanyName。它还减少了新库来源方面的任何混乱和问题。
CompanyName
这不仅是微软的事情,而且在Java中也是如此。Java中的命名空间(称为“包”)具有以下约定:
唯一软件包名称的前缀始终以全小写ASCII字母书写,并且应为顶级域名之一,当前为com,edu,gov,mil,net,org或英语的两个字母代码之一根据1981年的ISO标准3166确定国家。 包名称的后续组件根据组织内部的内部命名约定而有所不同。这样的约定可能指定某些目录名称组成部分是部门,部门,项目,计算机或登录名。
唯一软件包名称的前缀始终以全小写ASCII字母书写,并且应为顶级域名之一,当前为com,edu,gov,mil,net,org或英语的两个字母代码之一根据1981年的ISO标准3166确定国家。
包名称的后续组件根据组织内部的内部命名约定而有所不同。这样的约定可能指定某些目录名称组成部分是部门,部门,项目,计算机或登录名。
因此,如果我有一个很棒的软件,则可能在net.coobird.superawesomesoftware包装中。
net.coobird.superawesomesoftware
并使用包含默认的包名java.,javax.,com.sun.包一大禁忌。
java.
javax.
com.sun.