這幾天微軟.NET 團隊發佈了.NET 5 Preview 1, 如約而至。很興奮,由於.NET Core和.NET Framework終於實現了大一統,同時也很期待,期待.NET 5能給咱們帶來哪些好的新特性。正則表達式
讓咱們先把時間撥回到2019年...編程
1、2019年.NET 5的提早劇透app
去年2019年 Richard提早劇透了.NET 5 https://devblogs.microsoft.com/dotnet/introducing-net-5/。這篇文章中,咱們先回顧並畫一下重點:框架
1. NET Core 3.x以後會統一升級到.NET 5,一個統一的平臺 A unified platformide
.NET 5 = .NET Core vNext性能
直接跳過.NET Core 4, 緣由是.NET Core 4.x和.NET Framework 4.*.* 會產生版本上的混淆,索性就直接.NET 5,spa
.NET 5 名字中直接去掉了.NET Core, 爲了統一.NET的命名,目標就是隻有一個.NET, 操作系統
統一一個運行時和框架,框架能夠在任何地方運行,具有統一的運行行爲和開發體驗翻譯
充分利用.NET Core、.NET Framework、Mono、Xamarin來擴展.NET 功能code
統一單個代碼庫,微軟.NET 開發團隊和社區共同維護、發展
2. .NET 5 定位與Windows, Linux, macOS, iOS, Android, tvOS, watchOS and WebAssembly等全平臺、全場景開發
3. .NET 5的新特性
Java互操做性將在全部平臺上可用。
在多個操做系統上將支持Objective-C和Swift的互操做性。
CoreFX將獲得擴展,以支持.NET的靜態編譯(ahead-of-time – AOT),更小的佔用空間並支持更多的操做系統。
4. 更高的吞吐量和生產效率
5. 快速啓動、更小的體積和內存使用
2、2020年3月16日 .NET 5 Preview 1 released
前幾天,3月16號,Scott Hunter 在博客中發佈了一個使人興奮的消息,.NET 5 Preview 1 第一個預覽版發佈。
https://devblogs.microsoft.com/dotnet/announcing-net-5-0-preview-1/
博文中,Scott Hunter說:「.NET Core 3 has become the fastest adopted version of .NET ever and we’ve gained another million more users in just the last year.」,
翻譯:「.NET Core 3成爲有史以來最快採用的.NET版本,而僅僅在去年,咱們又得到了100萬用戶。」
這個數據強有力地說明了.NET Core的強大吸引力。同時.NET Core 3.1也是一個LTS版本,包括咱們特來電在內的很多公司,都已經升級到了.NET Core 3.1這個版本。
寫到這,同時結合2019年的提早劇透,咱們對.NET 5 的期待很是高,可是在這裏,新發布的.NET 5 Preview 1, 你們要冷靜一下,爲何呢?
接下來,咱們詳細研究一下.NET 5 Preview 1的新特性:
1. 安裝部署
2. 升級現有項目
<TargetFramework>netcoreapp5.0</TargetFramework>
若是是ASP.NET Core項目
5.0.0-preview.1.20124.5
。5.0.0-preview.1.20120.4
。3. ASP.NET Core 5.0 的更新
貌似只修復和改進幾個功能點和些許Bug......
https://devblogs.microsoft.com/aspnet/asp-net-core-updates-in-net-5-preview-1/
ASP.NET Core in .NET 5 Preview 1 doesn’t include any major new features just yet, but it does include plenty of minor bug fixes.
4. 正則表達式性能提高
官方:咱們嘗試過的許多表達式中,這些改進一般可使吞吐量提升3-6倍,在某些狀況下甚至能夠提升更多。
5. RyuJIT中代碼質量改進
官方:每一個版本都對JIT生成的代碼進行了一系列性能改進。咱們將這些類型的改進稱爲「 CQ」或代碼質量。
6. 程序集加載診斷添加到事件管道
將程序集加載信息添加到事件管道。方便診斷分析程序集的加載狀況(與.NET Framework一塊兒使用Fusion Log Viewer的一部分)。可使用dotnet-trace經過如下命令來收集此信息:
dotnet-trace collect --providers Microsoft-Windows-DotNETRuntime:4:4 --process-id [process ID]
7. 事件管道探查器編程API
事件管道是在.NET Core 2.2中添加的新子系統和API,能夠在任何操做系統上執行性能和其餘診斷調查。在.NET 5.0中,事件管道已獲得擴展,以使探查器可以寫入事件管道事件。
這個相似於原來.NET Framework中往事件查看器中寫事件的功能。好比說能夠用到程序啓動、關閉、Crash時的信息記錄,方便程序問題跟蹤、分析。
8. GItHub倉庫合併
.NET 5中減小了用於構建和打包.NET 的GitHub存儲庫的數量。 代碼合併了,統一了!
dotnet /運行時(是dotnet / corefx,dotnet / coreclr和dotnet / core-setup)
dotnet / aspnetcore(在aspnet組織中有多個存儲庫)
dotnet / sdk(之前是dotnet / sdk,dotnet / cli)
9. 然而,不包含.NET 5的一些高級目標(不詳細展開說了,期待後續預覽版本了)
經過上面的梳理和整理,.NET 5 Prevew 1, 你們期待不要過高,畢竟是第一個預覽版。能夠理解爲合併現有代碼、修復部分Bug,爲.NET 5 打了個基線。
咱們能夠繼續等待並期待後續更新預覽版和GA版本的發佈。
以上是.NET 5 Preview 1的深度解讀和跟進。分享給你們。
周國慶
2020/3/23