.NET 20周年软件趋势随想
从2000年微软启动.NET战略时,我还是一位大学生,当年著名的黑客Miguel de Icaza , Miguel 为了寻找GNOME项目开发框架经过充分的调研启动了一个志存高远的项目:Mono,一个Microsoft .NET Framework的自由GNU/Linux实现,我在国外的Linux论坛上 循着Miguel的指引踏上了.net开发之路, 我开始接触.NET Framework的时候还是beta阶段,2002年2月13日微软发布了.NET 1.0 , 我也毕业工作半年时间,开始使用ASP.NET 1.0开发项目, 今天我已经伴随.NET 发展20年,在此.NET 20年之际有感而发写下这些感想。
在这20年间发生了巨大的变化,微软一直能够与时俱进,2000年的市值第二,2022年照样排名第二,这期间微软也是经历了起起伏伏,作为微软最重要的一个开发者平台产品一样经历了起伏,就像微软的股票一样:
这种图也反应了.NET的命运,从2000年到2014年微软让.NET Framework作为Windows的一部分,微软也站在开源的对立面,最经典的就是Steve Ballmer ,他当初曾将“开源”称作微软知识产权毒瘤。2014年之后微软换了CEO,全面拥抱Linux,.NET Core开源,收购Xamarin,构建起了全新的生态,微软的重心转移到了云,微软算是抓住了云计算时代,2017年微软市值已经增长到了5000亿美金,2022年已经是2.3万亿美金。从2014年开始的演变,支持多平台,并提供给各种操作系统,如Linux,Mac,iOS和Android等。 它涵盖广泛的应用程序,从桌面、Web 应用程序、云、移动、游戏、IoT 到 AI。
Windows 这个操作系统, 主要是以桌面为中心的用途, 从某种意义上说, 是为了提高特定环境下的开发效率而开始的,在.NET第 20 年终于达到了"所有应用的统一平台"的高度。 虽然MAUI(不是GA)存在一些滞后,今年第二季度也会GA,随着.NET 6的发布,One.NET 愿景已经实现。
其实在 NET Framework发布之前,微软从 COM 时代起就一直梦想着多平台。 微软可以算是一家坚韧不拔的公司, 经过20年的不懈努力,反复试验和试错,这其中也有不少是错误的,甚至现在可以感受到社会上的很多的软黑曾经是软粉,也许包容不下微软的坚韧不拔。 经过各种反思和20年的时光, 现在最重要的是开发者, 以开放为目标, 经过深思熟虑,回归服务好开发者。
.NET Framework、. NET Core 和 Xamarin 的统一,.NET 6完成了统一 .NET愿景,统一了 SDK、类库和工具链,这些工具链以前是不同的,支持跨平台本机和 Web UI。 愿景还包括云原生,Microsoft 计划为所有现代工作负载提供最佳解决方案。.NET 为所有开发人员提供了更多的选择。开发者使用.NET 上的工具和平台,无论他们选择什么,都很容易实现他们想要的。.NET 6 统一了类库和 SDK。 除了发布新的 C# 10 和 F#6 外,它还支持 Apple M1 处理器。 此外, 与 NET 5 不同,它还提供长期支持 (LTS),提供三年支持。
NET在每次升级时,性能都会成为焦点。比如 NET 6的 ASP.NET Core 网络应用程序比Node.js快10倍, gRpc 的.NET实现是性能最好的,超过了C++的实现。在 .NET 6 中,还专注于加快 Web 应用程序性能,降低资源的占用,换句话说就是对云原生的投资。
现在.NET 也是 OSS,并且更新像任何其他 OSS 一样频繁发布。 然而,在实际操作中,了解版本升级周期更容易使用,因此时间表变得清晰, 作为一家企业公司,如果.NET 的未来计划被披露,那么就可以放心地投资.NET技术。从使用长期支持版本的同一版本的想法出发,很容易转向敏捷流程和思维方式,这些流程和思维将尽可能短的周期更新到新版本,而从安全应用程序开发的角度来看,现在最需要考虑的就是解决漏洞。
开源社区也有很多缺陷是因为工程运作上的问题,微软具有商业公司血统的管理科学更多融合到.NET 开源项目中去, 将来 开源、商业、学术将结合得更加完美。
.NET 程序员的现状是:"在被迫开发各种应用的情况下,我们必须选择针对性工具和框架,当前系统正在向云转移,基础设施和服务也在发生变化,开发现场变得越来越复杂。. NET 开发人员 可以使用称为宇宙第一的 Visual Studio 集成开发环境,可在各种目标上部署您喜爱的应用,从而保持高工作效率。
NET 6 还改进了对 "ASP.NET Core Blazor"的支持,以方便 C# 开发人员进行 Web 前端开发。Web 应用程序开发在服务器端和前端使用不同的语言和框架。 前端 Web UI 基于基本的 JavaScript,通常使用框架(如Angular、React 和 Vue)进行开发。 ASP.NET Core Blazor 的职责是使能够以 C# 等语言开发前端,而无需了解 JavaScript 框架 。
ASP.NET Core Blazor以大多数现代网络浏览器支持的WebAssembly 为技术基础。 因此,在 C# 中编写的代码以本机性能作为 WebAssembly 运行。 根据创建方法,您可以使其脱机运行,也可以将其作为 PWA(主动 Web 应用)安装在计算机上,并像本机应用程序一样运行。 这非常像以前的 Silverlight 或 Flash 那样在插件上运行,不一样的地方是Blazor Wasm使用 Web 标准 WebAssembly。
ASP.NET Core Blazor可以将 DLL 下载到 Web 浏览器,并在 WebAssembly上运行。 由于它完全在客户端运行,因此无需服务器组件即可脱机运行,但下载大小较大。 相反,它提供了一种在 Blazor 服务器上运行程序并使用称为 SignalR 的技术进行渲染的方法。 这需要持久连接,UI 延迟高,但启动速度快,并且具有在较旧的 Web 浏览器和瘦客户端上可用的优点。
最后号召大家一起来参与.NET 20周年庆活动,可以使用下列模板制作一个微信视频,发到自己的视频号里,加入活动“ dotnet20周年”:
你好,我是xxx , 我是 xxxx年开始接触.NET的,我的第一个项目是xxxx , 因为xxxx 原因我选择了.NET ,新一代的.NET 我最喜欢它的XXX功能,希望.NET 在中国有Xxx的发展!.NET 20周年生日快乐 。
相关参考:
- .NET官方网站:https://dotnet.microsoft.com/zh-cn/
.NET 20周年软件趋势随想的更多相关文章
- Visual Studio 20周年软件趋势随想
从2002年开始,.net让开发人员能快速构建和部署应用程序,便捷的开发windows和web服务器应用,同时著名的hacker Miguel de Icaza ,Miguel 为了GNOME项目启动 ...
- Visual Studio 20周年,我和VS不得不说的故事(内含福利)
Visual Studio 2017正式版已如期发布(点击这里查看发布全记录)!自去年 11 月正式宣布 Visual Studio 项目之后,微软终于正式推出了“宇宙最强集成开发环境(IDE)”的最 ...
- Visual Studio 20周年,我和VS不得不说的故事
Visual Studio 2017正式版已如期发布(点击这里查看发布全记录)!自去年 11 月正式宣布 Visual Studio 项目之后,微软终于正式推出了“宇宙最强集成开发环境(IDE)”的最 ...
- 开源编解码项目FFmpeg迎来20周年生日 凭一己之力养活全球无数播放器!
近日,开源编解码库项目FFmpeg迎来20周年生日. 2000.12.20-2020.12.20 可能很多人对于FFmpeg不是特别了解,那么以下几个名字是否大家或多或少都用过呢? 暴风影音.PotP ...
- Jetty 9.3庆祝20周年生日快乐,并添加HTTP/2支持
本文来源于我在InfoQ中文站翻译的文章,原文地址是:http://www.infoq.com/cn/news/2015/06/Building-Distributed-Systems 今年6月12日 ...
- XML 标准诞生 20 周年:这个世界,它无处不在
可扩展标记语言(XML)于 1998 年 2 月 10 日成为 W3C 的推荐标准.昨天,2018 年 2 月 10 日恰好是 W3C 推出的 XML 标准发布 20 周年纪念日.可点此查看原始的新闻 ...
- .NET 诞生已20周年,您的 .NET 技能是否还停留在2010 年?
20年来,我们见证了超过上千万.NET 开发员,当前有600万.NET 开发者正在使用.NET技术构建各类解决方案.今天,IT市场对.NET 开发人员的需求达到了前所未有的程度,特别是在中国,各大公司 ...
- 从Visual Studio看微软20年技术变迁
前言 这个世界从来都不缺变革,从工业革命到晶体管和集成电路,从生活电器到物联网,从简陋人机到精致体验,我们在享受技术带来的便捷的同时,也在为复杂设计而带来的挑战和生产力下降而痛并快乐着.而迫切期盼的, ...
- 软件产品案例分析--K米
软件产品案例分析--K米 第一部分 调研,评测 评测 个人第一次上手体验 使用的第一款点歌软件,以为就是个遥控而已,使用后发现功能还挺多,能点挺久.觉得很方便,不用挤成一堆点歌了.K米的脸蛋(UI)好 ...
随机推荐
- 【剑指Offer】滑动窗口的最大值 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 解题方法 暴力求解 单调递减队列 日期 题目地址:https://www ...
- KMM
目录 概 主要内容 Huang J., Smola A., Gretton A., Borgwardt K. & Scholkopf B. Correcting Sample Selectio ...
- What Makes for Good Views for Contrastive Learning
目录 概 前 InfoMin Sweet Spot 空间距离 Color Spaces Frequency Separation 构建 novel views 无监督 半监督 Tian Y., Sun ...
- Entropy Search for Information-Efficient Global Optimization
目录 概 主要内容 的估计 的估计 Hennig P, Schuler C J. Entropy search for information-efficient global optimizatio ...
- 市场上十块钱买一个随身WiFi使用技术手段,插卡流量不限速不限量?
全部章节 >>>> 文章目录 一.前言 二.进入安卓界面 1.进入网页控制台 2.先开启adb 3.CMD连接设备 4.对界面进行控制 三.刷入clnc脚本实现免流 1.ADB ...
- SpringCloud使用汇总Config
1.Config Server对外提供的资源格式 配置中心的HTTP服务有5种资源格式: /{application}/{profile}[/{label}] /{application}-{prof ...
- Ranger-Kylin插件安装
Ranger-Kylin插件安装, 从Ranger1.1.0版本开始支持Ranger Kylin插件, 从Kylin2.3.0版本开始支持Ranger Kylin插件的权限控制. 1.获取安装包 sc ...
- C# .net 环境下使用rabbitmq消息队列
消息队列的地位越来越重要,几乎是面试的必问问题了,不会使用几种消息队列都显得尴尬,正好本文使用C#来带你认识rabbitmq消息队列 首先,我们要安装rabbitmq,当然,如果有现成的,也可以使用, ...
- 『无为则无心』Python函数 — 31、命名空间(namespace)
目录 1.什么是命名空间 2.三种命名空间 3.命名空间查找顺序 4.命名空间的生命周期 5.如何获取当前的命名空间 1.什么是命名空间 命名空间指的是变量存储的位置,每一个变量都需要存储到指定的命名 ...
- Java的jar包构建成docker镜像并运行
结构如下 把jar和Dockerfile放到一个文件,不在一个文件下会报错文件找不到 创建一个构建文件 buildimage.sh vi /home/hanby/buildimage.sh echo ...