1048d5738d3e9941f02ea4964de97127.gif

作者 | Bryan Costanich

译者 | 弯月

出品 | CSDN(ID:CSDNnews)

我曾使用 .NET构建过多个流行平台,经常有人问我.NET未来的发展,以及它是不是一个值得投资的生态系统。这个问题在旧金山湾区这个高科技盛行的人群中特别受欢迎,科技圈流行的技术就像季节变化一样来来往往,但 .NET 始终坚若磐石,它不仅是一个非常受欢迎的平台,而且就我看来,它是一个生产力极高、使用轻松且易于访问的平台。

当然,我们还有很多其他优秀的编程语言,比如Rust。还有很多其他优秀的平台,比如Flutter。但论生产力和优雅,无人能及.NET。

如今的.NET已与往昔大有不同,在StackOverflow的开发者调查报告中,.NET连续3年荣获最受喜爱的平台。事实上,.NET Framework与新的.NET Core在排行榜中一骑绝尘:

7cce327f8b16ef57395c99b7659f0591.png

为了弄清楚开发人员为何如此钟爱.NET,我们需要从整体上审视.NET的开发体验。

10fe6f91adeee4cc9e30954684e84b58.png

一流的工具

首先是工具,Windows版和Mac版的Visual Studio为.NET提供了一流的支持,甚至连VS Code也为.NET提供了有限的支持。二者是目前最流行的IDE,事实上VS Code是IDE的绝对统治者,使用人数是第二名的两倍多:

1cc3ac7eb60c6362b1d05cd1d311dc98.png

许多人认为JetBrains Rider是现有的最佳IDE,但在.NET支持方面仍不足以与Visual Studio媲美,后者做了大量改进,创造了最好的.NET工具体验。

该工具的底层平台非常强大,不仅能够轻松构建和部署系统,而且首次运行也非常方便,开发人员能够在几分钟内完成从安装平台到部署应用程序的所有工作。事实上,你不需要与任何工具链、make文件或平台版本控制打交道,就可以轻松地从零开始构建.NET应用程序,直到完成部署。

6876b8ed81c927445f3dffdefdde418b.png

可在各大主流平台运行

就像上个世纪90年代Java的梦想一样,.NET可以在各大主流平台运行,而且拥有自定义的集成工具,可以享受大多数平台的优势。虽然最初.NET只能在Windows上运行,但如今它可以在Windows、macOS、iOS、Android、Linux、大型机甚至微控制器上运行。此外,.NET还可以在云上运行,Azure、AWS和Google Cloud都有内置的.NET应用程序支持。

ef33d3a14e8e17afaa9323e0b8b877d5.png

一系列优雅的语言可供选择

通用语言运行时(Common-Language-Runtime,简称CLR)是.NET的一个核心特性,我们可以使用25种语言编写.NET应用程序,包括C#、F#以及 VB.NET。

4d29b94e55417c831b129eca4aa2e440.png

庞大的社区和经验丰富的程序员

根据我们自己的研究,世界上近一半的活跃开发人员都知道.NET,甚至在从事.NET开发。

.NET自诞生以来,开发者生态系统每年都在增长。因此,如果你在招聘开发人员时遇到困难,则可以放心,.NET拥有最大的开发人才库之一。

.NET语言本身也在快速增长。最新的TIOBE编程语言指数显示,在过去一年中,C#的人气指数涨幅最大,有望取代C++进入前三名。而C#与VB.NET联手,就可以向第一名看齐。

77d3e0f1bdff68d16fcdd064eec8b00e.png

技术美感

2016年,.NET Core重新改造,大量功能被删减,只保留了骨架,用户可以通过一种现代、超轻量级、按需的方式,从其现代化的包生态系统Nuget中组合出最低限度的平台库。此外,.NET还放弃了传统的Win32平台连接,并融合了Mono和Xamarin团队为运行时和工具带来的创新,为真正的跨平台体验铺平了道路。

.NET Core整体的性能都得到了提升,微软打破了传统的 .NET Framework运行时限制,全面实现了一连串的性能改进。

