本月初微軟官宣.NET 6 的RC1即將在11月正式釋出,這意味著.NET6正式版跟我們見面的時間又近了一步。在之前的.NET6預覽版本中,微軟加入了大量新功能特性,而在最終版本中將不再額外加入新的內容,只對現在的內容進行進一步效能優化,以求系統更加穩定。

微軟官方提供了.NET主題相關總覽

從年初發布的預覽1,到8月釋出的預覽7,許多新功能陸續進入大家的視線。

其中最受期待的,莫過於2020年5月微軟推出的 .NET跨平臺 UI 框架——MAUI(.NET Multi-platform App UI)。MAUI源自Xamarin.Forms,能讓開發者用一套程式碼覆蓋Android、iOS、Windows 和 macOS。

此外,在7月釋出的.NET 6 Preview 6中,微軟正式宣佈.NET6支援更多的裝置, 包括 Apple M1。這對於廣大Macbook使用者來說,無疑是一個振奮人心的訊息。

回首.NET6預覽版在這一年間的更新,許多內容都可圈可點:

  • C# 10 的改進

在 C# 10 中,許多API已經使用了C#的新特性,如頂層語句等。

上圖展示了 C# 10 的這一特性,開發者從使用類和方法的程式設計方式,切換為支援Attribute的Lambda表示式,這樣就能讓更多的程式碼擁有類似MVC 控制器的功能。

  • 具有原生裝置功能的Blazor 桌面Web應用

如今,Blazor 已成為編寫 .NET Web 應用程式的非常流行的方式。微軟最初在伺服器上支援 Blazor,然後在具有 WebAssembly 的瀏覽器中提供支援。.NET 6再次對其進行擴充套件,支援用Blazor編寫桌面應用程式,即Blazor桌面。Blazor桌面可用於建立混合型客戶端應用,即在原生客戶端應用中嵌入Web頁面,通過介面把 Web 和原生 UI 結合在一起。Blazor 建立在MAUI之上,具有與其他解決方案相當的啟動和吞吐效能。大量在離線桌面應用中提供豐富 UI 的 Web 開發者將會因此而受益。

上圖演示了在 macOS 上執行的 Blazor 桌面應用程式。在此示例中,整個應用程式都是使用 Blazor 構建的,除了外部由 Mac 應用程式容器提供的外框。

  • 雲原生應用的最小化 Web APIs

在 .NET 6 中,微軟為 Web 應用的託管和路由引入了一個全新的API:WebApplication。

該 API的主要目的是幫助使用C#(或者F#)的後端開發者,快速建立微服務專案或者HTTP API服務。

與之前的ASP.NET Core Web API相比,新的Web API在啟動模板和框架結構上都進行了優化。API的模板相當簡潔,我們甚至只需要寫4行程式碼便可完成一個最小Web API專案的搭建。

  • 支援HTTP/3

HTTP/3是為了解決HTTP/2.0的傳輸相關問題而生的,可以讓使用者在各種裝置上更快地訪問Web頁面和服務。它基於一個新的傳輸層協議,稱為QUIC(Quick UDP Internet Protocol),工作在UDP之上,而不是TCP。

在.net 6預覽版中,微軟添加了對 HTTP/3 的支援,這是一項很大的改進。HTTP3 加快了連線的設定速度,極大提升了低質量網路下的效能。

從.NET的開源與基金會的成立,到.NET的開源,微軟的每一個舉動無一不影響著全世界的開發者。.NET的每一個更新,都會引起社群中開發者的關注和討論。而我們也一直關注著.NET,並十分期待.NET6正式上線後可以為我們帶來更多驚喜。

最後,在微軟宣佈.NET6進入釋出倒計時的時候,我們也請到了微軟的"最有價值專家"(MVP)——中國.NET隊長張善友,為我們帶來對於.NET6的見解和內容前瞻。

大家有興趣不要錯過~詳細內容可見葡萄城公開課。