.NET 7 預覽版 1 已釋出

2022-02-19 09:00:58

伴隨著 。.NET 7 Preview 1 包括對 API 的可空註釋、持續的 JIT 編譯器優化、新的 API 以及對更多熱過載方案的支援。

目前 .NET 7 Preview 1 已通過 ,適用於 Windows、macOS 和 Linux 。

Microsoft.Extensions 的可空(nullable)註釋

.NET  在註釋 Microsoft.Extensions.* 庫,以實現可空性(nullability)方面取得了進展。在 .NET 7 Preview 1 中,以下庫已針對可空性進行了註釋:

  • Microsoft.Extensions.DependencyInjection.Abstractions
  • Microsoft.Extensions.Logging.Abstractions
  • Microsoft.Extensions.Primitives
  • Microsoft.Extensions.FileSystemGlobbing
  • Microsoft.Extensions.DependencyModel
  • Microsoft.Extensions.Configuration.Abstractions
  • Microsoft.Extensions.FileProviders.Abstractions
  • Microsoft.Extensions.FileProviders.Physical
  • Microsoft.Extensions.Configuration
  • Microsoft.Extensions.Configuration.Binder
  • Microsoft.Extensions.Configuration.CommandLine
  • Microsoft.Extensions.Configuration.EnvironmentVariables
  • Microsoft.Extensions.Configuration.FileExtensions
  • Microsoft.Extensions.Configuration.Ini
  • Microsoft.Extensions.Configuration.Json

到 .NET 7 正式釋出時,計劃為所有 Microsoft.Extensions.* 庫新增可空性註釋。可以在  處關注進度。

可觀察性(繼續改進跟蹤 API)

繼續改進跟蹤 API:

  • 新增 ActivityContext.TryParse 過載,以允許解析和建立 ActivityContext 物件,包括是否從遠端父級傳播活動上下文()。
  • 新增 Activity.IsStopped() 方法, 指示 Activity 物件是否停止()。

程式碼生成

  • 將一些舊式內部函數轉換為 NamedIntrinsic 。 
  • 將額外的二進位制操作新增到 RangeCheck 分析中。
  • [JIT] [61620] 針對 *x = dblCns 優化 ARM64;
  • CoreRT 支援 ARM64&Unix 。
  • 基於覆蓋的 FMA codegen 優化 

動態 PGO

Arm64

互操作:p/Invoke 程式碼生成

.NET 7 將在 .NET 6 中原型化的 p/invoke 源生成器整合到 dotnet/runtime 中,並且一直在轉換執行時庫以使用它。這意味著轉換後的 p/invokes 與 AOT 相容,不再需要在執行時生成 IL 存根。

未來打算讓 p/invoke 源生成器在執行時之外可用, 中關注剩餘的工作。

System.Text.Json 中的新 API

System.Text.Json 附帶了一些小的增強功能:

  • 開發人員現在可以存取 JsonSerializerOptions :由 System.Text.Json 內部使用的預設單例()。
  • 新增一個 JsonWriterOptions.MaxDepth 屬性,並確保此值來自序列化的等效 JsonSerializerOptions.MaxDepth 屬性()。
  • Patch方法新增到 System.Net.Http.Json()。

熱過載改進

下列更改適用於  Blazor WebAssembly 和 .NET 的 C# 熱過載

  • 向現有方法新增靜態 lambda
  • 將捕獲這個的 lambda 新增到已經有至少一個捕獲這個的 lambda 的現有方法中
  • 向現有類新增新的靜態或非虛擬實體方法
  • 向現有類新增新的靜態欄位
  • 新增新類

已知的問題:

  • 不支援新增類中的範例欄位
  • 現有或新類中新新增的方法和欄位對反射不可見

可以在 中關注進度

 

釋出公告:

展開閱讀全文