.NET Framework 与 .NET Core 与 .NET Standard 之间的差异

介绍

在本文中,我们将探讨 .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 对于命令行界面来说很重要
何时使用 * 我们的应用程序仅运行在 Windows 平台上。 * 我们的应用程序基于 WinForms 或 WPF 应用程序。 * ASP.NET Web 窗体创建。 * 如果你想创建一个WCF服务。 * 我们的应用程序使用了一些 .NET Core 不支持的第三方包。 * 该应用程序使用 .NET Core 不可用的 .NET 技术。 * 如果您的应用程序想要访问 Windows 特定的 API,则选择 .NET Framework。 * 创建跨平台应用程序。 * 要创建微服务,那么一定要使用 .NET Core。 * 将应用程序部署到 Docker 容器。 * 创建高性能和可扩展的应用程序。 * 如果您并行运行多个 .NET 版本,请选择 .NET Core。 * 如果您想要命令行界面 (CLI) 控制,那么 .NET core 是最佳选择。
何时不使用 * 跨操作系统平台运行是应用程序的要求。 * 如果你想实现微服务。 * 需要最佳性能和可扩展性的 Web 应用程序 * .NET Core 中不存在 ASP.NET WebForms。 * 如果你想创建一个WCF服务。 * 如果您的应用程序想要访问特定于 Windows 的 API。 * 如果您的应用程序需要使用 Windows 注册表、WMI 或其他 Windows 特定 API,则它将无法与 .NET Core 一起使用。

.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 之间的差异。

相关推荐
哥是强混1 小时前
Means:基于 .NET 10 打造的开源自部署 S3 兼容对象存储服务
网络·数据库·.net
公子小六8 小时前
基于.NET的Windows窗体编程之WinForms图像控件
windows·microsoft·c#·.net·winforms
界面开发小八哥9 小时前
界面控件DevExpress WPF v26.1新版亮点 - TreeView、Spreadsheet控件功能升级
.net·wpf·界面控件·devexpress·ui开发
尼米棕熊11 小时前
.NET CORE认证模块-注册方案与请求认证探究
.netcore
脚后跟法12 小时前
.NET热门ORM真实的性能测试总结
jvm·php·.net
娇气的红酒1 天前
关于.NET VS JavaEE平台争论的沉思录
java·java-ee·.net
单薄的衬衫1 天前
前一篇:详解 .NET 异步
.net
君无忧≈1 天前
.NET生态下Native AOT兼容的Cron任务调度框架
.net
步步为营DotNet2 天前
运用.NET Aspire 和 Native AOT 打造极致性能的云原生微服务
微服务·云原生·.net
꒰ঌ 安卓开发໒꒱2 天前
.NET CAP入门到入土
后端·c#·.net