【ArchSummit】如何通过AIOps推动可量化的业务价值增长和效率提升?>>> 了解详情
写点什么

押注.NET 是件好事

  • 2022-07-12
  • 本文字数:2729 字

    阅读完需:约 9 分钟

押注.NET是件好事

作为一个在.NET 上构建了不止一个流行平台的人,我经常被问到它的相关性,以及它是不是一个值得投入的生态系统。这个问题在旧金山湾区的技术世界里尤为流行,这里的技术潮流就像四季一样变更交替,但.NET 始终是一个坚定、持续流行的平台。而在我看来,它还是最具整体生产力、最令人愉快和最易访问的平台。


这个世界上确实还有其他很棒的编程语言,比如 Rust;还有其他很棒的 App UX 平台,比如 Flutter。但说到全面的生产力和优雅,可能没有能与.NET 一较高下的了。


今天的.NET 已经不是老一辈的.NET 了,在一年一度的 StackOverflow 开发者调查中,它连续 3 年成为最受喜爱的平台,这是有原因的。事实上,.NET Framework 和新.NET Core 的结合远远超过了其他所有东西。甚至可以说,在这些问卷调查的所有框架当中,.NET 体现了最强烈的爱与恐惧的正面情绪。



为了理解为什么开发者如此热爱.NET,让我们全面考察一下.NET 的开发者体验。


一流的工具


首先是工具。Windows 和 Mac 的 Visual Studio 为.NET 提供了一流的支持,VS Code 也为其提供了有限的支持(微软的一个疏忽,我们将在下面讨论)。它们代表了世界上使用率最高的 IDE,事实上,VS Code 是 IDE 的绝对统治者,使用人数是 Visual Studio(位居第二)的两倍多。



JetBrains Rider 被许多人认为是现有最好的 IDE,它不仅与 Visual Studio 一样为.NET 提供支持,而且在此基础上进行了相当大的改进,带来了可能是所有工具中最好的.NET 工具体验。


工具本身是基于底层的平台功能(如健壮的一键式构建和部署系统)而构建的,提供了轻松的首次运行体验,开发者能够在几分钟内完成从平台安装到应用程序部署的过程。事实上,无需纠缠于复杂的工具链、构建文件或平台版本控制就能从零开始使用.NET 来部署应用程序,这种能力已经为其他平台树立了标准,并提升了开发者对平台的忠诚度。


随处运行


就像 20 世纪 90 年代的 Java 梦一样,.NET 也运行在所有的主流平台上,并拥有定制的集成工具来充分利用每一个平台。虽然它最初被锁定在 Windows 上,但在今天,它已经可以运行在 Windows、macOS、iOS、Android、Linux、大型机甚至微控制器上。它也运行在云端,Azure、AWS 和谷歌云都提供了内置的.NET 应用程序支持。


一系列优雅的编程语言


公共语言运行时(CLR)是.NET 的一个核心特性,开发者可以使用超过 25 种语言编写应用程序,包括 C#和 F#——世界上最好的两种编程语言,以及 VB.NET——虽然人们喜欢调侃它,但它本身确实非常强大。


强大的社区和开发者


根据具体的计算方式,活跃的开发者数量在 200 万到 250 万之间。而根据我们自己的研究,世界上将近一半的活跃开发者知道或者正在用.NET。


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


它还在快速增长。最新的 TIOBE 编程语言指数显示,在过去的一年中,C#的受欢迎程度增长最快,有望进入前三,取代 C 语言。事实上,如果与 VB.NET 一起,它将轻松位居榜首。


技术之美


2016 年的.NET Core 重构对.NET 进行了彻底的改造,提供了一种现代的、轻量级的、可组合的、点菜式的方式,直接通过 Nuget 从它的现代包生态系统中获取必要的平台库。它放弃了传统的 Win32 平台连接,融合了 Mono 和 Xamarin 团队在运行时和工具上带来的创新,为真正的跨平台体验铺平了道路。


.NET Core 也带来了更好的性能。通过打破旧有.NET Framework 运行时的限制,微软带来了一系列性能改进。


