过去,我总是将特定项目的命名空间和项目(以及主要类)相同,例如:
namespace KeepAlive
{
public partial class KeepAlive : ServiceBase
{...
那么每当我从其他项目调用该类时,它始终是这样的:
KeepAlive.KeepAlive()...
我现在开始觉得这可能不是一个好主意,但我有点不知道该怎么称呼我的命名空间。其他人是怎么做的?你们是为所有项目都使用一个命名空间吗?
过去,我总是将特定项目的命名空间和项目(以及主要类)相同,例如:
namespace KeepAlive
{
public partial class KeepAlive : ServiceBase
{...
那么每当我从其他项目调用该类时,它始终是这样的:
KeepAlive.KeepAlive()...
我现在开始觉得这可能不是一个好主意,但我有点不知道该怎么称呼我的命名空间。其他人是怎么做的?你们是为所有项目都使用一个命名空间吗?
将类的名称与命名空间相同并不是一个好主意-在某些情况下,它使得引用正确的内容变得非常棘手,我个人认为。
通常,我会为项目(和命名空间)命名一个适当的名称,然后在适当的位置使用“EntryPoint”或“Program”作为入口点。在您的示例中,我可能会将该类命名为“KeepAliveService”。
CompanyName.ProductName
CompanyName.ProductName.Data
CompanyName.ProductName.Web
在 IT 技术中,通常将代码按模块或功能分开,对应于不同的文件夹。
等等。
CompanyName.ProductName.Web.Shop
CompanyName.ProductName.Web.Newsletter
顺便提一下:您可以在以下地方找到类似问题的答案:
等等。
公司名称.产品名称.系统领域.子系统领域
不要使用与类相同的名称。
我们的系统领域包括以下内容:
子系统领域只在相关时才使用:
命名空间不一定要与文件夹对应,因为从逻辑上讲,情况可能并非如此。为了方便解决方案资源管理器的导航,在某些区域中可能会按照文件夹进行分组,但这并不意味着命名空间应该遵循文件夹结构。特别是如果文件夹中只有少数文件,则使用带有较少类型的命名空间通常是不明智的。
我将我的命名空间命名为所有放入该命名空间的东西的通用描述符。
我们坚持老派的方式
uk.co.company.system.layer
这样我们可以使用较多的MS Server产品并帮助概念上的分离,从而将冲突降至最低。
例如:
uk.co.acme.biztalk.bizutils。