.NET 很好,你可能对它有一些误解
> 作者:Charles Chen
在 20 年前的 2002 年, 微软公布了下一代的软件、服务的愿景和路线,2 月 13 日,Visual Studio .NET 推出,.NET 开发平台的第一个版本正式向世界发布。
到现在为止,.NET 都已经 20 岁了, 它已经成长为一个成熟稳定的平台。
但是,我发现很多开发人员还是对 .NET 有一些偏见和误解,让我们来消除这些误解吧!
如果你身边也有这样的朋友,请把这篇文章转发给他们。
实际上这个说法从早期的 .NET 就一直存在,也确实如此,.NET Framework 最初是为 Windows 构建的,因为包含了很多 Win 32 API 的引用,导致跨平台变得困难。
直到微软在 2016 年认真对待 .NET Core,他们才开始解决 Mono 中的一些问题, 以及对 Win32 API 的挥之不去的依赖。但是在早期,.NET Core 、.NET Framework 、 .NET Standard 这些也让开发人员感到混乱,不过值得庆幸的是,在 .NET 5 和现在的 .NET 6 中,这一切都已成为过去。
如今,.NET 6(最新的 .NET)可以在Windows、Linux和macOS上运行,并支持 x86、x64、Arm32和 Arm64。
Microsoft 为多个平台提供 SDK 和运行时。
这意味着,您可以在最新的 M1 MacBook 上构建 .NET 应用程序:
在 2021 MacBook Pro M1 上使用命令行构建一个简单的控制台应用程序。
实际上,.NET 6 具有极高的吞吐量,并且在 Web 测试中提供的吞吐量是在 Node 和 Python 上运行的任何框架的多倍。
最近几年,.NET 团队非常关注运行时几乎所有方面的核心性能,虽然显然它不会在原始性能上击败 Rust 或 C++,但它在运行 Web 应用方面并不落后。
而 Task Parallel Library 和 Span 为构建吞吐量和性能提供了更高的上限。
根据 TechEmpower Benchmarks 提供的Web 框架测试报告, 在 Round 15 from February 14, 2018 中,您可以看到 ASP.NET 实际上落后于 Node.js:
2018 年:Node.js 第 8位, ASP.NET Core 13 位 ,Express 在 28 位,Flask 57位, Django 61 位。
在 Round 20 in February 8, 2021 中,仅仅三年后,.NET 绝对压倒了 Node 和 Python,并且仅次于基于 Rust 的服务。
2021 年: .NET Core 在第8位, Node.js 56 位, Express 94 位, Flask 111 位, Django 118位.
在 gRPC 基准测试中,.NET 的表现也非常出色。
如果您正在使用 gRPC,请不要考虑 Node 或 Python。
和 Rust 和 Go 相比,很多人觉得 .NET 是一个过时的平台,实际上,.NET 一直都在更新,并且语法和特性都很先进, 泛型, async/await, 匿名类型, 元组, 模式匹配,Expression 等等。
借助于强大的 LINQ,C# 看起来非常像 JavaScript:
根据 GitHub 的 2021 年 Octoverse 状态报告,C# 在过去几年中略有复苏:
实际上,早期的 Visual Studio 开发工具确实很贵!
但是现在,微软不仅提供免费的、功能齐全的 Visual Studio 社区版,你还有其他的选择:
•JetBrains Rider•适用于 macOS 的 Visual Studio•当然还有VS Code
最近,我在 MacBook Pro M1 上使用 VS Code 完成了我的大部分 C#/.NET 开发:
早期的 .NET 确实是这样的,但是自从 Satya Nadella 掌权以来,微软在开源方面的整个轨迹已经发生了巨大的转变。不过微软在这方面的转型和成长仍然还有很长的路要走。
.NET 本身由.NET Foundation管理,.NET 编译器 (Roslyn) 和很多其他内部组件都在 GitHub ,并且自 2015 年以来,它已通过 Red Hat Enterprise Linux 认证。
实际上,.NET 现在已经发展成一个统一平台,你可以用它开发各种各样的应用,包括桌面软件,Web 服务,3D 游戏等等。
.NET 也有很多构建跨平台应用程序的框架,比如:
•Multi-platform App UI•Uno Platform•Avalonia
全文完...