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

news/2024/5/19 23:06:45 标签: .netcore, .net

介绍

        在本文中,我们将探讨 .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 Standard1.01.11.21.31.41.51.62.02.1
.NET5.05.05.05.05.05.05.05.05.0
.NET Core1.01.01.01.01.01.01.02.03.0
.NET Framework 14.54.54.5.14.64.6.14.6.1 24.6.1 24.6.1 2N/A3
Mono4.64.64.64.64.64.64.65.46.4
Xamarin.iOS10.010.010.010.010.010.010.010.1412.16
Xamarin.Mac3.03.03.03.03.03.03.03.85.16
Xamarin.Android7.07.07.07.07.07.07.08.010.0
Universal Windows Platform10.010.010.010.010.010.0.1629910.0.1629910.0.16299TBD
Unity2018.12018.12018.12018.12018.12018.12018.12018.12021.2.0b6

概括

  • .NET Framework主要用于基于Windows的应用程序开发,与.NET Core相比效率较低。
  • .NET Core 是开源的,用于开发跨平台应用程序和微服务。
  • .NET Standard 用于创建可在任何 .NET 平台中重用的共享库。

我希望您喜欢本文,并且现在了解 .NET Framework、.NET Core 和 .NET Standard 之间的差异。


http://www.niftyadmin.cn/n/5314416.html

相关文章

jmeter和metersphere引用jar包报错Error invoking bsh method和 not found in namespace

2024-01-09 09:26:38 ERROR 54b7e26f 1-1 Error invoking bsh method: eval Sourced file: inline evaluation of: // BeanShell脚本开始 import com.example.demo.DemoApplication; DemoApplica . . . : Typed variable declaration : Class: DemoApplication not found in n…

CMake入门教程【核心篇】设置和使用缓存变量

😈「CSDN主页」:传送门 😈「Bilibil首页」:传送门 😈「动动你的小手」:点赞👍收藏⭐️评论📝 文章目录 概述设置缓存变量使用缓存变量更改缓存变量完整代码示例实战使用技巧注意事项总结与分析

Agisoft Metashape 地面点分类参数设置

Agisoft Metashape 点云分类之地面点分类参数设置 文章目录 Agisoft Metashape 点云分类之地面点分类参数设置前言一、分类地面点参数二、农村及城区有房屋地区二、植被区域分类三、侵蚀半径(Erosion radius)参数设置前言 Agisoft Metashape提供了自动检测地面点的功能,减少…

ES6---判断对象是否为{}

介绍 使用es6语法判断一个对象是否为{} 示例 使用ES6的Object.keys()方法,返回值是对象中属性名组成的数组 let obj {}let keys Object.keys(obj) if(keys.length){alert(对象不为{}) }else{alert(对象为{}) }代码地址 https://gitee.com/u.uu.com/js-test/b…

数据库教程:从基础到进阶

数据库教程:从基础到进阶 大家好,我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天,我们将一同探索一项对于每位程序猿都至关重要的技能——“数据…

@基于大模型的旅游路线推荐方案

@基于大模型的旅游路线推荐方案 文章目录 大模型用于推荐大模型选型推荐旅游路径业务知识探索推荐实现方案准备工作数据准备通用模型准备模型微调向量数据库建设大模型用于推荐 目前将大模型应用于推荐领域的研究热度渐长。因为如下原因: 大模型可以结合文本给出有价值的排序…

书生·浦语大模型实战营第二次课堂笔记

文章目录 什么是大模型?pip,conda换源模型下载 什么是大模型? 人工智能领域中参数数量巨大、拥有庞大计算能力和参数规模的模型 特点及应用: 利用大量数据进行训练拥有数十亿甚至数千亿个参数模型在各种任务重展现出惊人的性能 …

【python】TCP测速程序

一、服务端 下面是一个简单的 Python 服务端程序的示例,使用标准库中的 socket 模块来建立一个 TCP 服务器。该服务器接收客户端的连接请求,客户端发送一定大小的数据流以测试 TCP 带宽。 实际场景中带宽测试可能需要更复杂的逻辑来确保测试的准确性。 …