当前位置: 首页 > news >正文

.NET Standard、.NET Framework 、.NET Core三者的关系与区别?

.NET Standard、.NET Framework 和 .NET Core 是 .NET 平台生态中的三个关键概念,它们之间存在明确的关系和显著的区别。下面分别阐述它们各自的角色以及相互间的关系:

 

.NET Standard

角色: .NET Standard 是一套正式的 API 规范,定义了 .NET 平台上一组通用的基础类库(BCL)和功能接口。它旨在确保跨不同 .NET 实现(如 .NET Framework、.NET Core、Xamarin、Mono 等)的一致性和兼容性。开发人员可以按照 .NET Standard 规范编写类库代码,确保这些代码能够在遵循相同或更高版本标准的任何 .NET 实现中运行。

是否包含其他两者: .NET Standard 不包含 .NET Framework 或 .NET Core。它是一个抽象的规范集合,不是一个具体的实现框架。各个 .NET 实现(包括 .NET Framework 和 .NET Core)需按照 .NET Standard 规范来实现相应的 API,从而使得符合该标准的类库能在这些实现上运行。

 

.NET Framework

角色: .NET Framework 是一个专为 Windows 平台设计和优化的开发框架,提供了丰富的类库、运行时环境(CLR)、开发工具和应用程序模型(如 WinForms、WPF、ASP.NET 等)。它主要用于构建桌面应用程序、Web 应用和服务端应用,并且完全依赖于 Windows 操作系统的特性和服务。

是否包含其他两者: .NET Framework 不直接包含 .NET Core,因为它们是两个独立的、目标定位不同的框架。然而,.NET Framework 确实包含 实现了某个特定版本 .NET Standard 的类库,这意味着它支持符合该标准的跨平台代码执行。尽管如此,.NET Framework 本身仍然是一个专有且不跨平台的实现。

 

.NET Core

角色: .NET Core 是一个开放源代码、跨平台的 .NET 实现,最初设计目标是提供轻量级、模块化且高性能的开发框架,适用于云、微服务、容器化和物联网场景。它包含了一个现代的运行时(CoreCLR)、一组核心类库以及诸如 ASP.NET Core、EF Core 等组件。随着时间推移,.NET Core 成为了 .NET 平台的主力发展分支,逐渐合并了 .NET Framework 的许多功能,并且支持 Windows、Linux、macOS 等多种操作系统。

 

是否包含其他两者: .NET Core 不包含 .NET Framework,它们是并行存在的两个不同框架,虽然功能上有重叠和融合的趋势。与 .NET Framework 类似,.NET Core 也实现了 某个特定版本的 .NET Standard,允许其运行符合标准的跨平台代码。随着 .NET Core 的发展,它逐渐取代了 .NET Framework 在跨平台和云端开发的地位,并且在后续的 .NET 5 及更高版本中继续演进。

 

三者区别

它们的区别包括:

  1. 跨平台性:.NET Core 具有更好的跨平台性,而.NET Framework 主要用于 Windows。
  2. 开源性:.NET Core 是开源的,而.NET Framework 不是。
  3. 应用场景:.NET Framework 适用于传统的 Windows 应用,.NET Core 适用于现代的跨平台应用。

 

三者之间的关系

1..NET Core 和.NET Framework 都实现了.NET Standard 定义的 API。
2..NET Standard 不包含.NET Framework 或.NET Core,它只是一个规范。
3..NET Framework 不包含.NET Core,它们是不同的框架。
4..NET Core 本身不包含.NET Framework,但它实现了与.NET Framework 相同的一些 API。

总之,.NET Standard 提供了一个通用的 API 规范,.NET Framework 和.NET Core 则是具体的实现。通过实现.NET Standard,它们可以确保代码的兼容性和可移植性。

 

总结

  • .NET Standard 是一个规范,定义了跨 .NET 实现的标准 API 集合,它被 .NET Framework 和 .NET Core 等实现所遵循。
  • .NET Framework 和 .NET Core 是两个独立的 .NET 实现,分别针对 Windows 平台的传统应用开发和跨平台的现代应用开发。
  • .NET Framework 和 .NET Core 都包含了实现相应版本 .NET Standard 的类库,以支持跨平台代码的复用,但它们并不包含彼此。随着时间的推移,.NET Core 已成为 .NET 平台发展的主线,而 .NET Framework 处于维护模式,不再接收重大更新。

 

相关文章:

  • EasyExcel 校验后导入
  • 初识React(二)响应事件、state、useState
  • 性能分析-CPU知识
  • 内外网数据交换发展进程:安全与便捷并行
  • 甘特图/横道图制作技巧 - 任务组
  • 为什么苹果 Mac 电脑需要使用清理软件?
  • 系统架构评估_1.相关概念
  • 神经网络中的超参数调整
  • 【Java】maven常用命令
  • 如何备考2025年AMC8竞赛?吃透2000-2024年600道真题(免费送题)
  • xilinx 7系列fpga上电配置
  • Svg Flow Editor 原生svg流程图编辑器(五)
  • 免费SSL通配符证书/SSL泛域名证书获取教程
  • 爬虫入狱笔记——xx政府网站公开政策数据
  • [挖坟]如何安装Shizuku和LSPatch并安装模块(不需要Root,非Magisk)
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • 《用数据讲故事》作者Cole N. Knaflic:消除一切无效的图表
  • Apache Spark Streaming 使用实例
  • Babel配置的不完全指南
  • docker python 配置
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • Java基本数据类型之Number
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • 当SetTimeout遇到了字符串
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 给github项目添加CI badge
  • 将回调地狱按在地上摩擦的Promise
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 深入浅出webpack学习(1)--核心概念
  • 腾讯优测优分享 | 你是否体验过Android手机插入耳机后仍外放的尴尬?
  • 微信小程序--------语音识别(前端自己也能玩)
  • 异步
  • 用jquery写贪吃蛇
  • 没有任何编程基础可以直接学习python语言吗?学会后能够做什么? ...
  • ​决定德拉瓦州地区版图的关键历史事件
  • # 飞书APP集成平台-数字化落地
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • #define
  • (2022 CVPR) Unbiased Teacher v2
  • (TipsTricks)用客户端模板精简JavaScript代码
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (动手学习深度学习)第13章 计算机视觉---微调
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • (四)搭建容器云管理平台笔记—安装ETCD(不使用证书)
  • (转)winform之ListView
  • . ./ bash dash source 这五种执行shell脚本方式 区别
  • .NET Core IdentityServer4实战-开篇介绍与规划
  • .NET Core Web APi类库如何内嵌运行?
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现
  • .Net 转战 Android 4.4 日常笔记(4)--按钮事件和国际化
  • .net6 webapi log4net完整配置使用流程
  • .NET程序员迈向卓越的必由之路
  • .NET业务框架的构建
  • .Net中的集合