.NET 5 Preview 1發布


去年年底,我們發布了.NET Core 3.03.1。這些版本添加了對桌面應用程序模型:Windows Forms(Winforms)、WPF,用於構建單頁應用程序的ASP.NET Blazor和基於消息傳遞的跨平台的gRPC支持。我們還添加了用於構建服務的模版,用於與gRPC進行通信的客戶端代碼生成、REST API服務等等。我們很高興看到.NET Core 3成為有史以來最快的.NET版本,並且在去年又增加了100萬用戶。
我們與這些版本進行了交流,以結束從.NET Framework移植到.NET Core 3應用程序模型的過程,我們已經移植了所有最常用的應用程序模型,並引入了更新的跨平台框架來替代我們未移植的框架。
當我們期待寫一個主要版本.NET 5時,我們將通過在.NET 5中包含的.NET移動設備應用程序模型(Xamarin),繼續將.NET統一到一個平台中。.NET 5將包含ASP.NET CoreEntity Framework CoreWinFormsWPFXamarinML.NET。整個平台將首次為所有應用城西模型使用統一的BCL(Base Class Libraries)。擁有比.NET Core.NET Framework都更高的版本5,這也清楚表明.NET 5.NET的未來,它是用於構建任何類型的應用程序的單個統一平台。
我們已經說過很多次了,但是我們將再次重申。.NET Core和后面的.NET 5是你應當使用.NET構建所有新應用程序。只要在Windows平台本身,.NET Framework仍將受到支持。我們將繼續提供安全性和錯誤修復,並保持網絡和加密API在最新狀態。將較舊的應用程序保留着.NET Framework上將保持安全並受到支持。

安裝.NET 5 Preview 1

今天,我們將發布.NET 5的第一個預覽版,該預覽版計划於今年11月下旬發布到GA(一般可用性)。

請參閱.NET 5 Preview 1中的ASP.NET Core更新,以了解今天發布的ASP.NET Core版本。

Preview 1包括首次對Windows ARM64的支持。今天發布的版本包括對.NET Core的運行時。我們希望Preview 2包含SDKASP.NET Core,但不包含WPFWindows Forms)。稍后的預覽版將包括WPFWindows Forms。對Windows ARM64的支持也將反向移植到.NET Core 3.1版本中。

更新現有項目

你可以通過更新目標框架來更新現有項目,如下所示:

<TargetFramework>netcoreapp5.0</TargetFramework>

.NET 5的高級目標

讓我重點介紹.NET 5的一些高級目標:

  • 統一的.NET SDK經驗:
  • 所有.NET 5應用程序中的單個BCL(Base Class Libraries)。現在的Xamarin應用程序使用Mono BCL,但是將轉向.NET Core BCL,從而改善了我們應用程序模型之間的兼容性。
  • 移動開發(Xamarin)已經集成到.NET 5中。這意味着.NET SDK將支持移動。例如,你可以使用dotnet new XamarinForms創建移動應用程序。
  • 支持多種平台的原生應用程序:支持應用程序的“單個設備”項目,該應用程序可以使用這些平台上的支持的原生控件在多個設備商運行,例如Window DesktopMicrosoft Duo(Android)iOS
  • 支持多種平台的Web應用程序:支持應用程序的Single Blazor項目,該應用程序可以在瀏覽器中,在移動設備上以及作為本機桌面應用程序運行(例如Windows 10x)。
    雲原生應用程序:高性能,單文件(.exe)<50MB的微服務,並支持在本地和在雲中構建多個項目(APIWeb前端,容器)。
  • 持續改進,例如:在BCL中更快的算法,運行時中對容器的更好支持,對HTTPS3的支持。

今天的第一個預覽版尚未包含支持這些高級目標的所有工作,但我們將在未來的預覽版中繼續宣布更多功能。

Preview 1的改進

Preview 1中有以下改進:

正則表達式性能改進

我們已對Regex引擎進行了重大改進。在我們嘗試過的許多表達式中,這些改進通常可以將吞吐量提高3-6倍,在某些情況下甚至可以提高更多。我們即將發布一篇博客文章,其中將詳細介紹這些改進。

RyuJIT中代碼質量的改進

每個版本都對JIT生成的代碼進行了一系列性能改進。我們將這些類型的改進稱為CQ或代碼質量。在大多數情況下,這些改進也適用於為准備運行的圖像生成的代碼。
Preview 1中有以下改進:

裝配負載診斷已添加到事件管道

我們已將程序集加載信息添加到事件管道。這項改進開始提供類似的診斷功能(與.NET Framework一起使用Fusion Log Viewer的一部分)的開始。現在,你可以使用dotnet-trace通過以下命令來收集此信息:

dotnet-trace collect --providers Microsoft-Windows-DotNETRuntime:4:4 --process-id [process ID]

使用事件管道的跟蹤程序集加載中介紹了工作流。您可以查看簡單測試應用程序的程序集加載信息。

事件管道探測器API

事件管道是我們在.NET Core 2.2中添加的新子系統和API,可以在任何操作系統上執行性能和其他診斷調查。在.NET 5.0中,事件管道已得到擴展,以使探查器能夠寫入事件管道事件。對於以前依靠ETW監視應用程序行為和性能的分析探查器,此方案至關重要。

GitHubrepo合並

作為.NET 5版本的一部分,我們減少了用於構建和打包.NETGitHub存儲庫的數量。Repo邊界對項目的許多方面都具有重大影響,包括構建和問題管理。使用.NET Core 1.0,我們在ASP.NETEF.NET Core中擁有超過100個存儲庫,通過此最新版本,我們現在可以一方面計入主存儲庫。我們還將幾乎所有存儲庫都移到了dotnet組織。
查看新的合並倉庫:

結束語

我們希望你對.NET 5正在進行的工作感到興奮!為.NET 5做准備的最好方法是將所有的.NET Core應用程序遷移到3.1 - 我們將使從.NET Core 3.1.NET 5的過渡盡可能輕松。而且,如果你仍在.NET Framework上構建應用程序,請放心將這些應用程序放在.NET Framework上,但請考慮對所有新應用程序使用.NET Core 3.1.NET有很多令人興奮的事情!

原文


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM