.NET 5 可以替代 .NET Standard 而 .NET Core 3.1 不能?用例

.NET 5 can replace .NET Standard where .NET Core 3.1 cannot ? Use case

10 月,我被要求接手一个离开到另一家公司的同事的 IT 项目。这位同事做了一个 IT 项目,他必须使用用 .NET Framework 4.7 编写的“旧库”。他想在 .NET Core 中使用 WPF 应用程序,但很快就体验到无法立即引用这些 .NET Framework 4.7 项目。通过如下图所示设置整个体系结构,他在业务逻辑(调用旧库的地方)中使用了 .NET Standard 2.0 项目。这些业务逻辑一方面可以在 WPF .Net Core 3.1 应用程序中引用,另一方面可以调用 .NET Framework 4.7 项目(在这个简化的示例中:Food Calculator 和 Shelter Calculator)。

当我在 11 月接手时,.NET 5 发布了,我看到了这篇文章 Microsoft Says .Net 5 replaces .NET Standard (Except for...) 。这让我想到我也许可以一直选择 .NET 5 并且我将所有代码(除了我暂时无法更改的旧库之外)移植到 .NET 5 . 现在这似乎可以简化我认为的架构。

请看我的概述,第一个版本 (1.0) 是红色的,第二个版本 (2.0) 是蓝色的。

现在我的问题是: 在这种情况下,.NET 5 不仅仅是 .NET Core 3.1 的下一个版本 但甚至更进一步……在某种程度上,.NET 5 也使 .NET Standard 在这些类型的体系结构中过时了?或者这是一个非常特殊的情况,如果我想制作 Blazor 客户端而不是 WPF,是否仍然需要 .NET Standard?

.NET 5 及更高版本最终将使 .NET Standard 过时,但只要您没有将所有应用程序移植到 .NET 5,您仍然会受益于在共享中使用 .NET Standard class 图书馆。

这样做意味着您可以从新的 .NET 5 应用程序以及仍然以 .NET Core 或 .NET Framework 为目标的应用程序中引用它们。

将 class 库从 .NET Standard 升级到 .NET 5 的唯一真正好处是您将能够使用 .NET Standard 中不存在的任何新 API。