[.NET大牛之路 003] .NET 的发展简史
如果你热爱某产品,你一定想了解它的历史。今天我们简单回顾一下 .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 的发展简史的更多相关文章
- [.NET大牛之路 001] .NET 其名
本文来自『.NET大牛之路』星球的分享 大家好,这是 .NET 大牛这路的第 1 篇文章.大家期待已久的课程今天正式开始了.既然我们整个体系课程都将围绕 .NET 展开,那我们今天就先聊一聊 .NET ...
- [.NET大牛之路 006] 了解 Roslyn 编译器
.NET大牛之路 • 王亮@精致码农 • 2021.07.09 维基百科对编译器的解释是:编译器是一种程序,它将某种编程语言编写的源代码(原始语言)转换成另一种编程语言(目标语言).编译是从源代码(通 ...
- [.NET大牛之路 005] .NET 的执行模型
.NET大牛之路 • 王亮@精致码农 • 2021.07.06 前面我们介绍 .NET 历史时讲过,微软基于 .NET Framework 重新设计并创造了跨平台的 .NET Core,目前已经发展到 ...
- [ASP.NET MVC 大牛之路]01 - 开篇
匆匆2014,转眼就到末尾了.在这一年,你还有哪事情些想做而没有做? 2014年在我身上发生了两件意义重大的事,一是正月初一宝宝出生,我升级成为了爸爸:二是进入了一家创业公司,成为了技术负责人. 去年 ...
- [ASP.NET MVC 大牛之路]02 - C#高级知识点概要(1) - 委托和事件
在ASP.NET MVC 小牛之路系列中,前面用了一篇文章提了一下C#的一些知识点.照此,ASP.NET MVC 大牛之路系列也先给大家普及一下C#.NET中的高级知识点.每个知识点不太会过于详细,但 ...
- [ASP.NET MVC 大牛之路]03 - C#高级知识点概要(2) - 线程和并发
本人博客已转移至:http://www.exblr.com/liam 我也想过跳过C#高级知识点概要直接讲MVC,但经过前思后想,还是觉得有必要讲的.我希望通过自己的经验给大家一些指引,带着大家一起 ...
- [ASP.NET 大牛之路]02 - C#高级知识点概要(1) - 委托和事件
在ASP.NET MVC 小牛之路系列中,前面用了一篇文章提了一下C#的一些知识点.照此,ASP.NET MVC 大牛之路系列也先给大家普及一下C#.NET中的高级知识点.每个知识点不太会过于详细,但 ...
- [ASP.Net] 转 > ASP.NET MVC 大牛之路
URL: http://www.cnblogs.com/willick/ [ASP.NET MVC 大牛之路]01 - 开篇 [ASP.NET MVC 大牛之路]02 - C#高级知识点概要(1) - ...
- [.NET大牛之路 007] 详解 .NET 程序集
.NET大牛之路 • 王亮@精致码农 • 2021.07.13 上一篇我们介绍了 Roslyn 编译器,我们知道,我们编写的 C#/VB 代码经过 Roslyn 编译器编译后会生成程序集文件.按照之前 ...
随机推荐
- springboot中引入zookeeper,生成 配置类
1.application.properties zookeeper.address=@mvn.zookeeper.address@ zookeeper.namespace=@mvn.zookeepe ...
- 6, java数据结构和算法: 栈的应用, 逆波兰计算器, 中缀表达式--> 后缀表达式
直接上代码: public class PolandCalculator { //栈的应用:波兰计算器: 即: 输入一个字符串,来计算结果, 比如 1+((2+3)×4)-5 结果为16 public ...
- Java Shutdown Hook 场景使用和源码分析
我是陈皮,一个在互联网 Coding 的 ITer,微信搜索「陈皮的JavaLib」第一时间阅读最新文章,回复[资料],即可获得我精心整理的技术资料,电子书籍,一线大厂面试资料和优秀简历模板. 背景 ...
- 【NX二次开发】Block UI 微定位
属性说明 属性 类型 描述 常规 BlockID String 控件ID Enable Logical 是否可操作 Group ...
- 孟老板 ListAdapter封装, 告别Adapter代码 (四)
BaseAdapter系列 ListAdapter封装, 告别Adapter代码 (一) ListAdapter封装, 告别Adapter代码 (二) ListAdapter封装, 告别Adapter ...
- 「10.29」数列(exgxd)·数对(线段树优化DP)·最小距离(最短路,树上直径思想)
好久没碰到这么友好乱搞的题了.... A. 数列 考察的是exgcd的相关知识,最后的答案直接O(1)求即可 B. 数对 本来以为是原题,然后仔细看了看发现不是,发现不会只好乱搞骗分了 事实上直接按$ ...
- 【题解】[LuoguP3503]「BZOJ2086」[POI2010] Blocks
题目描述 给出N个正整数a[1..N],再给出一个正整数k,现在可以进行如下操作:每次选择一个大于k的正整数a[i],将a[i]减去1,选择a[i-1]或a[i+1]中的一个加上1.经过一定次数的操作 ...
- Hive和Spark分区策略
1.概述 离线数据处理生态系统包含许多关键任务,最大限度的提高数据管道基础设施的稳定性和效率是至关重要的.这边博客将分享Hive和Spark分区的各种策略,以最大限度的提高数据工程生态系统的稳定性和效 ...
- Linux 安装及管理程序
Linux 安装及管理程序 目录 一.Linux应用程序基础 1.1.应用程序与系统命令的关系 1.2.典型应用程序的目录结构 1.2.常见的软件包封装类型 二.RPM包管理工具 2.1.RPM软件包 ...
- 一次鞭辟入里的 Log4j2 异步日志输出阻塞问题的定位
一次鞭辟入里的 Log4j2 日志输出阻塞问题的定位 问题现象 线上某个应用的某个实例突然出现某些次请求服务响应极慢的情况,有几次请求超过 60s 才返回,并且通过日志发现,服务线程并没有做什么很重的 ...