.NET 10 LTS リリース: JIT チューニング、C# 14 の field キーワード、NativeAOT の向上
マイクロソフトが .NET 10 を 3 年間サポートの LTS リリースとしてリリース。ランタイムには AVX10.2、よりスマートなインライン展開とデバーチャライゼーションを搭載。C# 14 ではフィールド バッキング プロパティと拡張ブロックが導入。ASP.NET Core、EF Core、MAUI も注目のアップデート。

.NET 10 が長期サポート (LTS) リリースとしてリリースされ、3 年間のパッチが提供されます。ランタイム チームは多忙でした。JIT はよりスマートなインライン展開とメソッドのデバーチャライゼーションを行うようになり、スタック割り当てはより積極的に行われ、最先端の SIMD を必要とするユーザー向けに AVX10.2 サポートが追加されました。NativeAOT も改善され、構造体引数のコード生成がより効率的になりました。ループ反転がより頻繁に適用されるようになり、タイトなループでさらなるパフォーマンス向上が期待できます。
ライブラリ面では、耐量子暗号が大幅に強化され、ML-DSA、HashML-DSA、Composite ML-DSA 向けの Windows CNG サポートが追加されました。AES KeyWrap with Padding がツールボックスに追加されました。JSON シリアル化では、重複プロパティを禁止できるようになり、厳密な設定が可能になりました。また、ストリーミング用の PipeReader サポートも追加されました。ネットワーキングでは、WebSocketStream (よりクリーンな API) と macOS クライアント向けの TLS 1.3 が追加されました。Windows のプロセス管理では、シグナル分離を改善するプロセス グループ サポートが追加されました。
C# 14: フィールド バッキング プロパティ、拡張ブロックなど
最も注目される言語アップデートは、プロパティ アクセサー内での field コンテキスト キーワードです。少しカスタム ロジックが必要になっただけで自動プロパティを解体する代わりに、コンパイラ生成のバッキング フィールドを直接参照できるようになります。これはボイラープレートを削減する品質向上です。
拡張ブロック (extension) により、静的拡張メソッドと拡張プロパティ (静的およびインスタンスの両方) が利用可能になります。これはライブラリ作成者にとって長年の痛点でした。nameof が List<> のような非バインド ジェネリック型でも機能するようになりました。Span<T> と ReadOnlySpan<T> の暗黙的変換が第一級サポートされ、スパンベースの API がより簡潔になります。ラムダ パラメーター修飾子 (ref、in、out) がすべてのパラメーター型を指定せずに使用可能になりました。部分コンストラクターと部分イベントで C# の部分型機能が完成します。null 条件付き代入 (?.) とユーザー定義の複合代入演算子 (+=、-- など) も含まれています。
ASP.NET Core、EF Core、SDK
ASP.NET Core 10.0 では、Blazor WebAssembly の事前読み込み、自動メモリプールのエビクション、強化されたフォーム検証、改善された診断、Identity のパスキー サポートが追加されました。ミニマル API の領域は引き続き拡大し、OpenAPI の改良も行われています。
EF Core 10 では、名前付きクエリ フィルターが導入されました。ついにエンティティごとに複数のフィルターを持ち、醜いハックなしで選択的に無効化できるようになります。LINQ 変換がよりスマートになり、パフォーマンスが向上し、Azure Cosmos DB のサポートがより統合されました。
SDK は dotnet test で Microsoft.Testing.Platform (MTP) をデフォルトで使用するようになり、CLI コマンドの順序が標準化され、ネイティブのタブ補完スクリプトが生成されるようになりました。コンソール アプリは Dockerfile なしでネイティブにコンテナー イメージを生成でき、コンテナー イメージ形式を明示的に設定できます。dotnet tool exec により、ツールを永続的にインストールせずにワンショット実行が可能になり、新しい dnx スクリプトは軽量な実行パスを提供します。--cli-schema による CLI 内省は、ツール作成者にとって便利な機能です。
.NET MAUI では、MediaPicker の改善 (複数選択、画像圧縮)、WebView リクエスト インターセプト、Android API 35/36 のサポートが追加されました。Windows Forms と WPF は、どちらも品質向上と Fluent スタイルの洗練が施されています。
結論: .NET 10 は、全体的に有意義な改善を伴う堅実な LTS リリースです。ランタイムの強化、C# 14 の field キーワード、SDK のコンテナー サポートがハイライトです。まだ .NET 8 以前を使用している場合、これは移行の良いターゲットです。
ディスカッション
0 件のコメント
最初のコメントを投稿しましょう。