微軟回應(yīng)刪除.NET熱重載功能:通過(guò)CLI支持Hot Reload熱重載

微軟近日激怒了開(kāi)源.NET社區(qū),起因是它刪除了開(kāi)源.NET的一項(xiàng)旗艦功能,以提升Visual Studio 的吸引力,尤其是針對(duì)與Visual Studio頗有淵源的跨平臺(tái)源代碼編輯器Visual Studio Code。 好消息是微軟聽(tīng)取了社區(qū)的聲音,恢復(fù)了通過(guò)CLI支持HotReload功能。
今天早上.NET團(tuán)隊(duì)負(fù)責(zé)人Scott Hunter在.NET官方博客上發(fā)布了一篇文章,具體參見(jiàn) https://devblogs.microsoft.com/dotnet/net-hot-reload-support-via-cli/,文章提到了的愿景是為.NET創(chuàng)建一個(gè)開(kāi)放和充滿活力的生態(tài)系統(tǒng)。與許多公司一樣,微軟正在學(xué)習(xí)平衡 OSS 社區(qū)的需求,并成為.NET 的企業(yè)贊助商。有時(shí)候微軟做對(duì)了。當(dāng)微軟做錯(cuò)了,微軟能做的最好的事情就是從錯(cuò)誤中吸取教訓(xùn),更好地向前邁進(jìn)。
同時(shí)也透露了一個(gè)問(wèn)題,微軟還沒(méi)有學(xué)會(huì),如何跟一個(gè)強(qiáng)大的開(kāi)源社區(qū)相處,這非常像美國(guó)還沒(méi)有學(xué)會(huì),如何跟一個(gè)強(qiáng)大的中國(guó)相處一樣。 開(kāi)源路上的挫折可能更快加速微軟同開(kāi)源社區(qū)相處,我相信微軟是真的愛(ài)開(kāi)源。
最近備受爭(zhēng)議的有兩個(gè)關(guān)鍵部分,一是GitHub上開(kāi)源.NET SDK代碼存儲(chǔ)庫(kù)中的這個(gè)合并請(qǐng)(https://github.com/dotnet/sdk/pull/22217),即從一款名為dotnet watch的工具中刪除了用于實(shí)現(xiàn)Hot Reload(熱重載)這項(xiàng)功能的2500行代碼,今天早上已經(jīng)通過(guò)這個(gè)合并恢復(fù)了(https://github.com/dotnet/sdk/pull/22262);二是這篇博文,微軟首席項(xiàng)目經(jīng)理Dmitry Lyalin在博文中透露:“我們已決定,從即將發(fā)布的.NET 6正式版開(kāi)始,我們將僅通過(guò)Visual Studio 2022啟用熱重載功能。”,早上Scott Hunter已經(jīng)宣布恢復(fù)這項(xiàng)功能。
(https://devblogs.microsoft.com/dotnet/update-on-net-hot-reload-progress-and-visual-studio-2022-highlights/)
熱重載是一項(xiàng)功能,開(kāi)發(fā)人員可以利用該功能在應(yīng)用程序運(yùn)行時(shí)修改源代碼、實(shí)施更改,并在運(yùn)行中的應(yīng)用程序中查看結(jié)果。該功能之所以可以加快開(kāi)發(fā)過(guò)程,是由于它比重新構(gòu)建代碼、停止應(yīng)用程序、實(shí)施更改后再次啟動(dòng)應(yīng)用程序要快。
Lyalin當(dāng)初在介紹重加載功能時(shí)表示,開(kāi)發(fā)人員可以通過(guò)“Visual Studio 2019版本16.11(預(yù)覽版1)中的.NET熱重載體驗(yàn)和.NET 6(預(yù)覽版4)中的dotnet watch命令行工具來(lái)使用它”。該功能出現(xiàn)在.NET 6 RC2中,該版本擁有上線(go-live)許可證,已于10月12日發(fā)布,趕在計(jì)劃于11月9日召開(kāi)的.NET Conf 2021線上大會(huì)上發(fā)布.NET 6之前發(fā)布。
刪除熱重載在這個(gè)后期階段令人驚訝,令廣大.NET開(kāi)發(fā)人員頗為驚愕和失望,以至于提交了阻止這一變更的合并請(qǐng)求,并迅速獲得了支持。一名開(kāi)發(fā)人員說(shuō):“這是一場(chǎng)真正決定.NET是不是真是一個(gè)OSS[開(kāi)源軟件項(xiàng)目]的公關(guān)活動(dòng)。”
為什么這對(duì)我們所有人都很重要?
為什么這么重要?雖然熱重載是一項(xiàng)工具性質(zhì)的功能,但這一變更的含義在于,開(kāi)源.NET SDK被故意削弱功能,似乎只是為了使Visual Studio(這款商業(yè)產(chǎn)品附有功能縮減的免費(fèi)版)比競(jìng)爭(zhēng)對(duì)手更具吸引力,競(jìng)爭(zhēng)對(duì)手包括微軟贊助的Visual Studio Code。這次變更還是在未與開(kāi)發(fā)社區(qū)通氣的情況下進(jìn)行的。前陣子出現(xiàn)了一場(chǎng)危機(jī):微軟成立和贊助的獨(dú)立自由軟件組織.NET基金會(huì)面臨同一個(gè)問(wèn)題:微軟對(duì).NET作為開(kāi)源平臺(tái)是否真的很上心?這場(chǎng)危機(jī)后,開(kāi)發(fā)社區(qū)對(duì)此似乎見(jiàn)慣不怪。決定遏制熱重載的可用性也似乎讓外界頗感好奇。開(kāi)發(fā)工具對(duì)于像微軟這樣的平臺(tái)公司而言具有重要的戰(zhàn)略意義:簡(jiǎn)而言之,它吸引廣大程序員支持平臺(tái)。誰(shuí)能忘記微軟前首席執(zhí)行官Steve Ballmer及其在2000年微軟25周年慶祝活動(dòng)上吶喊的“開(kāi)發(fā)人員、開(kāi)發(fā)人員、開(kāi)發(fā)人員”?我們盡可一笑了之;然而,知名軟件行業(yè)分析公司Redmonk以“開(kāi)發(fā)者是新的掌權(quán)者這一觀點(diǎn)”作為謀生之道。
一款關(guān)鍵業(yè)務(wù)應(yīng)用程序可以促進(jìn)用戶在Azure上大筆投入,而微軟云是NET的自然目的地,正如谷歌云得益于這家廣告公司作為Kubernetes的發(fā)明者這個(gè)地位一樣。Visual Studio Code是免費(fèi)的,但也是微軟迄今在開(kāi)發(fā)人員社區(qū)最成功的產(chǎn)品,VS Code中強(qiáng)有力地支持.NET對(duì)微軟可能帶來(lái)的好處遠(yuǎn)遠(yuǎn)超過(guò)對(duì)Visual Studio銷售帶來(lái)的任何輕微影響。
另一名開(kāi)發(fā)人員說(shuō):“我是不是可以理解為這意味著在.NET 6預(yù)覽版中已經(jīng)與dotnet watch配合使用的熱重載功能現(xiàn)在被取消了?現(xiàn)在我可以創(chuàng)建一個(gè).NET控制臺(tái)應(yīng)用程序,使用dotnet watch運(yùn)行它,更改文件,并在不重啟應(yīng)用程序的情況下自動(dòng)重載文件。如果這項(xiàng)功能取消......無(wú)非是為了錢。”另一條評(píng)論問(wèn)道:“如果你肆意遏制開(kāi)發(fā)人員在Windows之外的平臺(tái)上的體驗(yàn),又怎能指望.NET會(huì)成為一種用于跨平臺(tái)開(kāi)發(fā)的有效解決方案?”
讓一項(xiàng)關(guān)鍵的工具功能成為Visual Studio的獨(dú)享功能存在另一個(gè)問(wèn)題,那就是它剝奪了 macOS和Linux開(kāi)發(fā)人員的這個(gè)選項(xiàng),因?yàn)閂isual Studio僅面向Windows。微軟表示還計(jì)劃為 Visual Studio Mac推出這項(xiàng)功能,但與VS Code相比,其用途小得多。從社區(qū)的炮轟來(lái)看,實(shí)際情況并不是微軟想象的那樣,有大量的開(kāi)發(fā)人員工作流依賴于.NET CLI的功能,還好微軟聽(tīng)取了社區(qū)的聲音,及時(shí)改正錯(cuò)誤。
參考資料:
https://www.theregister.com/2021/10/22/microsoft_net_hot_reload_visual_studio/
https://github.com/dotnet-foundation/Home/discussions/63
https://devblogs.microsoft.com/dotnet/net-hot-reload-support-via-cli/
相關(guān)文章
夸克PC版開(kāi)啟內(nèi)測(cè):主打夸克小工具和夸克網(wǎng)盤(pán)(附正式版下載)
夸克PC版在電腦中使用的瀏覽器工具,據(jù)悉該軟件已經(jīng)開(kāi)啟內(nèi)側(cè),主打夸克小工具和夸克網(wǎng)盤(pán),本站提供該軟件內(nèi)側(cè)地址2023-12-20Visual Studio微軟集成開(kāi)發(fā)環(huán)境 2022 17.5 正式發(fā)布(附下載)
Visual Studio微軟集成開(kāi)發(fā)環(huán)境 2022 17.5 正式發(fā)布,引入了多項(xiàng)新功能和改進(jìn),旨在提高跨不同平臺(tái)和語(yǔ)言的開(kāi)發(fā)人員的生產(chǎn)力、性能和協(xié)作2023-02-22微軟再次提醒:IE 瀏覽器將在今年 6 月退役,請(qǐng)使用 Edge
IE 瀏覽器將在今年“退役”,微軟想確保每個(gè)人都知道這件事。該公司在 Windows 消息中心發(fā)布了一個(gè)新的警告,專門(mén)提醒用戶 IE 瀏覽器將于今年 6 月退役2022-03-18IntelliJ IDEA 開(kāi)發(fā)商 JetBrains 宣布:無(wú)限期暫停在俄羅斯和白俄羅斯
IntelliJ IDEA 開(kāi)發(fā)商 JetBrains 宣布:無(wú)限期暫停在俄羅斯和白俄羅斯的銷售,本文為大家?guī)?lái)了詳細(xì)介紹,一起看看吧2022-03-14什么是個(gè)人經(jīng)營(yíng)收款碼? 個(gè)人經(jīng)營(yíng)收款碼最全介紹
什么是個(gè)人經(jīng)營(yíng)收款碼?3月1日開(kāi)始,支付寶和微信都可以使用個(gè)人經(jīng)營(yíng)收款碼進(jìn)行收款,那么什么是個(gè)人經(jīng)營(yíng)收款碼呢?下面我們就來(lái)看看個(gè)人經(jīng)營(yíng)收款碼最全介紹2022-02-24個(gè)人收款碼可以一直使用嗎? 官方:現(xiàn)行“個(gè)人收款碼”不停用
個(gè)人收款碼可以一直使用嗎?現(xiàn)在微信支付寶收款很常見(jiàn),很多人都關(guān)心,微信支付波啊個(gè)人收款碼可以一直用嗎,現(xiàn)在官方給出了回復(fù),現(xiàn)行“個(gè)人收款碼”不停用,詳細(xì)請(qǐng)看下文2022-02-23網(wǎng)頁(yè)版 B 站導(dǎo)致 CPU 占用高的原因分析與解決方案
網(wǎng)頁(yè)版 B 站導(dǎo)致 CPU 占用高怎么辦?本文就為大家?guī)?lái)了網(wǎng)頁(yè)版 B 站導(dǎo)致 CPU 占用高原因分析與解決方案,需要的朋友一起看看吧2022-02-09微軟回應(yīng)刪除.NET熱重載功能:通過(guò)CLI支持Hot Reload熱重載
通過(guò)Hot Reload熱重加載,可以在應(yīng)用運(yùn)行期間(在調(diào)試器下)編輯代碼,并且代碼更改將自動(dòng)反映在應(yīng)用中,而不會(huì)丟失應(yīng)用狀態(tài)。換句話說(shuō),應(yīng)用程序不需要重新啟動(dòng)。2022-01-06解除限速,阿里云盤(pán)、天翼云盤(pán)、360 安全網(wǎng)盤(pán)、和彩云、網(wǎng)易網(wǎng)盤(pán)等完成
據(jù)人民郵電報(bào)測(cè)試和致電了解,包括天翼云盤(pán)、和彩云、阿里云盤(pán)、360 安全網(wǎng)盤(pán)、網(wǎng)易網(wǎng)盤(pán)在內(nèi)的 5 家企業(yè)明確表示已按照工信部的要求完成無(wú)差別速率服務(wù)的改造,網(wǎng)頁(yè)端、移2021-12-22百度網(wǎng)盤(pán)企業(yè)版正式上線 開(kāi)通企業(yè)套餐可享受超20項(xiàng)特權(quán)
百度網(wǎng)盤(pán)相信大家都是使用過(guò)的,就在最近百度網(wǎng)盤(pán)企業(yè)版正式上線了。餐收費(fèi)3899元/年起,咱們就來(lái)仔細(xì)看看吧2021-09-29