微軟發(fā)布.NET 5.0 RC1,未來將只有一個(gè).NET

本周早些時(shí)候,微軟發(fā)布了.NET 5.0 RC1,這是.NET 5 在11 月正式發(fā)布之前的第一個(gè)“go-live”版本。.NET 5 是.NET 生態(tài)系統(tǒng)的統(tǒng)一平臺(tái),將所有組件打包成一個(gè)跨平臺(tái)包。新版本包含了.NET Core 3 的很多改進(jìn),包括新的語言版本(C# 9 和F# 5),以及對(duì)Windows ARM64 的支持。.NET 5 從 Preview 8 開始就具備了完整的特性,并且已經(jīng)可以在生產(chǎn)環(huán)境中使用。
.NET 5 是去年發(fā)布的,該項(xiàng)目的主要目標(biāo)之一是提供一個(gè)單一的、跨平臺(tái)的.NET 運(yùn)行時(shí)和具有統(tǒng)一運(yùn)行時(shí)行為和開發(fā)者體驗(yàn)的框架。在第一次宣布這個(gè)項(xiàng)目時(shí),.NET 團(tuán)隊(duì)的程序經(jīng)理 Richard Lander 強(qiáng)調(diào)了這個(gè)項(xiàng)目的重要性:
未來只會(huì)有一個(gè).NET,可以支持 Windows、Linux、macOS、iOS、Android、tvOS、watchOS 和 WebAssembly,等等。我們將引入新的.NET API、運(yùn)行時(shí)功能和語言特性作為.NET 5 的一部分。此外,我們想清楚地告訴大家,.NET 5 是.NET 平臺(tái)的未來。

圖片來源:https://devblogs.microsoft.com/dotnet/introducing-net-5/
從那個(gè)時(shí)候以來,一些情況發(fā)生了變化,主要是由于技術(shù)方面的挑戰(zhàn)和新冠病毒造成的放緩。因此,一些最初宣布的特性被放到了.NET 6 中。被延遲的特性包括原生的提前編譯 (AOT),它最近被確認(rèn)為在未來進(jìn)一步采用.NET 的一個(gè)關(guān)鍵特性。
即使少了一些特性,.NET 5 仍然包含了很多來自.NET Core 3 的重要改進(jìn),包括新的語言版本 (C# 9 和 F# 5) 和對(duì) Windows ARM64 的支持。其他重要的特性包括改進(jìn)的 JsonSerializer API、單文件應(yīng)用程序、一組完整的可空引用類型注解,以及對(duì)庫、垃圾回收器 (GC) 和即時(shí)編譯器 (JIT) 的眾多性能改進(jìn)。
在最初的RC1 版聲明中,Lander 也提到了C#和System.Text.Json.JsonSerializer 的記錄類,它“是一個(gè)單獨(dú)的特性,也是一個(gè)很好的組合,特別是當(dāng)你花費(fèi)大量時(shí)間為反序列化JSON 對(duì)象編寫POCO 類型時(shí)”。記錄類是不可變的數(shù)據(jù)類型(C# 9 中最關(guān)鍵的特性之一),也是System.Text.Json 的一個(gè)改進(jìn),允許將Json 對(duì)象反序列化為記錄類型。
隨著新的候選發(fā)行版被標(biāo)記為“go-live”,.NET 5 也為在生產(chǎn)環(huán)境中使用做好了準(zhǔn)備。在.NET 5 于11 月正式發(fā)布之前,預(yù)計(jì)還會(huì)有另一個(gè)候選版本。.NET 5 的所有當(dāng)前和未來版本都可以在這里找到。當(dāng)前版本支持Linux、macOS 和Windows。要在Windows 上使用.NET 5 RC1,需要安裝Visual Studio 最近的預(yù)覽版(v16.8 Preview 3)。在本文發(fā)布時(shí),最新的Visual Studio for Mac 預(yù)覽版(v8.8 Preview 3) 只支持之前的.NET 5 版本(Preview 8)。
