[.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 编译器编译后会生成程序集文件.按照之前 ...
随机推荐
- Redis(二) 数据类型操作指令以及对应的RedisTemplate方法
1.Redis key值操作以及RedisTemplate对应的API 本文默认使用RedisTemplate,关于RedisTemplate和StringRedisTemplate的区别如下 Red ...
- 使用Nucleus SE实时操作系统
使用Nucleus SE实时操作系统 Using the Nucleus SE real-time operating system 到目前为止,在本系列文章中,我们详细介绍了Nucleus SE提供 ...
- Centos7 安装 Keepalived
目标: Keeplaived 简单模拟测试一下Nginx 故障切换前言:C7 默认的 1.3.5 似乎有点问题,改装 keepalived-2.0.7 1:安装 Nginx 和确认 (略)2:安装配置 ...
- Centos flock 防止脚本重复运行
如果crontab设定任务每分钟执行一次,但执行的任务需要花费5分钟,这时系统会再执行导致两个相同的任务在执行.发生这种情况下可能会出现一些并发问题,严重时会导致出现脏数据性能瓶颈等恶性循环.为了防止 ...
- centos7 配置国内yum源
配置清华大学镜像仓库 URL:https://mirrors.cnnic.cn/ CentOS 镜像使用帮助 https://mirrors.cnnic.cn/help/centos/ 建议先备份 C ...
- UF_UI 界面相关
Open C uc1600uc1601uc1603 uc1605uc1607uc1608uc1609uc1613 获取用户输入的字符串uc1615uc1616uc1617uc1618uc163 ...
- 面试热点|理解TCP/IP传输层拥塞控制算法
0x00.前言 通过本文你将了解到以下内容: 拥塞控制概念以及其背景 流量控制和拥塞控制的区别与联系 拥塞控制主要过程详解 伙伴们认真学习一下,让offer来得更猛烈些吧! 0x01.TCP/IP协议 ...
- docker 自定义部署Springboot——依赖与代码分离部署
第一步:执行mvn package 命令打出jar包,然后解压jar包,把lib放到服务器合适的目录下面 第二步:打出不带jar包的SpringBoot工程 首先配置pom.xml文件 <bui ...
- 数据库创建好之后如何创建scott用户
SQL> conn / as sysdba Connected. SQL> @%oracle_home%\rdbms\admin\utlsampl.sql 建立完成以后会自动退出sqlpl ...
- 20201123 实验二《Python程序设计》实验报告
20201123 2020-2021-2 <Python程序设计>实验报告课程:<Python程序设计>班级:2011姓名:晏鹏捷学号:20201123实验教师:王志强实验日期 ...