.NET命名约定:涉及.NET标准、.NET Core和.NET Framework项目的解决方案

10

我在网上没有找到关于.NET解决方案中包含.NET Standard、.NET Core和.NET Framework项目的命名约定。

在我的情况下,我们在.NET Framework项目中有以下约定:

[CompanyName].[TechnologyName].[Feature]

现在我们希望将此转移到.NET Standard和.NET Core。不是所有特性内部的类都适用于它们,因此我们有一个.NET Standard项目,该项目由.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]

但我们想知道是否存在全局命名约定。

我并不认为你需要将技术名称作为项目命名的一部分。底层框架的类型与项目命名有何关系?根据它对你的用处来命名你的东西,从你的角度出发。也许在你看来,运行在.NET Core上的项目是跨平台的,这种情况下的命名应该是[公司名称]。[产品名称]。[Windows]。[功能][公司名称]。[产品名称]。[跨平台]。[功能]等。 - nawfal
@nawfal:一个原因可能是区分针对不同底层框架的项目的几个变体。 - O. R. Mapper
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - nawfal
@nawfal:实际上,我认为这是一个非常普遍的情况。不同的目标需要不同的依赖版本,因此每个目标框架一个项目文件通常是最好的选择。没有代码重复,因为相同的文件包含在所有项目中。 - O. R. Mapper
@O.R.Mapper有道理。虽然很少遇到这种情况。我认为随着时间的推移,这种框架限制会越来越少。无论如何,我理解你的观点。 - nawfal
1个回答

13

我认为原始指南仍然有效。以 Microsoft.AspNetCore.Mvc 为例。这是公司、产品和其他内容。.NET Standard 或 .NET Core 版本应该使用相同的名称,只是包装为目标框架标识符。以 Newtonsoft.Json 为例。如果 API 表面/功能集发生更改,请进行破坏性版本更改或更改产品名称。

不要被 Microsoft 产品名称中的 Core 所困惑。他们选择将 ASP.NET Core、.NET Core 和 EF Core 等新产品命名,以避免引起更高级产品版本(例如 ASP.NET 5)的误导性假设。

根据 ASP.NET 社区的观点,我可以告诉您,这个主题已经被提出并得出结论,并非所有内容都应添加 Core 命名部分。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接