[.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 编译器编译后会生成程序集文件.按照之前 ...
随机推荐
- Camera HDR Algorithms
Camera HDR Algorithms HDRI是High-Dynamic Range(HDR)image的缩写,也就是高动态范围图像.它就是为了解决更好的存储高动态范围图像这个问题而发明出来的. ...
- ARM系列处理器和架构
从一只ARM到另一只ARM! ARM处理器和架构 当前可用的处理器 ARM1 ARM2 ARM3 ARM4和5 ARM6 ARM7 ARM8 强壮有力的ARM ARM9 ARM10 ARM架构 v1 ...
- 性能分析之CPU分析-从CPU调用高到具体代码行(JAVA)
通常情况下,性能报告中只说CPU使用率高的时候,并不能帮助定位问题.因为CPU高会有多种不同的情况.CPU有五种状态(us sy id wa st), 在vmstat中能显示出来,这个想必很多人都 ...
- frp实现NAS外网访问
开始 入手了NAS之后就看是漫漫的折腾内网穿透的不归路.用的最多最简单的是下面三种 QC:群晖自带的,速度在100kb左右,能不能连上有时候都是运气,极其不稳定. DDNS:最推荐的方式.上下行都取决 ...
- 【NX二次开发】三点画圆,三角形外心,已知三点求圆心
已知P1.P2.P3,求点O 算法:三点不在一条直线上时,通过连接任意两点,作中垂线.任意两条中垂线的交点是圆心.
- 面试官:一个TCP连接可以发多少个HTTP请求?
曾经有这么一道面试题:从 URL 在浏览器被被输入到页面展现的过程中发生了什么? 相信大多数准备过的同学都能回答出来,但是如果继续问:收到的 HTML 如果包含几十个图片标签,这些图片是以什么方式.什 ...
- python用random模块模拟抽奖逻辑(print修改end参数使打印结果不分行)
import random #引入random模块,运用random函数list_one=["10081","10082","10083" ...
- FastApi持续更新
FastAPI 框架,高性能,易于学习,高效编码,生产可用 官方文档: https://fastapi.tiangolo.com FastAPI 是一个用于构建 API 的现代.快速(高性能)的 ...
- SuperEdge 云边隧道新特性:从云端SSH运维边缘节点
背景 在边缘集群的场景下边缘节点分布在不同的区域,且边缘节点和云端之间是单向网络,边缘节点可以访问云端节点,云端节点无法直接访问边缘节点,给边缘节点的运维带来很大不便,如果可以从云端SSH登录到边缘节 ...
- 浅谈最长上升子序列(O(n*logn)算法)
今天GM讲了最长上升子序列的logn*n算法,但没讲思路... 我看了篇博客,发现-- 说的有道理!!! 首先,举例子: a[7]={1,2,4,3,6,7,5}(假设以1开头) 很明显,LIS=5: ...