.NET Standard、.NET Core 和 .NET Framework 项目解决方案的 .NET 命名约定

.NET naming conventions for solution with .NET Standard, .NET Core and .NET Framwork Projects

我在网上找不到任何有关包含 .NET Standard、.NET Core 和 .NET Framework 项目的 .NET 解决方案的公认命名约定的信息。

就我而言,我们的 .NET Framwork 项目中有以下约定:

[CompanyName].[TechnologyName].[Feature]

现在我们要将其移植到 .NET Standard 和 .NET Core。并非功能中的所有 类 都适用于所有这些功能,因此我们有一个 .NET Core 项目引用的 .NET Standard 项目。 .NET Core 项目然后由 .NET Framework 项目引用。我们现在应该如何命名我们的项目。

一种解决方案是在命名空间中包含标准或核心的名称:

[CompanyName].Standard.[TechnologyName].[Feature]
[CompanyName].Core.[TechnologyName].[Feature]
[CompanyName].[TechnologyName].[Feature]

[CompanyName].[TechnologyName].[Feature].Standard
[CompanyName].[TechnologyName].[Feature].Core
[CompanyName].[TechnologyName].[Feature]

但我们想知道是否有针对此的全球命名约定。

我认为最初的指南仍然有效。取样本Microsoft.AspNetCore.Mvc。那是公司,产品和下面的任何东西。 .NET Standard 或 .NET Core 版本应该以相同的名称发布,只是为了它们的目标框架名称而打包。以Newtonsoft.Json为例。如果 API surface/feature 集发生变化,请进行重大版本更改或更改产品名称。

不要对 Microsoft 产品名称中的核心添加感到困惑。他们选择制作 ASP.NET Core、.NET Core 和 EF Core 新产品,以避免对更高产品版本的误导性假设:ASP.NET 5.

听 ASP.NET 社区站会我可以告诉你,这个话题出现了,他们得出结论,并不是所有的东西都应该添加核心命名部分。