微軟即將發布的.NET 5,蘊藏哪些最新特性?

2020-12-16 騰訊網

作者 |PaulKrill

編譯 | 鄭麗媛

頭圖 | CSDN 下載自視覺中國

出品 | CSDN(ID:CSDNnews)

以下為譯文:

為了統一.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擴展。

現在支持Alpine 3.12 Linux發行版。

.NET預覽5.0版本可以從dot.net.microsoft.com(https://dotnet.microsoft.com/download/dotnet/5.0)下載。

Preview 4

5月19日發布的.NET 5 第4個預覽版加入了以下新功能:

支持C#9和F#5語言。

改進了F#使用的尾調用的性能。

改善了ToUpperInvariant,string.ToLowerInvariant和相關模式的性能。

改進了HTTP 1.1和HTTP 2性能。

改進了呼叫計數機制。

內部通用字典的動態擴展,消除了通用代碼對性能的影響。

固定對象堆以減少堆碎片。

基於新文件發布類型的文件應用程式,從二進位文件開始執行應用程式。

.NET第4個預覽版可以從dot.net.microsoft.com(https://dotnet.microsoft.com/download/dotnet/5.0)下載。

Preview 3

4月23日發布的.NET 5第3個預覽版中的增強功能包括:

更新了用於管理位值數組的BitArray類,以包括使用ARM64內部特性對ARM64進行硬體加速的實現。微軟表示,BitArray的性能改進是尤為重要。另外,在CLR中實現了棧上替換(OSR),可以允許在方法執行期間更改當前正在運行的方法執行的代碼,而這些方法在棧上處於活動狀態。為了改善分層編譯的性能特徵,這個功能現在已經成為x64上的實驗性選擇功能。RyuJIT的另一個增強功能改進了作為「尾調用」位置調用中參數的結構的代碼質量。預計RyuJIT也會提供更好的泛型性能。

System.Txt.Json中添加了對保留引用的支持,從而可以對JSON序列化進行引用循環處理。另外,JsonSerializer現在支持不可變的類和結構。也可以支持空值處理。

.NET SDK現在將在項目文件中給定.NET Framework目標框架的情況下,自動引用NETFramework.ReferenceAssemblies NuGet包。通過此更改,可以在未安裝.NET Framework目標包的計算機上構建.NET Framework項目。這個改進特定於定向包,沒有考慮其他可能的項目依賴關係。

Preview 2

4月2日發布的.NET 5第2個預覽版中的增強功能包括:

為提高生成的機器代碼的質量,對RyuJIT進行了許多更改,包括更高效地消除重複的零初始化以及更早地調用nullable優化。

現在,可以在標記上一代對象實時保留的gen0 / 1對象時,在不同線程上進行伺服器垃圾回收。在某些GC線程比其他線程標記時花費時間更長的情況下,通過跨線程竊取工作可以縮短一點 GC 暫停時間。此外,為允許收集器分別管理固定對象,固定對象堆(POH)的一部分功能已經完成,即垃圾回收內的一部分。這避免了固定對象對世代堆的負面影響。

Preview 1

3月16日發布的第1個預覽版包括了正則表達式性能以及RyuJIT中代碼質量的改進。

.NET 5將於2020年11月發布,該版本將包括:

ASP.NET Core,一個用於Web應用程式的開源框架;

實體框架核心數據訪問技術;

WinForms;

WPF(Windows Presentation Foundation);

Xamarin行動應用程式設備模型;

ML.NET。

最後

微軟在提供了.NET 5 SDK預覽版和附帶的運行預覽版的同時,表示,.NET 5將提供一個統一的平臺來構建任何類型的應用程式。另外,微軟將使用Azure負載平衡將流向.NET網站的流量的一半定向到.NET 5版本,用作測試用例。

微軟建議開發人員使用.NET Core 3.1構建新應用程式,然後將其遷移到.NET5,並指出只要支持Windows,.NET Framework應用程式可以一直保留在.NET Framework上。

原文:https://www.infoworld.com/article/3533053/whats-new-in-microsoft-net-5.html

本文為 CSDN 翻譯,轉載請註明來源出處。

相關焦點

  • NET5發布,這個微軟「全家桶」會是.NET的春天嗎?
    在全面開源的步伐下,微軟也逐步跟上了腳步,作為微軟最早邁向開源的重要軟體之一,.NET 5的發布對微軟及其使用者都具有重要意義。微軟未來目標是將所有的 .NET 組件整合到一個產品下,然後用戶可以根據需求使用 .NET 的某個部分,而不是單獨下載或安裝所有內容。
  • [圖]微軟停止更新 .NET Standard 今後轉向.NET 5
    在近日更新的博文中微軟表示未來不再發布新的 .NET Standard 版本。
  • 羅永浩宣布進軍電商直播;Switch 遭到全面破解;微軟發布. Net 5 首...
    微博回應 5.38 億用戶數據在暗網出售近日,有用戶發現 5.38 億條微博用戶信息在暗網出售,其中,1.72 億條有帳戶基本信息,售價 0.177 比特幣。涉及到的帳號信息包括用戶 ID、帳號發布的微博數、粉絲數、關注數、性別、地理位置等。
  • 微軟發布 .NET 5 首個預覽版
    IT之家3月18日消息 據IT之家網友投稿,日前微軟.Net程序管理總監Scott在博客中表示,發布.NET 5的首個預覽版,並提供SDK和運行庫下載。Scott表示,.NET 5是.NET Framework和.NET Core的未來,最終將成為一個統一平臺,.NET5將包含ASP.NET核心、實體框架核心、WinForms、WPF、Xamarin和ML.NET,具體更新內容可點此查看。
  • 全面了解微軟.NET 5,2021年更好邁向.NET 6
    代際轉移可能是微軟2020年開發者戰略的關鍵主題之一。這是比較平穩的交接,統一新舊工作方式。但到頭來,無論是Project Reunion、WinUI 3還是.NET 5的發布,新技術都在向前發展,將舊技術甩在身後。這不是壞事。我們出於多種原因開發了新的做事方法,但它們常常圍繞一個關鍵點:新方法更好。
  • 微軟.NET 5.0 Preview 5 發布:改進 RyuJIT編譯器
    .NET 5.0 Preview 5 發布了,此版本帶來了一些小的新特性和性能改進,目前需要使用 Visual Studio 2019 16.7 才能體驗到 .NET 5.0,macOS 的尚不支持 .NET 5.0。
  • 微軟.NET 官宣跨平臺 UI 框架 MAUI
    IT之家5月21日消息 在Build 2020開發者大會上,微軟宣布推出 .NET 官宣跨平臺 UI 框架 MAUI,全稱是 .NET Multi-platform App UI。正式版將在 .NET 6 和大家見面。微軟介紹,你可以使用.NET進行任何構建。
  • 微軟. NET Framework 4.7 獨立離線安裝包發布下載
    感謝IT之家網友 洛克人EXE後援團光卡 的投稿IT之家5月4日消息 在Windows10創意者更新中,微軟集成了.NET Framework 4.7功能和特性,但是像Win10一周年更新、Win7、Win8.1舊系統就需要離線或在線單獨進行安裝.NET Framework
  • net5發布,NET會就此「支稜起來」嗎?
    在全面開源的趨勢之下,微軟可算時跟上了時代的腳步,作為微軟最早邁向開源的重要象徵之一,.NET5的發布對微軟,以及.NET的使用者都意義非凡。未來,微軟會將所有的.NET 組件整合到一個產品下,用戶可以根據需求使用.NET的某個部分,不用專程下載安裝所有內容。
  • 微軟介紹Windows 10 on ARM特性
    IT之家12月6日消息 今天,在高通科技峰會的主題演講中,微軟的Terry Myerson簡單討論了一下運行在ARM架構處理器上的Windows 10。根據Myerson的說法,Windows 10 on ARM將為用戶帶來一種全新的工作方式。
  • 微軟發布開源.NET包管理器 —— NuPack
    10月6日,微軟發布一個初始版的NuPack,這是一個開源的包管理器,可用於微軟的.NET軟體開發平臺。早在兩年前51CTO就提出過疑問,《開源.NET項目是否受到微軟冷遇?》
  • 微軟正式發布VS 2013及VS Online服務
    【IT168 資訊】儘管在幾周前,微軟就已經提供了Visual Studio 2013的購買與下載服務,但直到北京時間昨日晚,這家IT巨頭才舉辦了Visual Studio 2013的發布會。此次發布會微軟進行了在線的全球直播(點擊這裡查看)。
  • 早高FENG:蘋果發布iOS/iPadOS 14.4 Beta 1/微軟更新鬧鐘和時鐘應用
    目前還不知道 iOS 14.4 更新中包含哪些內容,但它可能側重於修復 iOS 14.3 版本中包含的錯誤和性能改進。安裝了相應配置文件的用戶可以進行更新。 谷歌高通宣布:為 Android 提供為期 4 年支持
  • 微軟Edge WebView2基於Chromium 適用於.NET 5等
    微軟Edge WebView2基於Chromium 適用於.NET 5等 來源:IT之家 • 2020-11-23 15:40:13
  • 微軟.NET 5.1迎來RC1版本 有望下月正式發布
    繼在上個月的第八個預覽版本時達成「功能完成」的突破之後,.NET 5.1 現又迎來了 RC1,意味著其已做好投入生產環境的「上線」準備。感興趣的開發人員,可嘗試在生產環境中部署 .NET 5.1 代碼。在經歷了又一個候選發布(RC2)之後,其有望在下月迎來正式發布。
  • 微軟終極版DX12攜眾多新特性來襲!光線追蹤再進步!
    其中,前三者是之前微軟已經表示會加入到DirectX 12 Ultimate中的,而VRS則是最新加入的。目前有30多款已上市以及即將上市的遊戲都表示支持DXR 1.1,《我的世界》就是其中一款,微軟更是把其中的Path tracing路徑渲染來演示XBOX Series X支持光追。Mesh ShaderMesh著色器也是本次DirectX 12 Ultimate的特性之一。Mesh著色器將原來流程中的各種著色器統一,形成一條新的渲染管線。
  • 微軟發布下載最新Win10 ISO鏡像:版本號Build 21286
    自從去年10月初的Build 20231之後,微軟就沒有更新過Windows 10的ISO鏡像了,直到今天。在推送Build 21286預覽版的同時,微軟上線了對應的ISO鏡像文件,供Dev通道的Insider會員免費下載使用。
  • 微軟Surface Headphones 2 耳機通過 FCC 認證,即將發布
    IT之家5月2日消息 微軟Surface Headphones 耳機的聲音和噪音消除效果不錯,但該耳機缺少對AptX和其他音頻技術的支持,無法獲得更高質量的聲音。根據本周早些時候發布的多項認證,微軟計劃使用改進的藍牙技術和一些新功能來更新Surface Headphones。微軟希望藉助Surface Headphones 2和Surface Earbuds,以便將Surface的設計元素服務範圍擴展到音頻領域。
  • 這幾款遊戲即將離開微軟Xbox遊戲通行證
    微軟近年來正在大規模宣傳Xbox One和PC平臺的遊戲通行證裡又收錄了哪些作品,但可能有玩家忘記了這些遊戲進通行證也是有時限的,而且微軟對哪些遊戲將要離開通行證這件事就不怎麼宣傳了。當前通行證裡有五款遊戲被列為「即將離開」,它們分別是:《古墓麗影:暗影》、《狂怒》、《小輪車冒險Pro》、《Jackbox派對包2》和《傳奇米老鼠2:雙重威力》。目前並不確定這五款遊戲究竟何時離開遊戲庫,不過時間應該不會太久。根據微軟的解釋,Xbox遊戲通行證裡的作品標註「即將離開」的作品將會在兩周內從遊戲庫中移除。
  • .NET Framework 3.5
    .net Framework是微軟的.net框架程序的運行庫。.NET Framework 3.5用於構建具有視覺上引人注目的用戶體驗。NET Framework 3.5是支持生成和運行下一代應用程式和XML Web Services 的內部Windows 組件。