最近,.NET开源社区“复活”了。就因为微软在即将到来的.NET6中悄悄删除了热重载(HotReload)的核心部分,此举彻底激怒了.NET开源社区的开发者。他们强烈反对微软的行为,认为微软这样做极不利于.NET开源社区的健康发展。删除“热重载”功能意味着什么据了解,所谓的热重载(hotreload)功能是一项关键功能,可以让开发者在应用程序运行时更改源代码并立即看到效果。换句话说,就是在开发者编写代码的过程中获得代码修改的即时反馈,帮助软件开发者提高开发效率。此前,微软曾宣布将在.NET6中加入“hotreload”功能,但微软悄悄从一个名为dotnetwatch的工具中删除了“hotreload”功能的2500行源代码。10月20日,微软项目经理DmitryLyalin发表博文称:“我们决定从即将到来的.NET6GA开始,现在只通过VisualStudio2022启用热重载。”这是来自微软官网的消息,瞬间引爆了整个.NET社区。对于不熟悉开源社区的朋友,微软只是去掉了一个“热重载”功能,.NET社区的开发者为何如此兴奋?事实上,微软删除了.NET6.0的hotreload功能,将其限制在自家产品VisualStudio开发平台,拒绝向其他平台开放。微软此举违背了开源社区的“发展初衷”。准确地说,微软有意削弱了开源.NETSDK,使得微软自家的免费商业产品VisualStudio比竞争对手更具吸引力,包括微软赞助的VisualStudioCode。最重要的是,这一更改是Microsoft在未咨询.NET社区的情况下做出的。为此,人们想起了之前关于.NETFoundation的“数次危机”。一位前董事会成员之前曾质疑.NET基金会的作用,询问它是否仅代表Microsoft行事,还是致力于帮助培育和促进健康的社区?据了解,微软这次不仅删除了.NET6.0的hotreload功能,还删除了macOS和Linux开发者的这个选项。业内人士表示:“现在这个功能真正成为Windows和VisualStudio的独立开发平台,有工具。”微软致歉:恢复.NETSDK中的HotReload由于.NET社区强烈谴责微软从.NETSDK中移除HotReload功能,微软不得不道歉并宣布恢复.NET中的HotReload功能。10月23日,微软官方发布博文致歉:“首先,我们要道歉。我们在执行我们的决定时犯了一个错误,花了比预期更长的时间来回复社区。我们已经批准了一个pullrequest到重新启用此代码路径,它将出现在.NET6SDK的GA版本中。”来自微软官网的微软解释称,由于大多数.NET开发人员都在使用VisualStudio,他们选择先将HotReload引入VS2022,以确保VS为.NET6提供最佳体验。同时,微软强调这段源代码是不小心删除的,而不是没有调用代码路径。文章最后,微软再次致歉并表示:他们的愿望是为.NET打造一个开放且充满活力的生态系统。与许多公司一样,他们正在学习如何平衡OSS社区的需求与成为.NET的企业赞助商。图片来自微软官网。网友们对此看法不一。即使微软决定恢复.NETSDK中的HotReload功能,也还是引起了很多网友的讨论。@GeorgDangl网友认为:这是开源哲学的一个很好的证明——问题得到承认,反馈很快得到解决。@CoryCrooks网友不认同微软的官方说法。他们认为“微软无意中删除了源代码,而不是没有调用该代码路径”。这是否意味着代码将在那里但仍然无法从命令行获得?@AllanLindqvist网友认为这篇博文听起来是个好消息,但它并没有解释如何恢复热重载(HotReload)功能,也没有解释微软是否试图将VisualStudio作为.net生态系统来推广。牺牲其他平台“一等公民”的问题。
