如果你热爱某产品,你一定想了解它的历史。今天我们简单回顾一下 .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. 同一个Controller里的同一个Service实例,在当前的Controller里的不同方法中状态不一致

    直接上代码如下: @Controller@RequestMapping("/views/information")public class PubContentController ...

  2. 什么是 Web 服务器(server)

    首先我们来了解什么是服务器(server) Web服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,可以向浏览器等Web客户端提供文档,[1]也可以放置网站文件,让全世界浏览:可以放置数 ...

  3. 怎样训练YOLOv3

    怎样训练YOLOv3 Training YOLOv3 : Deep Learning based Custom Object Detector 本文将在一些公开的雪人图片和视频上分享训练过程.有助于训 ...

  4. B-Tree插入和删除的Java实现

    B-Tree插入和删除的Java实现 一.一颗非空m阶B-Tree的性质 除根结点以外的每个结点的孩子引用最多存在m个,关键码最多存在m - 1个:除根结点以外的每个结点的孩子引用至少存在⌈m / 2 ...

  5. 给元素设置overflow:hidden,pc端正常,但移动端依然可以滑动

    给设置overflow:hidden的元素设置position:fixed即可解决

  6. bzoj2839 集合计数(容斥+组合)

    集合计数 内存限制:128 MiB 时间限制:1000 ms 标准输入输出     题目描述 一个有N个元素的集合有2^N个不同子集(包含空集),现在要在这2^N个集合中取出若干集合(至少一个),使得 ...

  7. zookeeper使用教程

    Zookeeper 1.       Zookeeper概述 1.1 概述 Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目. 1.2 特点 1)Zookeeper: ...

  8. Windows批处理文件编写宝典

    原贴:批处理新手入门导读 现在的教程五花八门,又多又杂.如何阅读,从哪里阅读,这些问题对新手来说,都比较茫然. 这篇文章的目的就是帮助新手理清学习顺序,快速入门.进步 1.如果你从来没有接触甚至没有听 ...

  9. Java并发之Semaphore源码解析(一)

    Semaphore 前情提要:在学习本章前,需要先了解笔者先前讲解过的ReentrantLock源码解析,ReentrantLock源码解析里介绍的方法有很多是本章的铺垫.下面,我们进入本章正题Sem ...

  10. Unity 消消乐开发思路

    以简单的方式讲述游戏开发思路,暂时没有实践,如有错误,欢迎各位大佬指错 关卡数据保存方式 数据保存我选用json,可读性强,解析快 消消乐物体处理方式 消消乐物体我将以预制体的方式使用(把物品拖到As ...