.NET 发展历程

简介: .NET 是开源、跨平台、社区活跃技术开发平台,中国信通院在 2022 | OSCAR 开源产业大会大会上发布的全球开源生态研究报告里首次提出开源社区成熟度度量模型,.NET 法律合规表现出色,组件许可证兼容性较高,法律风险较小。其生态基于 MIT 和 Apache 2.0 协议基础上构建,对商业友好。

image.png

.NET20022 月份发布第一个版本 1.0,至今已有 20 年了,大概经历了以下几个阶段:

  • 早期 .NET,Only Windows(全称 .NET Framework1.0-4.8.1,时间 2002.02-2019.04);
  • 过渡期 .NET,开源、跨平台.NET Core1.0-3.1.x,时间 2016.06.27-2022.12.13);
  • 当下 .NET(.NET5/6/7+) 统一化、云原生、高性能,其中 .NET5 终止于 2022510 日,.NET6 LTS 版本支持到 2024.11.12.NET7 RC1 预计 202211 月发布正式版。

早期 .NET(.NET Framework 1.0-4.8.1,时间 2002.02-2022.08)

2002 年 2 月 23 日最早的 .NET Framework1.0 发布,终止于 2022 年 8 月 9 日发布的 .NET Framework 4.8.1 版本。
  • 2019 年 4 月 18 日发布 .NET Framework4.8.0
  • 2022 年 8 月 9 日发布 .NET Framework4.8.1

image.png

.NET Framework 是由微软开发,一个致力于敏捷软件开发(Agile software development)、快速应用开发(Rapid application development)、平台无关性和网络透明化的软件开发平台。.NET 是微软为下一个十年对服务器和桌面软件工程迈出的第一步。.NET 包含许多有助于 InternetIntranet 应用 迅捷开发的技术。