说到性能,Xamarin 的预先编译器(现在已被纳入.NET)让开发人员可以直接在构建时为特定芯片架构的汇编代码编译出二进制文件,从而在内存托管的应用程序中实现原生的 C/C++性能。


这种内在的内存托管方式也为可靠性和安全性带来了好处。从可靠性角度来看,它实际上消除了非托管应用程序(如用 C/C++编写的应用程序)中常见的内存泄漏所造成的不稳定和崩溃。从安全性角度来看,内存托管平台的安全性消除了由内存使用引起的一系列安全问题,谷歌的安全数据显示,内存使用引起的 Bug 大约占所有非托管安全性的三分之二。


百分百开源


.NET 的所有东西都是开源的,可以免费使用,包括类库、运行时、编译器、编程语言和应用程序框架。你可以在 GitHub 上的DotNet存储库中找到所有的源代码。


一流的生态系统


除了微软的投入之外,第三方生态系统也非常庞大,拥有大量高质量的库、插件、工具和框架。


下面列出了几个非常引人注目的第三方集成的例子:


  • Uno PlatformAvalonia——两个成熟的 MAUI 替代解决方案,Uno Platform 和 Avalonia 提供了一个优雅的、令人愉快的、高性能、跨平台 UX 框架。

  • Meadow——由 Wilderness Labs 开发,可以用它为运行在微控制器上的.NET 构建物联网解决方案。

  • Telerik——几乎在任何平台上都可以使用的可插拔 UI 控件。


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


受企业信任


众所周知,.NET 是企业的中流砥竿,虽然微软没有公开发布.NET 的采用情况,但有 95%的财富 500 强企业都在使用 Azure。而且,我私下里也被告知,至少 80%的财富 500 强企业在使用.NET,但实际数字可能更高,因为遥测技术经常会被关闭。



.NET 尤其适用于关键任务型应用程序,在这些应用程序中,.NET 的可靠性和久经考验的运行时让人心情舒畅。事实上,美国国防部在广泛使用.NET。


它并不完美


尽管.NET 有这些神奇之处,但它并不完美。我要指出的是,尽管微软用它提供了这么多好东西,但它也有缺点。其中,大部分直接归因于微软内部优先级的转变,以及领导团队一直在艰难地跟上一线的开发者文化。


MAUI 是微软的旗舰跨平台 UI 库,Xamarin 的继承者,同时也结合了之前的 Windows UI 框架 WPF,但长期以来资金不足,这使得 Flutter 成为当今最好的跨平台 UX 平台。在 Linux 平台上尤其如此,因为 Linux 目前还不支持 MAUI。


同样是这些领导团队,他们有时候也错误地处理了与社区的关系,缺失方向感的.NET 基金会和 Hot-Reload 的惨败就足以证明。


优先级转变也可能是限制为 VS Code 提供支持的原因,虽然有了基本的.NET 支持,但仍然缺少适当的插件来处理.NET 的多项目解决方案格式,而这对于支持更复杂的项目来说是必要的。这是由于微软一直以来优先将.NET 开发者引向 Visual Studio 的销售,以此来实现变现,而不是为他们提供免费的 VS Code。


话虽如此,很明显,微软内部的优先级正在转移到提供更好的跨平台工具支持上,而且我听说一个完整的 VS Code 解决方案正在进行当中。


结束语


然而,即使有一些小缺点,.NET 仍然可以轻松地成为世界上最高效、最值得信赖的开发者平台生态系统。没有什么比.NET 更完整、更开放、更高效的平台了。


所有迹象表明,在可预见的未来,.NET 将继续保持这种态势,因为它将继续发展,团队和生态系统将继续创新。因此,把赌注押在.NET 上是件好事!


原文链接:


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

公众号推荐:

2024 年 1 月,InfoQ 研究中心重磅发布《大语言模型综合能力测评报告 2024》,揭示了 10 个大模型在语义理解、文学创作、知识问答等领域的卓越表现。ChatGPT-4、文心一言等领先模型在编程、逻辑推理等方面展现出惊人的进步,预示着大模型将在 2024 年迎来更广泛的应用和创新。关注公众号「AI 前线」,回复「大模型报告」免费获取电子版研究报告。

