命名"核心"程序集

时间:2020-03-06 14:37:12  来源:igfitidea点击:

我知道这有点主观,但是我想知道是否有一个通用的命名程序集标准,其中包含一些"核心"功能。

假设我们有一个较大的项目,例如

  • 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在该主题上的想法。