.NET Framework 是微软公司继 Windows DNA 之后的新开发平台。.NET Framework 是以一种采用系统虚拟机运行的编程平台,以公共语言运行时(Common Language Runtime)为基础,支持多种语言(C#、VB.NET、C++、J# 等)的开发。

.NET Framework 也为编程界面(API)提供了新功能和开发工具。这些革新使得程序设计员可以同时进行 Windows 应用软件和网络应用软件以及元件和服务(web service)的开发。.NET Framework 提供了一个新的反射性的且面向对象程序设计编程界面。.NET Framework 设计得足够通用化从而使许多不同高级语言都得以被汇集。

  • .NET Framework(only windows) 架构图

image.png

  • .NET Framework 与 C# 概述

image.png

.NET 基金会成立(2014.03.31)

.NET Foundation 官方地址: https://dotnetfoundation.org/

image.png

.NET 基金会(.NET Foundation)是一个独立的组织,支持 .NET 社区和开源,旨在拓宽和加强 .NET 生态系统和社区。2014 年 3 月 31 日微软组织成立 .NET 基金会,微软在成为主要的开源参与者的道路上又前进了一步。2014 年 .NET 基金会的创始成员中有六位创始人,均非微软公司员工。2019 年 .NET 基金会改选,其中只有一位是微软员工,其他都是微软 MVP 或 .NET 活跃人士。

image.png

.NET 基金会的成立,微软在 .NET 项目中的角色从原来的 “管理(独裁)者” 转变为成员 “参与者”,促进社区更佳开放、自由的生态发展。

过渡期 .NET(.NET Core 1.0-3.1.x,时间 2016.06.27-2022.12.13)

2016 年 6 月 27 日 .NET Core 1.0 项目正式发布,彻底改变了 Windows Only 的场景,拥抱开源、跨平台。

.NET Core 是适用于 WindowsLinuxmacOS 的免费、开源托管的计算机软件框架,是微软开发的第一个官方版本,具有跨平台能力的应用程序开发框架 (Application Framework),未来也将会支持 FreeBSDAlpine 平台,也是微软在一开始发展时就开源的软件平台 [1] ,它经常也会拿来和现有的 开源 .NET 平台 Mono 比较。

由于 .NET Core 的开发目标是跨平台的 .NET 平台,因此 .NET Core 会包含 .NET Framework 的类库,但与 .NET Framework 不同的是 .NET Core采用包化 (Packages) 的管理方式,应用程序只需要获取需要的组件即可,与 .NET Framework 打包式安装的做法截然不同,同时各包亦有独立的版本线 (Version line),不再硬性要求应用程序跟随主线版本。

.NET Core 项目的主要目标有 [2] :

  • 支持或可以移转 (port) 到更多的操作系统平台与芯片架构 (也就是未来项目会跨出 x86 平台)。
  • 具有引人注目的性能与高可靠度。
  • 开发人员能快速与直接的获取 .NET Core 开发环境。
  • 在直觉与具生产力的情况下建造应用程序,使用文件,示例与 NuGet 组件。

image.png

当下 .NET(.NET5/6/7+)

.NET 5(非 LTS 版,时间 2020.11.10-2022.05.08)

2020 年 11 月 10 日正式发布 .NET 5 ,终止于 2022年5月10日。该版本当前最新补丁版本为 5.0.12,发布时间为 2021 年 11 月 8 日。

image.png

.NET 5 = .NET Core vNextNET 5.NET Core 的下一版本。

该项目旨在通过以下几个关键方式改进 .NET

  • 构建一个可在任何地方(Any where)使用的 .NET 运行时和框架,并具有统一的运行时行为和开发人员体验。
  • 通过充分利用 .NET Core.NET FrameworkXamarinMono 来扩展 .NET 的功能。
  • 从单个代码库构建该产品,开发人员( Microsoft 和 社区)可以一起工作并一起扩展,从而改进所有方案。

这个新项目和方向是 .NET 的一个重要转折。使用 .NET 5,无论您正在构建哪种类型的应用程序,您的代码和项目文件都将是相同的。每个应用都可以访问相同的运行时、API 和语言功能。也包括几乎每天都在进行的 corefx 的性能改进。

.NET 6(LTS,Long Term Support,时间 2022.09.13-2024.11.12)

2021 年 11 月 8 日,微软正式发布了 .NET 6 及其一系列内容,推出了 C# 10、F# 6 和 PowerShell 7.2,.NET 6 还原生支持了苹果 M1 芯片,将得到三年支持。

image.png

.NET 6 是从 .NET 5 开始的 .NET 统一计划的最后部分,在 .NET 历程上具有 里程碑意义

这种 统一 体现在 ==跨平台、桌面、IoT 和云应用的统一的SDK、基本库和运行时(Runtime)==。 除了这种统一,.NET6 生态系统还提供:

  • 简化的开发:入门很简单。 C# 10 中的新语言功能减少了需要编写的代码量。 通过 Web 堆栈最小 API(minAPI) 方面的投资,可以轻松快速编写更小、速度更快的 微服务(Microservice)
  • 更好的性能.NET 6 是最快的完整堆栈 Web 框架,如果是在云中运行,则它可以降低计算成本。
  • 终极工作效率.NET 6Visual Studio 2022 提供热重载(Hot Reload)、新的 git 工具、智能代码编辑、可靠的诊断和测试工具,以及更好的团队协作。
  • 重要点:.NET 6 将支持三年(2021 年 11 月 8 日到 2024 年 11 月 12 日) ,作为 LTS (长期) 支持。

2021 年 11 月 8 日的发布是 .NET 团队和社区一年多努力的结果。其中 C# 10F# 6 提供语言改进,使代码更简单、更好。性能有了巨大的提升。.NET 6 首次发布了对本地化 Apple Silicon(Arm64) 的支持,并且还改进了 Windows Arm64 的相关性能。.NET 6 构建了一个新的动态配置文件导向优化 (PGO) 系统,该系统可提供仅在运行时才可能实现的深度优化。云诊断已改进与 dotnet monitorOpen TelemetryWebAssembly 支持更有能力、更具有性能。新的 API 已经添加支持 HTTP/3,处理 JSON 数据,并直接操纵内存。

开发人员已经开始将应用程序升级到 .NET 6,已在生产方面取得了很大的提升。

您可以下载 ==.NET 6 用于 LinuxmacOSWindows==。

.NET 7(非 LTS 版, 从正式版发布之日起仅能获得18 个月的免费支持和补丁)

2022 年 2 月17日发布 NET 7.0.0-preview.1,目前最新版是 NET 7.0.0-rc1

.NET 7 RC 1 已通过 Visual Studio 17.4 Preview 2 测试,微软将在 2022 年 11 月 8 日至 10 日的 .NET Conf 2022 上发布 .NET 7 正式版。

image.png

.NET 7 RC 1 包含多项改进:

  • .NET MAUI:.NET 多平台应用程序 UI (MAUI) 将 AndroidiOSmacOSWindows API 统一到一个 API 中,开发者可以编写一个在多平台上本机运行的应用。作为 .NET 7 的一部分,.NET MAUI 提供了一个项目来处理跨设备及其平台的多目标。
  • 云原生(Cloud Native):云原生是一组最佳实践,用于在云中构建应用,以利用弹性、可扩展性、效率和速度。
  • ARM64.NET 可帮助开发者构建在 ARM 设备上运行的应用,.NET 7 将迎来多项改进。
  • 现代化:为了使升级体验尽可能无缝,.NET 升级助手为开发者提供分步指导体验,通过分析和改进项目文件、代码文件和依赖项来现代化 .NET 应用。
  • 性能.NET 7 是目前最快的 .NET。.NET 7 对反射、堆栈替换 (OSR)、启动时间、本机 AOT、循环优化和许多其他领域进行了超过一千项影响性能的改进。
  • 支持:.NET 7 不是长期支持 (LTS) 版本,因此在发布之日起仅能获得 18 个月的免费支持和补丁。

.NET 未来发布计划

image.png

发布类型

.NET 未来版本将会一直提供 LTS 版 和 非 LTS 版:

  • LTS 版本每个版本均可获得三年的补丁更新和免费支持。
  • 非 LTS 版可以获得至少 18 个月的补丁更新和免费支持。

image.png

  • 长期支持(LTS):

LTS 版本在初始发布日期后的三年内受支持。

  • 标准期限支持(STS):

STS 版本在后续 STS 或 LTS 版本发布后的六个月内受支持。每 12 个月发布一次,因此 STS 的支持期为 18 个月。

说明: STS 版本以前称为 Current 版本。

发布计划

主要 .NET 版本每年 11 月发布一次。每个 .NET 版本在发布开始时都定义为标准期限支持(STS)或长期支持(LTS)。

  • STS 版本以偶数年为单位发布,LTS 版本以奇数年为单位发布。
  • 所有版本的质量完全相同,唯一的区别是支持长度。
  • LTS 版本可获得 3 年的免费支持和修补程序。
  • STS 版本可获得 18 个月的免费支持和修补程序。

修补程序更新会于每月第二个星期二发布,也称为“修补程序星期二”。在版本的支持生命周期内,系统必须保持已发布补丁更新的最新状态。版本修补程序是兼容的,这消除了对应用程序产生不利影响的风险。

image.png

.NET 20th(happy birthday)

今年 2022 年是 .NET 诞生 20 周年,祝 .NET 生日快,.NET 生态开放共赢,与时俱进,蓬勃发展!

image.png

  • 二十岁的女孩子是美丽的流星划过天际,还是燃烧着的陨石坠落人间,二十岁的年纪,美好的人生才刚刚开始;
  • 二十岁,我虽还是万丈红尘中的一颗小小尘埃,可仍会盼望有一天能开出一抹红,在阳光下灿烂;
  • 二十岁的女孩是一朵盛开最美丽的花,是一杯清茶其中的清秀一定要留给懂得品尝的人;

20 岁正值年华,20 岁有很多的美好和憧憬,你是否也期待?

image.png

关于 .NET 更多信息,请查看:

目录
相关文章
|
关系型数据库 MySQL 数据库
MySQL系列(二)之CRUD(增删改查)操作
MySQL系列(二)之CRUD(增删改查)操作
|
25天前
|
人工智能 弹性计算 监控
2026年OpenClaw/Clawdbot指南:阿里云部署、技能扩展与场景落地解析
2026年阿里云OpenClaw(原Clawdbot)的主流应用场景、官方部署规范及用户实战经验,本文将系统梳理OpenClaw的核心价值、阿里云零基础部署流程、必装技能组合、实战案例及优化技巧,全程附可直接复制的代码命令,确保内容专业、实用且符合“无隐藏消费、全场景适配”的核心特点,帮助用户快速解锁AI自动化能力。
566 9
|
10月前
|
测试技术 Linux 网络安全
【App Services】App Service报错远程证书无效 - "The remote certificate is invalid according to the validation procedure"
在开发环境中,新部署的应用(App Service)无法与 Salesforce 的远程端点建立 SSL/TLS 连接,报错显示证书无效。经分析,防火墙启用了 SSL Inspection,插入了私有 CA 签发的中间证书,导致 App Service 无法验证。解决方案包括禁用 SSL Inspection、设置 `WEBSITE_LOAD_ROOT_CERTIFICATES` 环境变量或临时禁用代码中的 SSL 验证(仅限测试环境)。
294 8
|
NoSQL MongoDB 数据库
MongoDB【部署 03】Windows系统安装mongodb并设置用户名密码(无需安装mongosh)及SpringBoot集成报错 Command failed with error 18
MongoDB【部署 03】Windows系统安装mongodb并设置用户名密码(无需安装mongosh)及SpringBoot集成报错 Command failed with error 18
2539 1
|
人工智能 自然语言处理 数据挖掘
从行业痛点到AI前沿:揭秘AGI时代企业培训的终极之选
近几年接触到的各类培训合作方越来越多,从国际咨询巨头、互联网科技培训平台,到本土独角兽型的专业培训公司;从专攻新技术与创新场景的培训团队,到深谙传统行业痛点的咨询顾问。作为一名在央企、国企、上市公司人力资源培训条线深耕多年的HR负责人,深知在这片竞争激烈的培训服务蓝海中,寻找高质、高效的合作伙伴并不简单,因为企业培训的逻辑正在悄然改变。
|
机器学习/深度学习 PyTorch TensorFlow
【Python机器学习专栏】卷积神经网络(CNN)的原理与应用
【4月更文挑战第30天】本文介绍了卷积神经网络(CNN)的基本原理和结构组成,包括卷积层、激活函数、池化层和全连接层。CNN在图像识别等领域表现出色,其层次结构能逐步提取特征。在Python中,可利用TensorFlow或PyTorch构建CNN模型,示例代码展示了使用TensorFlow Keras API创建简单CNN的过程。CNN作为强大深度学习模型,未来仍有广阔发展空间。
475 0
|
API 开发者
在钉钉中,上传附件到钉盘的API调用方式
在钉钉中,上传附件到钉盘的API调用方式
888 2
|
缓存 IDE 编译器
假如没有go install,编译会多痛苦?
假如没有go install,编译会多痛苦?
542 0
|
NoSQL 算法 API
Redis实现API访问频率限制
Redis实现API访问频率限制
375 0

热门文章

最新文章