.NET5可以取代.NETStandard,而.NETCore3.1不能吗?用例
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。
这样做意味着您可以从新的 .NET 5 应用程序以及仍以 .NET Core 或 .NET Framework 为目标的应用程序中引用它们。
将类库从 .NET Standard 升级到 .NET 5 的唯一真正好处是,您将能够使用 .NET Standard 中不存在的任何新 API。