说到性能,在Xamarin的创新Ahead-of-Time编译器的助力下,开发人员在构建应用程序时,就可以编译出根据芯片架构进行优化的汇编代码,从而在享受优秀内存管理功能的同时,实现原生C/C++级别的性能。

这种内存管理方法对可靠性和安全性也有好处。从可靠性的角度来看,这种方法消除了在非托管应用程序(例如用C/C++编写的应用程序)中常见的内存泄漏导致的不稳定和崩溃。从安全的角度来看,利用内存管理平台实现的内存安全消除了由于内存使用导致的一系列安全问题,Google的数据显示,这些问题约占非托管安全漏洞的2/3。

0e2d29c786ebb2ade46a8e5571404a8d.png

百分百开源

微软的.NET百分百开源,而且可以免费使用,包括类库、运行时、编译器、语言和应用程序框架。你可以通过GitHub上.NET的代码库获得所有源代码(地址:https://github.com/dotnet)。

2d5adf759b190194792912053cb314c3.png

一流的生态系统

除了微软的投资外,.NET第三方的生态系统规模也十分庞大,拥有大量高质量的库、插件、工具和框架。

下面是一些非常了不起的第三方集成案例:

  • Uno Platform与Avalonia:两个成熟的MAUI替代品,二者提供了非常优雅、令人愉悦、高性能的跨平台UX框架。

  • Meadow:该框架由我们公司的Wilderness Labs创建,能够帮助你在 .NET 中构建在微控制器上运行的物联网解决方案。

  • Telerik:可插拔UI控件的黄金标准,几乎可在任何平台上使用。

还有无数的咨询公司、解决方案提供商和 .NET商店获得了认证,他们都有资格构建.NET解决方案。

7115a40834c42cbc01e372c5b143fb62.png

深受企业信赖

众所周知,.NET是企业的中流砥柱,虽然微软没有公开 .NET的使用数据,但 95%的世界500强企业都在使用Azure,而且据我所知,80%的世界500强企业都在使用.NET,相信实际的数字会更高。

.NET特别适合构建核心任务应用程序,.NET不仅可靠,而且其运行时久经考验,非常易于使用。就连美国国防部也广泛使用了.NET。

5e3baf9ed90d4b94c6949751e27119c0.png

.NET并不完美

虽然.NET有很多优点,但它并不完美。虽然微软在.NET上付出了巨大努力,但它仍有很多缺点。其中的大部分问题都要归结于微软内部工作重心的转变,以及领导团队很难跟上最前沿的开发人员文化。

举一个例子, MAUI是微软的旗舰跨平台UI库,它是Xamarin的续作,还结合了以前的Windows UI框架WPF,但由于长期资金不足,如今被Flutter迎面赶超成为了当今最好的跨平台UX平台。特别是,MAUI至今仍不支持Linux。

而论及工作重心的转变,VS Code对.NET的有限支持就是由此造成的。虽然你可以在VS Code中进行基本的开发,但它缺少一个适当的插件来处理 .NET的多项目解决方案格式,而这是支持更复杂项目所必需的。出现这个问题是因为微软习惯性地选择了让.NET开发人员使用Visual Studio,从而攫取更高利润,而不是让开发人员使用免费的VS Code。话虽如此,很明显微软内部的工作重心已变为提供更好的跨平台工具支持,而且我听说他们正在开发完整的VS Code解决方案。

ba5db70c44b535375818c11f50815773.png

.NET 是业界最佳平台

即便有一些小缺点, .NET仍然是世界上最高效和最受信任的开发人员平台生态系统。若论更完整、更开放、更高效的平台,.NET的实力无可企及。

种种迹象表明,在可预见的未来,.NET将继续保持这种优势,因为该语言会不断发展,其团队和生态系统也会继续创新。因此,大家都应该尝试一下.NET。

*本文由CSDN翻译,未经授权,禁止转载。

原文链接:https://medium.com/@bryancostanich/its-good-to-bet-on-net-c22853f501c7

Logo

20年前,《新程序员》创刊时,我们的心愿是全面关注程序员成长,中国将拥有新一代世界级的程序员。20年后的今天,我们有了新的使命:助力中国IT技术人成长,成就一亿技术人!

更多推荐