微软当年几乎像是在开愚人节玩笑一样发布了 VS for Mac,后来又以一种相当突然的官宣方式终结了它。虽然 VS for Mac 的开发团队一直在努力改进这个产品,但由于市场需求的变化和微软战略的调整,最终还是敌不过管理层的决定。很多时候,只能感叹一句时运不济。我半路接手了 xUnit.net for MonoDevelop/Xamarin Studio/VS for Mac 这个项目,并在 vstest 框架开源之前短暂地维护和发展了它。
JetBrains 以 ReSharper 入局,一直是 .NET 开发工具生态重要的一环。尤其是在 Rider 产品线发布之后,它更是全面成为了微软 VS 产品线最强劲的竞争者之一,在功能和性能上都给了 VS 很大的压力。虽然 VS 也在不断改进,但 Rider 的创新速度和用户体验一直都非常出色,所以它的市场份额也在不断增长。这一章将会回顾其中很多重要的技术选择时刻,以及这些选择对于未来技术演进方向的直接、间接影响。目前在筹划一个 Rider plugin for AXSG 的项目,暂时还不确定最终会不会推进。不过如果做了的话,肯定会在这一章里提到。
## VS Code for C# 的负重前行
VS Code 几乎一诞生就改写了整个微软开发工具生态的格局。无论是比它更早发布的 Atom,更早成名的 Sublime Text,还是微软自家的 VS,都不得不重新调整自己的位置。以至于 AI 时代的 IDE 竞争,说白了是 VS Code 各个变种之间的内部混战。那么微软主导的 C# 语言在 VS Code 上的开发体验到底如何呢?一言难尽的故事和背后的技术细节、可能的政治斗争,以及社区的反应和影响,都将会在这一章中进行深入的探讨和分析。我配合 Microsoft Reactor Toronto 做过几次 VS Code 插件开发的教学活动,也做过几十万活跃用户的开源插件,所以这一章的内容我还是比较熟悉的。
## 其他开源 C# IDE 的曲折求生历程
其实从第一版写过的 SharpDevelop 和 MonoDevelop 开始,开源 C# IDE 可能就是一些开发人员心中的白月光,那是不论如何也不能缺少的存在。虽然它们在市场份额和影响力上远不及 VS 和 Rider,但总有人愿意去尝试,也在技术创新、社区参与和开源精神方面留下了一些探索和贡献。所以这一章会挑选一个还算有影响力的项目来加以记录和分析,看看它们各自的发展历程和失败教训。我直接参与了 MonoDevelop 到 dotdevelop 这个转变的过程,虽然只是筹划与建议,但也因此对它后续的发展和未来其他项目接棒有了第一手的见解。目前正在参与 SharpIDE/SharpDbg 项目的开发。
## 其他跨平台 UI 技术的发展与挑战
除了微软主导的 Blazor 和 MAUI 之外,社区也在不断探索和尝试其他的跨平台 UI 技术,比如 Uno Platform、OpenSilver、Avalonia 等。这些项目虽然在市场上的份额可能不如微软的产品,但它们在技术创新和社区参与方面都做出了不少贡献,也为开发者提供了更多的选择和可能性。这一章将会回顾这些项目的发展历程、技术特点以及它们在市场上的表现和影响。我主导了 Project Rover 项目,把 ILSpy 带到 Linux 和 macOS,也一直在为 AXSG 等开源项目进行布道工作,因此对于社区治理中出现的各种问题往往会直言不讳。