.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 更多信息,请查看:

目录
相关文章
|
机器学习/深度学习 监控 算法
yolov5无人机视频检测与计数系统(创新点和代码)
yolov5无人机视频检测与计数系统(创新点和代码)
社区供稿 | 一张照片跳舞的AnimateAnyone社区开发者复刻版,开源!
日前,兵马俑跳科目三、奶牛猫跳洗澡舞等趣味和魔性的短视频在社交媒体上出圈,背后“一张照片来跳舞”的技术来自阿里通义实验室在可控动画生成领域的一项研究工作——AnimateAnyone。
|
存储 移动开发 算法
Python怎么将图片转换成base64编码
Python怎么将图片转换成base64编码
737 0
|
4月前
|
存储 机器学习/深度学习 人工智能
云栖 2025|阿里云 Qwen3 系列领衔:AI 模型全栈突破与开发者落地指南
阿里云发布Qwen3全栈AI体系,七大模型升级、性能全球领先,开源生态稳居第一。从底层基建到开发工具链全面优化,助力企业高效落地AI应用,共建超级AI云生态。
1762 11
|
存储 索引
数组的特点
数组是一种线性数据结构,用于存储固定大小的顺序集合。每个元素在数组中都有一个唯一的索引,可以快速访问和修改。数组支持随机访问,但插入和删除操作较慢,因为需要移动后续元素。适用于需要频繁读取数据的场景。
|
10月前
|
API 开发者
HarmonyOS:ArkTS Path 组件自学指南
在鸿蒙应用开发中,绘制复杂图形常面临传统布局方式难以满足需求的问题。ArkTS 的 Path 组件提供了解决方案,如同一把“神奇画笔”,支持通过灵活的命令和属性绘制直线、曲线、椭圆弧等多样图形。本文详细介绍了 Path 组件从 API Version 7 起的功能特性,包括 `commands`、`fill`、`stroke` 等核心属性,以及各类绘图命令如 `M`(移动)、`L`(直线)、`C`(贝塞尔曲线)等。结合示例代码,展示了如何绘制简单直线到复杂曲线图形,并拓展了颜色、透明度和线条样式的自定义方法。掌握 Path 组件,可为应用带来更丰富生动的视觉体验,助力开发者实现创意绘图需求。
380 21
|
人工智能 自然语言处理 数据挖掘
从行业痛点到AI前沿:揭秘AGI时代企业培训的终极之选
近几年接触到的各类培训合作方越来越多,从国际咨询巨头、互联网科技培训平台,到本土独角兽型的专业培训公司;从专攻新技术与创新场景的培训团队,到深谙传统行业痛点的咨询顾问。作为一名在央企、国企、上市公司人力资源培训条线深耕多年的HR负责人,深知在这片竞争激烈的培训服务蓝海中,寻找高质、高效的合作伙伴并不简单,因为企业培训的逻辑正在悄然改变。
|
SQL 关系型数据库 数据库连接
Entity Framework Core 入门教程来袭!快速上手强大的 ORM 工具,开启高效数据库开发之旅!
【8月更文挑战第31天】Entity Framework Core(EF Core)是一个轻量且可扩展的对象关系映射(ORM)框架,允许开发者使用 .NET 语言操作数据库而无需直接编写 SQL 语句。本教程涵盖 EF Core 的安装、数据库上下文创建、数据库连接配置及常见数据库操作(如添加、查询、更新和删除),并介绍如何利用数据库迁移功能安全地更改数据库结构。通过本教程,你可以快速掌握 EF Core 的基本用法,提高开发效率。
1849 0
|
机器学习/深度学习 人工智能 Java
python与java的应用场景区别
python与java的应用场景区别
480 6

热门文章

最新文章