Dot-Net

.NET Standard、.NET Core 和 .NET Framwork Projects 解決方案的 .NET 命名約定

  • January 21, 2017

我在 Web 上沒有找到任何關於包含 .NET Standard、.NET Core 和 .NET Framework 項目的 .NET 解決方案的公認命名約定。

在我的例子中,我們的 .NET Framwork 項目中有以下約定:

[CompanyName].[TechnologyName].[Feature]

現在我們要將其移植到 .NET Standard 和 .NET Core。並非該功能中的所有類都適用於所有類,因此我們有一個 .NET 標準項目,它被 .NET Core 項目引用。.NET Core 項目隨後被 .NET Framework 項目引用。我們現在應該如何命名我們的項目。

一種解決方案是在命名空間中包含 Standard 或 Core 的名稱:

[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 表面/功能集發生更改,請進行重大版本更改或更改產品名稱。

不要對 Microsoft 產品名稱中的核心添加感到困惑。他們選擇製作 ASP.NET Core、.NET Core 和 EF Core 新產品,以避免對更高產品版本的誤導性假設:ASP.NET 5。

聆聽 ASP.NET 社區站會,我可以告訴你,這個話題出現了,他們得出的結論是,並非所有東西都應該添加核心命名部分。

引用自:https://stackoverflow.com/questions/41746575