如果你热爱某产品,你一定想了解它的历史。今天我们简单回顾一下 .NET 平台的发展历史,来看看它在历史上的里程碑,这对我们更好地了解和学习 .NET 有着重要的意义。

微软 .NET 战略初衷

20 世纪 90 年代,微软只有 Visual Basic 和 Visual C++ 语言。同时期 Sun 公司在 1995 年推出了 Java 语言,在业界得到了广泛的支持。

短短几年内,Java 迅速建立了庞大的生态系统,微软也不得不考虑加以应对。即使在这样的竞争压力下,当时的微软 CEO 比尔·盖茨也毫不畏怯。他雄心勃勃地说,微软将“为新一代的互联网奠定基础”。这就是那个时期的比尔·盖茨,曾经连续 13 年蝉联世界首富的人(从 1995 年开始)。

于是,微软开始制定 .NET 战略,并为之而努力。这个战略背后的主要想法是要将 .NET 涵盖进所有的微软产品中,并在现有的 Windows 产品名称中添加 .NET 结尾,即 Windows.NET。在 2000 年,微软把下一代 Windows 服务(简称 NGWS)的名字取名为 .NET Framework,从此 .NET 这个名字家喻户晓。也是 2000 年,比尔·盖茨卸任微软 CEO,史蒂芬·鲍尔默上任。

2000 年至 2014 年

2000 年至 2014 年这 14 年间,微软的主要开发产品线是 .NET Framework。

2000 年末,微软发布第一个 .NET Framework Beta 版本,紧接着在 2001 年初发布第一个 .NET Framework 正式版 v1.0。在 2003 年升级到 v1.1,完善了桌面应用开发和 Web 开发,推出了 ASP.NET。

2006 年左右,微软相继推出了 .NET Framework 的 2.0 和 3.0 版本。在 3.0 版本中,微软推出了 WPC、WCF、WF 等框架。随着 3.0 的问世,微软进入黄金时代,称霸了一大半开发市场。

不过好景不长,在短短几年后的 2009 年左右,开发市场风起云涌,Web 开发大行其道,Java、PHP 崛起。微软先前打下的江山开始迅速被开源的 Java、PHP、Ruby 等瓜分。为了夺回失去的 Web 开发市场,微软在 2009 年发布了 Web 框架 ASP.NET MVC 1.0 并完全开源,并在随后几年不断完善。

2010 年至 2014 年,.NET Framework 从 4.0 升级到 4.5。ASP.NET MVC 框架也在不断升级,期间不仅没有夺回 Web 开发市场,反而还在继续失守。

2014 年,微软最终向市场妥协,开始热情拥抱开源和跨平台。微软先后开源了 Roslyn、ASP.NET 等众多项目。也是在这一年,萨提亚·纳德拉作为微软第三任 CEO 上任。

2015 年至今

2015 年,微软决定开启一条全新的跨平台产品线:.NET Core,并完全开源。同时,这一年微软把 .NET Framework 升级到了 4.6 版本。

2016 年,.NET Core 问世,微软推正式出 .NET Core 1.0。同时也推出了新的跨平台 Web 框架 ASP.NET Core 和开发 Win10 应用的 UWP 框架。之后几年,.NET Core 以几乎每年一个版本的速度迅速迭代。

2017 年,.NET Core 2.0 发布,同时传统的 .NET Framework 升级到了 4.7 版本。

2019 年,.NET Core 3.0 发布,这个版本代表着 .NET Core 已经彻底稳定下来,且它的生态圈和社区也发展地非常成熟。这一年 .NET Framework 升级到了 4.8,不过此时的 .NET Framework 新版本已经无人问津,这也是 .NET Framework 的最后一个版本。

2020 年,为了避免产品线的混乱,微软开始统一产品线,关闭了 .NET Framework 这条产品线,并将 .NET Core 产品线更名为 .NET。为了避免与 .NET Framework 4.x 版本号冲突,.NET 产品线直接从版本号 5 开始,即 .NET 5.0,并于这一年 11 月正式发布。

2021 年(今年),微软将在 11 月份推出统一的 .NET 长期支持版本 6.0。从微软 .NET 路线图得知,未来微软每年都会发布一个 .NET 主要版本。

小结

截止目前,自 .NET 平台 2002 年正式问世以来,已经有 19 年的历史了。总的来说,.NET 的发展经历了 .NET Framework,.NET Core 再到大统一的 .NET 5。我画了一张图表示它们之间的发展时间线:

注意,.NET Core 产品线只是改名成了 .NET,.NET Core 的下一个版本是 .NET 5,被关闭的产品线是 .NET Framework。从 .NET 5 开始,微软只有 .NET 这一条产品线。