AI 前线公众号
2022-07-12 10:422784

评论 4 条评论

发布
用户头像
写起来很舒服,用visual studio code 开发也不错
2022-07-19 09:18
回复
用户头像
写起来很舒服,用visual studio code 开发也不错
2022-07-19 09:18
回复
用户头像
一看就是国外的文章了,国内都是无脑上Java的
2022-07-13 13:40
回复
用户头像
看起来不错,但是还是用OpenJDK。
2022-07-12 18:20
回复
没有更多了
发现更多内容

Python读写txt文本(示例说明)

Python 数据读取 txt

大数据开发培训中心有哪些

小谷哥

嵌入式ARM设计编程(三) 处理器工作模式

timerring

arm

TO B Ask100-1、2| 破解“ All in one”悖论;如何降低客户成功成本?

B Impact

Python读execl之xlrd库函数详解一:工作簿相关

Python Excel 数据读取

JuiceFS 在火山引擎边缘计算的应用实践

火山引擎边缘云

边缘计算 存储 JuiceFS 火山引擎 渲染

小游戏也能脱离微信运行到自己的app中

Onegun

微信小程序 小游戏 小游戏开发 微信小程序-游戏

不是留给飞书的时间不够,而是中国To B需要重塑时间观

B Impact

西安java培训班哪家好?

小谷哥

敏捷管理到底有没有捷径可走?

Onegun

开源 将本增效 敏捷迭代

通过案例理解MQTT主题与通配符

EMQ映云科技

物联网 IoT mqtt 企业号 2 月 PK 榜 通配符

基于Web的6个完美3D图形WebGL库

2D3D前端可视化开发

前端开发 WebGL webgl库 3d图形库 webgl框架

Web、移动端、桌面端自动化测试工具或框架推荐

软件测试 自动化测试 自动化框架

前端开发哪家培训机构教的好

小谷哥

武汉前端开发培训哪家比较好

小谷哥

李志飞回媒体“出门问问硬件和ToB业务”表现不错,将做中国 OpenAI,美国YC项目1/3已基于大模型

B Impact

产品价值“三省”

QualityFocus

API+DevOps:华为云API Arts一体化平台,端到端呵护您的API

华为云PaaS服务小智

API

「 Java基础-泛型 」一文说清Java泛型中的通配符T、E、K、V、N、?和Object的区别和含义

小刘学编程

Java 源码阅读 Java泛型 构架师

重磅!GitLab 提出五大预测,洞见 2023 年 DevSecOps 发展趋势

极狐GitLab

DevOps 安全 DevSecOps 安全左移 供应链安全

VOP消息仓库演进之路|如何设计一个亿级企业消息平台

京东科技开发者

软件架构 平台 VOP 客户调用 消息仓库

使用Python+Opencv从摄像头逐帧读取图片保存在本地

Python 数据读取 摄像头

StoneDB 源码解读系列|Tianmu 引擎工具类模块源码详解(一)

StoneDB

数据库 开源 HTAP StoneDB 企业号 2 月 PK 榜

大数据培训学习包含java技术吗

小谷哥

实践指南|如何在 Jina 中使用 OpenTelemetry 进行应用程序的监控和跟踪

Jina AI

Python 微服务 PyTorch 云技术 OpenTelemetry

保险行业需要一个安全的大数据传输

镭速

Linux中Sl命令的使用

Linux 操作系统 命令

恭喜! SelectDB 五位开发者成为 Apache Doris 新晋 PMC 成员和 Committer!

SelectDB

数据湖 Doris 程序猿 ;开源 企业号 2 月 PK 榜

国产研发项目管理工具那些能做 Jira 替代方案?对比国内几款工具

PingCode

Jira PingCode 项目管理软件

HummerRisk V0.9.1:操作审计增加百度云、增加主机检测规则等

HummerCloud

云安全 云原生安全

新春发版,大展宏“兔”:StoneDB-5.7-V1.0.2 版本正式发布!两分钟快速部署安装您的分析加速器~

StoneDB

开源 数据库· StoneDB 企业号 2 月 PK 榜

押注.NET是件好事_语言 & 开发_Bryan Costanich_InfoQ精选文章