介绍
在本文中,我们将探讨 .NET Framework、.NET Core 和 .NET Standard 之间的差异。
.NET Framework 与 .NET Core
.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 Standard
假设我们使用 .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 Framework 或 .NET Core 那样的框架。
- 这是所有 .NET 实现都必须实现的一组基本 API
- 用于代码共享并在不同运行时之间重用代码。
- 与任何 .NET 应用程序兼容。
.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主要用于基于Windows的应用程序开发,与.NET Core相比效率较低。
- .NET Core 是开源的,用于开发跨平台应用程序和微服务。
- .NET Standard 用于创建可在任何 .NET 平台中重用的共享库。
我希望您喜欢本文,并且现在了解 .NET Framework、.NET Core 和 .NET Standard 之间的差异。