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

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