Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我应该使用.NETCore还是.NET5?_C#_.net_.net Core_.net Standard_.net 5 - Fatal编程技术网

C# 我应该使用.NETCore还是.NET5?

C# 我应该使用.NETCore还是.NET5?,c#,.net,.net-core,.net-standard,.net-5,C#,.net,.net Core,.net Standard,.net 5,我将很快着手为我的组织编写一个新组件,主要针对windows机器。然而,将来它也可以在Linux系统上使用 鉴于.NET5的出现,在.NETCore中编写它有什么意义吗 我在LTS中看到了.NETCore3.1,但不确定.NET5。NET 5是否处于适合在生产应用程序中使用的状态 另外,.NET标准是否应该在这个决策过程中发挥作用 这里有几件事在起作用。NETCore3.1是LTS,正如你所说,.NET5不是。下一个LTS版本将于今年11月/12月发布.NET6 基于这一点,您可能应该使用.Ne

我将很快着手为我的组织编写一个新组件,主要针对windows机器。然而,将来它也可以在Linux系统上使用

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

  • 这里有几件事在起作用。NETCore3.1是LTS,正如你所说,.NET5不是。下一个LTS版本将于今年11月/12月发布.NET6

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


    您可以在Microsoft上看到有关支持策略的更多信息:

    它主要取决于您需要什么功能以及您的库需要支持什么目标

    上述最低目标是.NET标准2.0。这样的库与任何.NET Core、.NET 5甚至.NET Framework 4.8都完全兼容,因此对于向后兼容性来说,它是一个不错的选择。NET标准2.1不再与FW 4.8兼容,但具有许多附加的运行时功能,这些功能是在.NET Core 3.1中引入的,并且与.NET Core 3.1以上版本(包括.NET 5+)兼容

    但是,您可以直接针对.NETCore或.NET5。在这些情况下,您的库将使用该版本的.NET Core或更高版本。请注意,.NET5实际上只是重新命名了.NETCore,因此它仍然是完全兼容的


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

    破坏者:.NET 5是.NET Core,他们只是对其重新命名。如果可以,请使用.NET 5。并致力于使尽可能多的程序集成为.Net标准,以实现最大的可移植性。一旦.Net 6发布,将程序集更新到它可能就很简单了。我建议您阅读不同的.Net版本的实际内容。那么你的问题就可以自己回答了。