.NET 20週年軟體趨勢隨想

微軟技術棧發表於2022-02-05

從2000年微軟啟動.NET戰略時,我還是一位大學生,當年著名的黑客Miguel de Icaza , Miguel 為了尋找GNOME專案開發框架經過充分的調研啟動了一個志存高遠的專案:Mono,一個Microsoft .NET Framework的自由GNU/Linux實現,我在國外的Linux論壇上 循著Miguel的指引踏上了.net開發之路, 我開始接觸.NET Framework的時候還是beta階段,2002年2月13日微軟釋出了.NET 1.0 , 我也畢業工作半年時間,開始使用ASP.NET 1.0開發專案, 今天我已經伴隨.NET 發展20年,在此.NET 20年之際有感而發寫下這些感想。

在這20年間發生了巨大的變化,微軟一直能夠與時俱進,2000年的市值第二,2022年照樣排名第二,這期間微軟也是經歷了起起伏伏,作為微軟最重要的一個開發者平臺產品一樣經歷了起伏,就像微軟的股票一樣:

.NET 20週年軟體趨勢隨想

這種圖也反應了.NET的命運,從2000年到2014年微軟讓.NET Framework作為Windows的一部分,微軟也站在開源的對立面,最經典的就是Steve Ballmer ,他當初曾將“開源”稱作微軟智慧財產權毒瘤。2014年之後微軟換了CEO,全面擁抱Linux,.NET Core開源,收購Xamarin,構建起了全新的生態,微軟的重心轉移到了雲,微軟算是抓住了雲端計算時代,2017年微軟市值已經增長到了5000億美金,2022年已經是2.3萬億美金。從2014年開始的演變,支援多平臺,並提供給各種作業系統,如Linux,Mac,iOS和Android等。 它涵蓋廣泛的應用程式,從桌面、Web 應用程式、雲、移動、遊戲、IoT 到 AI。

Windows 這個作業系統, 主要是以桌面為中心的用途, 從某種意義上說, 是為了提高特定環境下的開發效率而開始的,在.NET第 20 年終於達到了"所有應用的統一平臺"的高度。  雖然MAUI(不是GA)存在一些滯後,今年第二季度也會GA,隨著.NET 6的釋出,One.NET 願景已經實現。

image

其實在 NET Framework釋出之前,微軟從 COM 時代起就一直夢想著多平臺。 微軟可以算是一家堅韌不拔的公司, 經過20年的不懈努力,反覆試驗和試錯,這其中也有不少是錯誤的,甚至現在可以感受到社會上的很多的軟黑曾經是軟粉,也許包容不下微軟的堅韌不拔。 經過各種反思和20年的時光, 現在最重要的是開發者, 以開放為目標, 經過深思熟慮,迴歸服務好開發者。

.NET Framework、. NET Core 和 Xamarin 的統一,.NET 6完成了統一 .NET願景,統一了 SDK、類庫和工具鏈,這些工具鏈以前是不同的,支援跨平臺本機和 Web UI。 願景還包括雲原生,Microsoft 計劃為所有現代工作負載提供最佳解決方案。.NET 為所有開發人員提供了更多的選擇。開發者使用.NET 上的工具和平臺,無論他們選擇什麼,都很容易實現他們想要的。.NET 6 統一了類庫和 SDK。 除了釋出新的 C# 10 和 F#6 外,它還支援 Apple M1 處理器。 此外, 與 NET 5 不同,它還提供長期支援 (LTS),提供三年支援。

NET在每次升級時,效能都會成為焦點。比如 NET 6的 ASP.NET Core 網路應用程式比Node.js快10倍, gRpc 的.NET實現是效能最好的,超過了C++的實現。在 .NET 6 中,還專注於加快 Web 應用程式效能,降低資源的佔用,換句話說就是對雲原生的投資。

image

現在.NET 也是 OSS,並且更新像任何其他 OSS 一樣頻繁釋出。 然而,在實際操作中,瞭解版本升級週期更容易使用,因此時間表變得清晰, 作為一家企業公司,如果.NET 的未來計劃被披露,那麼就可以放心地投資.NET技術。從使用長期支援版本的同一版本的想法出發,很容易轉向敏捷流程和思維方式,這些流程和思維將盡可能短的週期更新到新版本,而從安全應用程式開發的角度來看,現在最需要考慮的就是解決漏洞。

開源社群也有很多缺陷是因為工程運作上的問題,微軟具有商業公司血統的管理科學更多融合到.NET 開源專案中去, 將來 開源、商業、學術將結合得更加完美。

image

.NET 程式設計師的現狀是:"在被迫開發各種應用的情況下,我們必須選擇針對性工具和框架,當前系統正在向雲轉移,基礎設施和服務也在發生變化,開發現場變得越來越複雜。. NET 開發人員 可以使用稱為宇宙第一的 Visual Studio 整合開發環境,可在各種目標上部署您喜愛的應用,從而保持高工作效率。

NET 6 還改進了對 "ASP.NET Core Blazor"的支援,以方便 C# 開發人員進行 Web 前端開發。Web 應用程式開發在伺服器端和前端使用不同的語言和框架。 前端 Web UI 基於基本的 JavaScript,通常使用框架(如Angular、React 和 Vue)進行開發。 ASP.NET Core Blazor 的職責是使能夠以 C# 等語言開發前端,而無需瞭解 JavaScript 框架 。

ASP.NET Core Blazor以大多數現代網路瀏覽器支援的WebAssembly 為技術基礎。 因此,在 C# 中編寫的程式碼以本機效能作為 WebAssembly 執行。 根據建立方法,您可以使其離線執行,也可以將其作為 PWA(主動 Web 應用)安裝在計算機上,並像本機應用程式一樣執行。 這非常像以前的 Silverlight 或 Flash 那樣在外掛上執行,不一樣的地方是Blazor Wasm使用 Web 標準 WebAssembly。

ASP.NET Core Blazor可以將 DLL 下載到 Web 瀏覽器,並在 WebAssembly上執行。 由於它完全在客戶端執行,因此無需伺服器元件即可離線執行,但下載大小較大。 相反,它提供了一種在 Blazor 伺服器上執行程式並使用稱為 SignalR 的技術進行渲染的方法。 這需要持久連線,UI 延遲高,但啟動速度快,並且具有在較舊的 Web 瀏覽器和瘦客戶端上可用的優點。


最後號召大家一起來參與.NET 20週年慶活動,可以使用下列模板製作一個微信視訊,發到自己的視訊號裡,加入活動“ dotnet20週年”:

      你好,我是xxx , 我是 xxxx年開始接觸.NET的,我的第一個專案是xxxx , 因為xxxx 原因我選擇了.NET ,新一代的.NET 我最喜歡它的XXX功能,希望.NET 在中國有Xxx的發展!.NET 20週年生日快樂 。


相關參考:

相關文章