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

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

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

【问题讨论】:

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

标签: c# .net .net-core .net-standard .net-5


【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-25
      • 2012-06-20
      相关资源
      最近更新 更多