[.NET大牛之路 003] .NET 的发展简史的更多相关文章

  1. [.NET大牛之路 001] .NET 其名

    本文来自『.NET大牛之路』星球的分享 大家好,这是 .NET 大牛这路的第 1 篇文章.大家期待已久的课程今天正式开始了.既然我们整个体系课程都将围绕 .NET 展开,那我们今天就先聊一聊 .NET ...

  2. [.NET大牛之路 006] 了解 Roslyn 编译器

    .NET大牛之路 • 王亮@精致码农 • 2021.07.09 维基百科对编译器的解释是:编译器是一种程序,它将某种编程语言编写的源代码(原始语言)转换成另一种编程语言(目标语言).编译是从源代码(通 ...

  3. [.NET大牛之路 005] .NET 的执行模型

    .NET大牛之路 • 王亮@精致码农 • 2021.07.06 前面我们介绍 .NET 历史时讲过,微软基于 .NET Framework 重新设计并创造了跨平台的 .NET Core,目前已经发展到 ...

  4. [ASP.NET MVC 大牛之路]01 - 开篇

    匆匆2014,转眼就到末尾了.在这一年,你还有哪事情些想做而没有做? 2014年在我身上发生了两件意义重大的事,一是正月初一宝宝出生,我升级成为了爸爸:二是进入了一家创业公司,成为了技术负责人. 去年 ...

  5. [ASP.NET MVC 大牛之路]02 - C#高级知识点概要(1) - 委托和事件

    在ASP.NET MVC 小牛之路系列中,前面用了一篇文章提了一下C#的一些知识点.照此,ASP.NET MVC 大牛之路系列也先给大家普及一下C#.NET中的高级知识点.每个知识点不太会过于详细,但 ...

  6. [ASP.NET MVC 大牛之路]03 - C#高级知识点概要(2) - 线程和并发

    本人博客已转移至:http://www.exblr.com/liam  我也想过跳过C#高级知识点概要直接讲MVC,但经过前思后想,还是觉得有必要讲的.我希望通过自己的经验给大家一些指引,带着大家一起 ...

  7. [ASP.NET 大牛之路]02 - C#高级知识点概要(1) - 委托和事件

    在ASP.NET MVC 小牛之路系列中,前面用了一篇文章提了一下C#的一些知识点.照此,ASP.NET MVC 大牛之路系列也先给大家普及一下C#.NET中的高级知识点.每个知识点不太会过于详细,但 ...

  8. [ASP.Net] 转 > ASP.NET MVC 大牛之路

    URL: http://www.cnblogs.com/willick/ [ASP.NET MVC 大牛之路]01 - 开篇 [ASP.NET MVC 大牛之路]02 - C#高级知识点概要(1) - ...

  9. [.NET大牛之路 007] 详解 .NET 程序集

    .NET大牛之路 • 王亮@精致码农 • 2021.07.13 上一篇我们介绍了 Roslyn 编译器,我们知道,我们编写的 C#/VB 代码经过 Roslyn 编译器编译后会生成程序集文件.按照之前 ...

随机推荐

  1. 目标检测coco数据集点滴介绍

    目标检测coco数据集点滴介绍 1.  COCO数据集介绍 MS COCO 是google 开源的大型数据集, 分为目标检测.分割.关键点检测三大任务, 数据集主要由图片和json 标签文件组成. c ...

  2. NVIDIA GPU上的直接线性求解器

    NVIDIA GPU上的直接线性求解器 NVIDIA cuSOLVER库提供了密集且稀疏的直接线性求解器和本征求解器的集合,它们为计算机视觉,CFD,计算化学和线性优化应用程序提供了显着的加速.cuS ...

  3. DeepLabV3+语义分割实战

    DeepLabV3+语义分割实战 语义分割是计算机视觉的一项重要任务,本文使用Jittor框架实现了DeepLabV3+语义分割模型. DeepLabV3+论文:https://arxiv.org/p ...

  4. BEP 7:CUDA外部内存管理插件(下)

    BEP 7:CUDA外部内存管理插件(下) Numba依赖 向库中添加EMM插件的实现自然会使Numba成为库的依赖项,而以前可能没有.为了使依赖关系可选,如果需要的话,可以有条件地实例化并注册EMM ...

  5. 扩展LLVM:添加指令、内部函数、类型等

    扩展LLVM:添加指令.内部函数.类型等 Introduction and Warning Adding a new intrinsic function Adding a new instructi ...

  6. Git_远程仓库fork操作

    fork操作:当选择 fork,相当于自己有了一份原项目的拷贝,当然这个拷贝只是针对当时的项目文件,如果后续原项目文件发生改变,你必须通过其他的方式去同步. 使用场景:一般来说,不需要使用 fork ...

  7. 尚硅谷Java——宋红康笔记【day1-day5】

    day1 注释 1.java规范的三种注释方式: 单行注释 多行注释 文档注释(java特有) 2. 单行注释和多行注释的作用: ① 对所写的程序进行解释说明,增强可读性.方便自己,方便别人 ② 调试 ...

  8. centos7 安装 bbr加速

    脚本安装 1 查看内核版本 # [root@os]# uname -a Linux os 3.10.0-1127.13.1.el7.x86_64 x86_64 x86_64 x86_64 GNU/Li ...

  9. 如何下载安装Python

     github博客传送门 csdn博客传送门 如何下载安装python 第一步: 在python的官网下载python版本,需要下载对应版本(在计算机-属性中查看自己是32位操作系统还是64位操作系统 ...

  10. 在Centos7下安装RabbitMQ

    1.背景 不用多说,这东西好用! 2.安装 步骤一:下载安装包 链接:https://pan.baidu.com/s/1PIYI60wX6L7BtVyVft-vSA 提取码:1234 复制这段内容后打 ...