我应该使用 .NET Core 还是 .NET 5? [关闭]

Posted

技术标签:

【中文标题】我应该使用 .NET Core 还是 .NET 5? [关闭]【英文标题】:Should I use .NET Core or .NET 5? [closed] 【发布时间】:2021-07-11 08:08:53 【问题描述】:

我将很快着手为我的组织编写一个主要针对 Windows 机器的新组件。但是,将来它也可能用于 Linux 系统。

    鉴于 .NET 5 的出现,在 .NET core 中编写它有什么意义吗? 我在 LTS 中看到了 .NET Core 3.1,但不确定 .NET 5。.NET 5 是否处于适合在生产应用程序中使用的状态? 此外,.NET 标准是否应该在此决策过程中发挥作用?

【问题讨论】:

剧透:.NET 5 .NET Core,他们只是将其重新命名。 如果可以,请使用 .Net 5。并旨在使尽可能多的程序集成为 .Net 标准,以实现最大的可移植性。 .Net 6 发布后,将程序集更新到它可能会很简单。 我建议阅读不同的 .net 版本实际上是什么。那么你的问题就会自己回答。 【参考方案1】:

这主要取决于您需要哪些功能以及您的库需要支持哪些目标。

提到的最低目标是 .NET Standard 2.0。这样的库与任何 .NET Core、.NET 5 甚至 .NET Framework 4.8 都完全兼容 - 因此,为了向后兼容,它是一个不错的选择。 .NET Standard 2.1 不再与 FW 4.8 兼容,但具有许多随 .NET Core 3.1 引入的额外运行时功能,并且与 .NET Core 3.1 以上版本(包括 .NET 5+)兼容。

但是,您可以直接面向 .NET Core 或 .NET 5。在这些情况下,您的库将与该版本的 .NET Core 或更高版本一起使用。请注意,.NET 5 本质上只是重新命名为 .NET Core,因此它仍然完全兼容。

.NET 5 已准备好生产,只是不是 LTS - 从现在开始,.NET 的偶数版本将是 LTS,因此 .NET 6、.NET 8 等将发布新版本每年。如果您想要最新最好的功能,您可以针对最新的 .NET。但是,只要您不需要一些较新的 API,您就可以针对较旧的版本并仍然在较新的版本中使用您的库,而不会出现任何问题。

【讨论】:

【参考方案2】:

这里有几件事在起作用。如您所说,.Net Core 3.1 是 LTS,而 .Net 5 不是。下一个 LTS 版本将是今年 11 月/12 月的 .Net 6。

基于此,也许您应该使用 .Net Core 3.1,但另一方面,它的支持时间仅比 .Net 5 多 8 个月,从 .Net 5 到 .Net 6 的升级路径可能会变小。因此,基于此,您需要自行决定。

您可以在 Microsoft 上查看有关支持政策的更多信息:https://dotnet.microsoft.com/platform/support/policy/dotnet-core

【讨论】:

以上是关于我应该使用 .NET Core 还是 .NET 5? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

在 IIS 上使用 .NET Core 运行 ASP.NET 5 (MVC 6)

用于 ASP.NET Core 5 MVC 的 NuGet 包

如何使用部分视图列出无限数量的嵌套类别和子类别。(.NET CORE 5.0)

如何使用 ASP.NET Core 显示错误

我应该在 MSAL.NET 中使用哪种类型的 ApplicationBuilder?我正在使用 ASP.NET Core Web Api

ASP.NET Core 会话超时