介绍
????????在本文中,我们将探讨 .NET Framework、.NET Core 和 .NET Standard 之间的差异。
.NET框架 | .NET核心 | |
?历史 | ?.NET Framework 是 .NET 的第一个实现。 | ?.NET Core 是 .NET 的最新实现。 |
?开源 | ?.NET Framework 的某些组件是开源的。 | ?.NET Core 是开源的。 |
?跨平台 | ?它仅适用于 Windows 平台。这不支持跨平台部署。 | ?它可以跨平台运行,如 Windows、Linux 和 macOS。 |
?第三方软件包支持 | ?有很多第三方包、库可供使用。 | ?.NET Core 还支持大量第三方包,但它仍然无法与 .NET Framework 竞争。 |
?应用内部署 | ?它不支持应用内部署模型。 | ?它确实支持应用内部署模型。 |
?性能和可扩展性 | ?与 .NET Core 相比,.NET Framework 在应用程序的性能和可扩展性方面效果较差。 | ?与 .NET Framework 相比,.NET Core 提供了高性能和可扩展性。 |
?微服务实施 | ?.NET Framework不支持微服务的实现。 | ?.NET Core支持微服务的实现 |
?REST 服务实施 | ?它支持 REST API 服务实现。 | ?我们可以使用 .NET Core 创建 REST API。 |
?命令行工具 | ?.NET Core 为所有支持的平台提供轻量级编辑器和命令行工具。 | ?.NET Framework 对于命令行界面来说很重要 |
?何时使用 |
|
|
?何时不使用 |
|
|
????????假设我们使用 .NET Framework 创建了一个应用程序并使用了一些共享库(由 .NET Framework 开发)。一段时间后,我们决定在 .NET Core 中创建一个应用程序,并尝试重用上述相同的共享库。它兼容吗?我们可以使用它吗?答案是不。由于兼容性问题,我们无法在 .NET Core 应用程序中使用 .NET Framework 基类库。基本上,面向 .NET Framework 的库只能在基于 .NET Framework 的应用程序中运行,而面向 .NET Core 的库只能在 .NET Core 兼容的应用程序中运行。
解决办法是什么?
????????解决方案是.NET Standard。.NET Standard 是一组 API 的规范,它与任何 .NET 平台(.NET Framework 或 .NET Core)兼容。如果我们使用 .NET Standard 创建基类库,那么它将与任何 .NET 运行时一起运行。因此,如果您想创建一个稍后重用的共享库,那么您可以选择 .NET Standard,因为它也可以与 .NET Framework、.NET Core 和 Xamarin 一起移植。
每个 .NET Standard 版本都包含一些 API 集,例如 System.Data、System.Collections 等。如果引入新版本的 .NET Standard,则它包含所有以前版本的 API 集以及一些新 API。更高版本的 .NET Standard 意味着更多可用的 API。?
.NET Standard?是:
?
.NET Standard 支持多种框架,如下表所示:
.NET Standard - .NET | Microsoft Learn
.NET Standard | 1.0 | 1.1 | 1.2 | 1.3 | 1.4 | 1.5 | 1.6 | 2.0 | 2.1 |
.NET | 5.0 | 5.0 | 5.0 | 5.0 | 5.0 | 5.0 | 5.0 | 5.0 | 5.0 |
.NET Core | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 2.0 | 3.0 |
.NET Framework?1 | 4.5 | 4.5 | 4.5.1 | 4.6 | 4.6.1 | 4.6.1?2 | 4.6.1?2 | 4.6.1?2 | N/A3 |
Mono | 4.6 | 4.6 | 4.6 | 4.6 | 4.6 | 4.6 | 4.6 | 5.4 | 6.4 |
Xamarin.iOS | 10.0 | 10.0 | 10.0 | 10.0 | 10.0 | 10.0 | 10.0 | 10.14 | 12.16 |
Xamarin.Mac | 3.0 | 3.0 | 3.0 | 3.0 | 3.0 | 3.0 | 3.0 | 3.8 | 5.16 |
Xamarin.Android | 7.0 | 7.0 | 7.0 | 7.0 | 7.0 | 7.0 | 7.0 | 8.0 | 10.0 |
Universal Windows Platform | 10.0 | 10.0 | 10.0 | 10.0 | 10.0 | 10.0.16299 | 10.0.16299 | 10.0.16299 | TBD |
Unity | 2018.1 | 2018.1 | 2018.1 | 2018.1 | 2018.1 | 2018.1 | 2018.1 | 2018.1 | 2021.2.0b6 |
我希望您喜欢本文,并且现在了解 .NET Framework、.NET Core 和 .NET Standard 之间的差异。