.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年照样排名第二,这期间微软也是经历了起起伏伏,作为微软最重要的一个开发者平台产品一样经历了起伏,就像微软的股票一样。

从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 20周年软件趋势随想_第1张图片

其实在 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 20周年软件趋势随想_第2张图片

现在 .NET 也是 OSS ,并且更新像任何其他 OSS 一样频繁发布。然而,在实际操作中,了解版本升级周期更容易使用,因此时间表变得清晰, 作为一家企业公司,如果 .NET 的未来计划被披露,那么就可以放心地投资 .NET 技术。从使用长期支持版本的同一版本的想法出发,很容易转向敏捷流程和思维方式,这些流程和思维将尽可能短的周期更新到新版本,而从安全应用程序开发的角度来看,现在最需要考虑的就是解决漏洞。

开源社区也有很多缺陷是因为工程运作上的问题,微软具有商业公司血统的管理科学更多融合到 .NET 开源项目中去, 将来 开源、商业、学术将结合得更加完美。

.NET 20周年软件趋势随想_第3张图片

.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)