微軟即將發布的.NET 5,蘊藏哪些最新特性?
原標題:微軟即將發布的.NET 5,蘊藏哪些最新特性?
以下為譯文:
為了統一.NET平臺,.NET 5改進了RyuJIT中代碼質量、垃圾收集和JSON序列化等功能。
Preview 8

微軟已經發布了功能完整的.NET 5的第8個預覽版,除了bug修復外,幾乎所有的功能都是最終版本。.NET 5中 .NET Framework和.NET Core已合并,旨在一統.NET平臺。最新版本預計將于2020年11月10日正式發布。
日前,.NET 5的第8個預覽版在8月25號已發布。而在11月的正式版發布前,還將有兩個候選版本發布。
.NET 5更高層次的目標包含提供統一的.NET SDK體驗,即在所有.NET 5應用程序中使用一個BCL(基類庫),并支持跨多個操作系統的本地和web應用程序。一個.NET 5本地應用程序項目將使用這些平臺上的本地控件來支持Windows、Microsoft Duo (Android)和Apple iOS等目標。
.NET 5的其他目標還有:允許構建高性能的云應用程序、在BCL中實現更快的算法、運行時中為容器提供更好地支持、以及對HTTP3的支持。.NET 5.0通過Mono的運行時和.NET庫,將支持WebAssembly二進制格式,還提供了一組可為空的引用類型注釋。
Preview 7
此前,.NET 5 的第7個預覽版在7月21日發布。彼時,關于第7個預覽版的公告確認了在.NET 5中有約250個面向性能的請求,而這對于關注.NET 核心性能的人而言會是一個驚喜。
以下是.NET 5第7個預覽版公告中提到的其他新增功能和改進:
在序列化時,新的System.text.json JSON API提供了忽略值類型屬性的默認值的功能,這有助于減少序列化和線路成本。還為System.text.json添加了在序列化時處理循環引用的功能,預計現在的API就將是最終版本。
垃圾回收將使用GetGCMemoryInfo方法公開最近收集的詳細數據,該方法返回GCMemoryInfo結構。GCMemoryInfo會提供關于機器、堆內存和最近收集的信息,或者是指定的GC類型的最新收集(臨時、完全阻塞或后臺)的信息。這個API很有可能會用于日志記錄/監視,或者為請求完整的GC向負載平衡器發出停止旋轉機器的指示。同時,為了將昂貴的重置內存操作推遲到低內存情況下,還更改了另一項GC。
Ryujit是.NET的匯編代碼生成器,其增強的功能包括:取消某些邊界檢查、尾部重復改進,以及為消除冗余零初始化而進行的改進。Ryujit還具有ARM64硬件內在特性和API優化功能。
Preview 6
6月25日發布的.NET 5第6個預覽版,刪除了對WinRT(Windows運行時)的內置支持,WinRT是用于構建通用Windows平臺應用程序的API集合。這是一個很重要的變化,因為使用WinRT的.NET Core 3.x應用程序都必須重新編譯。.NET和Windows團隊一直在竭力改變WinRT在Windows上的工作方式,所以用.NET 5中的C#/ WinRT工具鏈代替WinRT支持。C#/ WinRT是一個NuGet-packaged的工具包,為C#提供WinRT投影支持。
.NET 5 第6個預覽版中的其他變化:
.NET 5第6個預覽版SDK支持Windows ARM64設備上的Windows Form,并繼續在Windows ARM64上添加對Windows Presentation Foundation的支持。
RyuJIT代碼質量改進包括為消除冗余的零初始化,進行結構處理和優化。此外,在ARM64硬件內在優化以及改進ARM64生成的代碼(減小代碼大小)方面也取得了進展。
平臺支持計劃已更新。
Preview 5
6月10日發布的.NET 5第5個預覽版包含以下新功能:
RyuJIT JIT編譯器可以更快,更方便地使用尾調用助手。一旦JIT發現需要一個助手來執行尾調用,它就會在運行時尋求幫助。對于RyuJIT,ARM64硬件內在特性也一直在不斷進步。RyuJIT還有其他的改進:在影響正則表達式編譯和提高英特爾架構性能的情況下提高了速度。
啟用了對帶有.NET代碼調用的本機二進制文件的導出。此功能的構建塊是承載了對UnManagedCallersOnlyAttribute的API支持。本機導出項目允許公開自定義本機出口。它不需要像COM這樣的高級互操作技術,而且是跨平臺的。
DirectoryServices.Protocols的使用正在往Linux和MacOS擴展。
?????投稿郵箱:jiujiukejiwang@163.com ??詳情訪問99科技網:http://www.hacbq.cn
推薦資訊














