.NET 5 的新功能

.NET 5 是 3.1 之後的下一個主要 .NET Core 版本。 我們基於兩個原因,將這個新版本命名為 .NET 5,而不是 .NET Core 4:

  • 我們已略過版本號碼 4.x,以避免與 .NET Framework 4.x 混淆。
  • 我們已從名稱卸載 「Core」,強調這是 .NET 未來的主要實作。 .NET 5 支援比 .NET Core 或.NET Framework更多的應用程式和平臺。

ASP.NET Core 5.0 是以 .NET 5 為基礎,但會保留名稱 「Core」,以避免與 ASP.NET MVC 5 混淆。 同樣地,Entity Framework Core 5.0 會保留名稱 「Core」,以避免與 Entity Framework 5 和 6 混淆。

.NET 5 包含下列改進功能與 .NET Core 3.1 相較之下的新功能:

.NET 5 不會取代 .NET Framework

.NET 5 和更新版本是 .NET 的主要實作,但仍支援.NET Framework 4.x。 沒有計劃將下列技術從 .NET Framework移植到 .NET 5,但 .NET 中有替代方案:

技術 建議的替代方案
Web Form ASP.NET Core BlazorRazor 頁面
Windows 工作流程 (WF) Elsa-Workflows

Windows Communication Foundation

Windows Communication Foundation 的原始實作 (WCF) 僅支援 Windows。 不過,有可從 .NET Foundation 取得的用戶端埠。 它完全開放原始碼、跨平臺,並由Microsoft支援。 核心 NuGet 套件如下所列:

補充上述用戶端程式庫的伺服器元件可透過 CoreWCF取得。 自 2022 年 4 月起,Microsoft正式支援 CoreWCF。 不過,針對 WCF 的替代方案,請考慮 gRPC

.NET 5 不會取代 .NET Standard

新的應用程式開發可以針對所有專案類型指定 net5.0 Target Framework Moniker (TFM) ,包括類別庫。 簡化 .NET 5 工作負載之間的共用程式碼:您只需要 net5.0 TFM。

針對 .NET 5 應用程式和程式庫, net5.0 TFM 會結合並取代 netcoreappnetstandard TFM。 不過,如果您打算在 .NET Framework、.NET Core 和 .NET 5 工作負載之間共用程式碼,您可以指定 netstandard2.0 為 TFM 來執行此動作。 如需詳細資訊,請參閱 .NET Standard

C# 更新

撰寫 .NET 5 應用程式的開發人員可以存取最新的 C# 版本和功能。 .NET 5 與 C# 9 配對,這可為語言帶來許多新功能。 以下是一些重點:

  • 記錄:具有以值為基礎的相等語意和新 with 運算式所支援的非破壞性變異的參考型別。

  • 關係模式比對:將模式比對功能延伸至關係運算子,以進行比較評估和運算式,包括邏輯模式 - 新的關鍵字 andornot

  • 最上層語句:為了加速 C# 的採用和學習, Main 可以省略方法,而應用程式就像下列範例一樣簡單:

    System.Console.Write("Hello world!");
    
  • 函式指標:公開下列中繼語言的語言建構, (IL) opcode: ldftncalli

如需可用 C# 9 功能的詳細資訊,請參閱 C# 9 的新功能

來源產生器

除了一些醒目提示的新 C# 功能之外,來源產生器也會進入開發人員專案。 來源產生器允許在編譯期間執行的程式碼,以檢查程式,並產生與其他程式碼一起編譯的其他檔案。

如需來源產生器的詳細資訊,請參閱 C# 來源產生器和C# 來源產生器範例簡介。

F# 更新

F# 是 .NET 功能性程式設計語言,而使用 .NET 5,開發人員可以存取 F# 5。 其中一項新功能是插入字串,類似于 C# 中的插補字串,甚至是 JavaScript。

let name = "David"
let age = 36
let message = $"{name} is {age} years old."

除了基底字元串插補之外,還有具類型的插補。 使用具類型插補時,指定的型別必須符合格式規範。

let name = "David"
let age = 36
let message = $"%s{name} is %d{age} years old."

此格式類似于 sprintf 根據型別安全輸入來格式化字串的函式。

如需詳細資訊,請參閱 F# 5 的新功能

Visual Basic 更新

.NET 5 中沒有 Visual Basic 的新語言功能。 不過,使用 .NET 5 時,Visual Basic 支援會延伸至:

描述 dotnet new 參數
主控台應用程式 console
類別庫 classlib
WPF 應用程式 wpf
WPF 類別庫 wpflib
WPF 自訂控制項程式庫 wpfcustomcontrollib
WPF 使用者控制項程式庫 wpfusercontrollib
Windows Forms (WinForms) 應用程式 winforms
Windows Forms (WinForms) 類別庫 winformslib
單元測試專案 mstest
NUnit 3 測試專案 nunit
NUnit 3 測試項目 nunit-test
xUnit 測試專案 xunit

如需 .NET CLI 中專案範本的詳細資訊,請參閱 dotnet new

System.Text.Json 新功能

System.Text.Json中有 和 的新功能:

另請參閱