微軟從.NET 6 代碼中刪除“熱重載”功能激怒.NET社區(qū),或?yàn)椤皬?qiáng)捧”自家的 Visual Studio ?SegmentFault關(guān)注共 2368字,需瀏覽 5分鐘 ·2021-10-26 22:03 技術(shù)編輯:MissD丨發(fā)自 思否編輯部公眾號(hào):SegmentFault近日,微軟因在即將發(fā)布的 .NET 6 中悄悄刪除了 Hot Reload(熱重載) 的核心部分,一時(shí)間“激怒”了開源.NET社區(qū),且受到了來自開源.NET 開發(fā)者的“攻擊”。對(duì)此,外界評(píng)論稱微軟此舉或“為了增強(qiáng) Visual Studio 的吸引而拉動(dòng)銷量”,尤其是針對(duì)其跨平臺(tái)的同類 Visual Studio 代碼,因此悄然從開源.NET 代碼中刪除了“熱重載”這個(gè)旗艦功能。據(jù)了解,該事件“震源”的兩個(gè)關(guān)鍵點(diǎn):一是 GitHub 上開源.NET SDK 存儲(chǔ)庫中的 pull 請(qǐng)求里,其中 2500 行“熱重載”功能的源代碼被從名為 dotnet watch 的工具中刪除;二是在該博客文章中,主要項(xiàng)目經(jīng)理 Dmitry Lyalin 透露,“我們決定從即將發(fā)布的.NET 6 GA開始,只通過 Visual Studio 2022 啟用熱重新加載功能。”也就是說,.NET 6.0 的熱重載功能,只限于 Windows 和 Visual Studio 開發(fā)平臺(tái),而非開放的跨多個(gè)平臺(tái)可用的。所謂的“熱重載”功能,是開發(fā)人員可以在應(yīng)用程序運(yùn)行時(shí)修改源代碼、更改應(yīng)用,并在運(yùn)行的應(yīng)用程序中查看結(jié)果。這個(gè)功能可以幫助加快開發(fā)過程,比重建代碼、停止應(yīng)用程序、應(yīng)用更改然后再次啟動(dòng)代碼還要快。Lyalin 表示,引入熱重新加載時(shí),開發(fā)人員可以通過“Visual Studio 2019 版本 16.11(預(yù)覽版1)中的.NET 熱重新加載體驗(yàn)和.NET 6(預(yù)覽版4)中的dotnet watch 命令行工具”來使用該功能。“該功能在.NET 6 RC2 中,具有上線許可證,該版本已于 10 月 12 日發(fā)布,早于計(jì)劃 11 月 9 日在.NET Conf 2021 在線會(huì)議上發(fā)布.NET 6 之前。微軟刪除“熱重載”功能,在當(dāng)前階段來看是個(gè)令人驚訝的操作,.NET 開發(fā)人員更是對(duì)此“大受震撼”,以至于提交了一個(gè)“阻止更改”的請(qǐng)求并迅速吸引了不少業(yè)內(nèi)支持。一位開發(fā)人員就表示:“考驗(yàn).NET 是否真的是OSS(開源軟件項(xiàng)目)性質(zhì)的時(shí)刻到了。”微軟刪除“熱重載功能”,.NET 社區(qū)為啥會(huì)“大受震撼”?微軟刪除“熱重載功能”的操作,為啥在開源.NET 看來會(huì)有這么嚴(yán)重?對(duì)此,.NET 社區(qū)方面表態(tài)稱,盡管“熱重載”是一種工具功能,但一旦變更,就意味著“開源的.NET SDK 正在被故意削弱,而使的 Visual Studio(一種具有簡(jiǎn)化版的商業(yè)產(chǎn)品、包括微軟贊助的 Visual Studio代碼)比競(jìng)爭(zhēng)對(duì)手更具吸引力。關(guān)鍵是,微軟此次變更并沒有與.NET 社區(qū)協(xié)商,這會(huì)讓.NET 基金會(huì)牽扯進(jìn)無法辨別的危機(jī)中。.NET 社區(qū)表示,該問題的核心點(diǎn)是:微軟是否嚴(yán)肅對(duì)待.NET是一個(gè)開源平臺(tái)?開發(fā)人員工具對(duì)于微軟公司來說具有重要的戰(zhàn)略意義:吸引程序員使用該平臺(tái)。所以對(duì)于局外人來說,“刪除熱重載”的決定似乎也很奇怪。同時(shí),.NET 社區(qū)還表示,微軟云是.NET的天然“destination”(目的地),因?yàn)?Visual Studio 代碼是免費(fèi)的,且是 Microsoft 在開發(fā)人員社區(qū)中有史以來最成功的產(chǎn)品,因此相比 VisualStudio 銷售的輕微影響,其為.NET的VS 代碼帶來的強(qiáng)大支持所帶來的潛在利益則大得多。.NET 社區(qū)透露,不僅微軟將.NET 6.0 的熱重載功能刪除,目前 macOS 和 Linux 開發(fā)人員那里也刪除了該選項(xiàng),“現(xiàn)在這個(gè)功能真的成為了 Windows 和 Visual Studio 開發(fā)平臺(tái)獨(dú)有的工具了”。.NET 社區(qū)對(duì)微軟這一操作的“討伐”,目前已經(jīng)得到不少開發(fā)人員的支持,該話題已經(jīng)在 Twitter 上引發(fā)討論。有人指出,刪除“發(fā)生在 RC1和RC2被公開之后……在他們正式宣布 RC1 中可用的功能將在最終產(chǎn)品中可用并得到支持之后。”也有開發(fā)人員問道:“如果您在 Windows 以外的平臺(tái)上積極體驗(yàn) gimp 開發(fā)經(jīng)驗(yàn),怎么能期望.NET 成為一個(gè)跨平臺(tái)開發(fā)的有效解決方案?...”事件后續(xù):事情發(fā)展到現(xiàn)在,大家可能要問了,微軟方面的.NET 團(tuán)隊(duì)對(duì)此事件有何看法?據(jù)外媒報(bào)道,The normal evangelists 在這個(gè)問題上一直保持沉默,盡管微軟知名熱心開發(fā)倡導(dǎo)者 Scott Hanselman 前天確實(shí)發(fā)表了一篇文章,但沒有說明原因:誰知道,可能有聯(lián)系。同時(shí),Lyalin 也在他的帖子中添加并刪除了一個(gè)標(biāo)題為“2021 年 10 月 21 日更新”的部分,該部分寫道:“為了澄清,我們不會(huì)將熱重載作為 dotnet watch 工具的一項(xiàng)功能發(fā)布。我們正在將所有精力投入 Visual Studio 2022。”我們不確定刪除此更新的原因,并已向微軟征求進(jìn)一步意見。這篇文章上線前后不久,Lyalin 的博客文章再次更新,已經(jīng)恢復(fù)了上述澄清。所以,這件事的來龍去脈究竟如何,局外人也看個(gè)熱鬧。不過在業(yè)內(nèi)人士看來,這次是微軟為了“強(qiáng)捧”Visual Studio 2022 以占取更多銷量,不惜把.NET 6.0 的熱重載功能變成了 Windows 和 Visual Studio 獨(dú)有工具,這一操作確實(shí)會(huì)引發(fā)開源圈同行的”質(zhì)疑“。不知道接下來事件的走向會(huì)如何發(fā)展,如果您對(duì)此事件也有不同看法,歡迎在評(píng)論區(qū)留言互動(dòng)。-?END - 瀏覽 50點(diǎn)贊 評(píng)論 收藏 分享 手機(jī)掃一掃分享分享 舉報(bào) 評(píng)論圖片表情視頻評(píng)價(jià)全部評(píng)論推薦 嘗鮮 .NET 6.0 的 C# 代碼熱重載dotNET全棧開發(fā)0微軟博客回應(yīng)刪除.NET熱重載功能:通過 CLI 支持 .NET 熱重載llovebo0微軟道歉!“我們犯了一個(gè)錯(cuò)誤”|現(xiàn)已恢復(fù) .NET “熱重載”功能SegmentFault0微軟道歉!“我們犯了一個(gè)錯(cuò)誤”|現(xiàn)已恢復(fù) .NET “熱重載”功能馬哥Linux運(yùn)維0Visual Basic .NET Visual Basic.NET(VB .NET)是基于微軟.NET Framework之上的面Visual Basic .NETVisual Basic .NET0激怒開源社區(qū),微軟悄悄刪除2500行功能代碼后致歉:已恢復(fù)!互聯(lián)網(wǎng)架構(gòu)師0激怒開源社區(qū),微軟悄悄刪除2500行功能代碼后致歉:已恢復(fù)!玩轉(zhuǎn)GitHub0激怒開源社區(qū),微軟悄悄刪除2500行功能代碼后致歉:已恢復(fù)!dotNET全棧開發(fā)0激怒開源社區(qū),微軟悄悄刪除 2500 行功能代碼后致歉:已恢復(fù)!碼農(nóng)有道公眾號(hào)0點(diǎn)贊 評(píng)論 收藏 分享 手機(jī)掃一掃分享分享 舉報(bào)