命名"核心"程序集
我知道这有点主观,但是我想知道是否有一个通用的命名程序集标准,其中包含一些"核心"功能。
假设我们有一个较大的项目,例如
- Company.Product.WebControls.dll
- Company.Product.Net.dll
- Company.Product.UserPages.dll
并且我们有一堆"核心"类,例如全局错误处理程序,全局日志记录功能等。
这样的程序集一般如何命名?这是我想到的一些事情:
- Company.Product.dll
- Company.Product.Core.dll
- Company.Product.Global.dll
- Company.Product.Administration.dll
现在,尽管"只选一个并继续"不会导致世界末日,但我仍然想知道是否有一种"可接受的"方式来命名这些程序集。
解决方案
我总是做.Core.dll。
使用.Net相对容易更改,因此我会很方便。
较少,较大的程序集比许多小型程序集的编译速度更快,因此,我将从"核心"内容作为Company.Product.dll中的名称空间开始,然后在需要时将其拆分。
我通常喜欢使用名称来描述每个程序集中的内容。
我们会看到,如果将名称命名为.Core,那么在一个大型团队中,它会迅速增长,因为人们会考虑将非常普通的东西放入该程序集中。
因此,我认为不应真正有一个核心程序集。
我使用了.Core,.Framework和.Common。
我最常使用并似乎喜欢的一个,因为我看不到其他人使用的是" Root"
我一般会做
CompanyName.Root
或者
SomethingMeaningfulToMe.Root
我们使用以下模型:
- Company.Core.dll
- Company.WinControls.dll
- Company.WebControls.dll
- Company.Product.Core.dll
- Company.Product.WinControls.dll
- Company.Product.WebControls.dll
等等。
所有这些" root"," core"," common"等都是不好的命名约定。
常见内容应位于根名称空间中,例如.NET," string"," int",而其他"核心"或者"公共"内容则位于根" System"名称空间中。
不要使用命名空间来更轻松地在Visual Studio中折叠文件夹,而要在其包含的内容和用途之后对其进行结构化。
" System.Security"包含一些常见的安全性内容,例如," System.Xml"不需要知道,除非我们明确希望该功能。
System.Security.Cryptography是一个子命名空间。密码学是安全性,但安全性不是明确的密码学。
通过这种方式,System.Security.Cryptography
可以完全了解其父名称空间,并且可以隐式使用其父名称空间中的所有类。
我会说System.Core.dll
是Microsoft方面的一个小问题。他们必须没有想法或者DLL名称。
更新:MSDN上的文章有所更新,试图解释Microsoft在该主题上的想法。