次の方法で共有


.NET 9 の新機能

.NET 9 の新機能について説明し、その他のドキュメントへのリンクを参照してください。

.NET 8の後継となる .NET 9 では、クラウドネイティブ アプリとパフォーマンスに特に重点を置きます。 18か月間、標準期間サポート (STS) リリースとしてサポートされます。 こちらから.NET 9 をダウンロードできます

.NET 9 の新しい機能として、エンジニアリング チームは .NET 9 プレビュー更新を GitHub ディスカッションに投稿します。 これは、質問をしたり、リリースに関するフィードバックを提供したりするのに最適な場所です。

.NET ランタイム

.NET 9 ランタイムには、トリミングをサポートする機能スイッチ用の新しい属性モデルが含まれています。 新しい属性を使用すると、ライブラリが機能領域の切り替えに使用できる 機能スイッチを定義できます。

ガベージ コレクションには、サーバー GC の代わりに既定で使用できるアプリケーション サイズに動的に適応する機能が含まれます。

ランタイムには、ループの最適化、インライン化、Arm64 ベクター化、コード生成など、多数のパフォーマンスの向上も含まれています。

詳細については、「.NET 9 ランタイムの新機能」を参照してください。

.NET ライブラリ

System.Text.Json は、nullable 参照型の注釈をサポートし、型から JSON スキーマをエクスポート可能にします。 新しいオプションが追加され、書き込まれた JSON のインデントをカスタマイズし、1 つのストリームから複数のルート レベルの JSON 値を読み取ります。

LINQ では、CountBy および AggregateBy という新しいメソッドにより、GroupByを介して中間グループを割り当てることなく、キーごとに状態を集計することが可能になります。

コレクション型の場合、System.Collections.Generic.PriorityQueue<TElement,TPriority> 型には、キュー内の項目の優先順位を更新に使用できる新しい Remove(TElement, TElement, TPriority, IEqualityComparer<TElement>) メソッドが含まれます。

暗号化の場合、.NET 9 では、CryptographicOperations 型に新しいワンショット ハッシュ メソッドが追加されます。 また、KMAC アルゴリズムを使用する新しいクラスも追加されます。

リフレクションの場合、新しい PersistedAssemblyBuilder 型を使用すると、出力されたアセンブリが保存されます。 この新しいクラスには PDB のサポートも含まれています。つまり、シンボル情報を出力し、それを使用して生成されたアセンブリをデバッグできます。

TimeSpan クラスには、(doubleではなく) int から TimeSpan オブジェクトを作成できる新しい From* メソッドが含まれています。 これらのメソッドは、浮動小数点計算の本質的な不正確さによって発生するエラーを回避するのに役立ちます。

詳細については、「.NET 9 ライブラリの新機能」を参照してください。

.NET SDK

.NET 9 SDK には、ワークロード セットが導入されています。このセットでは、明示的に更新されるまで、すべてのワークロードが 1 つの特定のバージョンにとどまります。 ツールの場合、dotnet tool install の新しいオプションを使用すると、ツールの作成者ではなく、ツールが対象とするバージョンよりも新しい .NET ランタイム バージョンでツールの実行を許可するかどうかを決定できます。 さらに:

  • 単体テストでは、テストを並列で実行できる MSBuild 統合が向上しています。
  • NuGet セキュリティ監査は、既定では、直接および推移的なパッケージ参照の両方で実行されます。
  • ターミナル ロガーは既定で有効になっており、使いやすさも向上しています。 たとえば、ビルドの最後に、失敗と警告の合計数が集計されるようになりました。
  • 新しい MSBuild スクリプト アナライザー ("ビルド チェック") を使用できます。
  • SDK は、.NET SDK と MSBuild の間のバージョンの不一致を検出して調整できます。
  • dotnet workload history コマンドは、現在の .NET SDK インストールのワークロードのインストールと変更の履歴を示します。

詳細については、「SDK for .NET 9の新機能」を参照してください。

AI の構成要素

.NET 9 では、Microsoft.Extensions.AIMicrosoft.Extensions.VectorData パッケージを通じて、統一されたC#抽象レイヤーが導入されています。 これらの抽象化により、小規模および大規模言語モデル (SLB と LLM)、埋め込み、ベクター ストア、ミドルウェアなど、AI サービスとの対話が容易になります。

.NET 9 には、AI 機能を拡張する新しいテンソル型も含まれています。 TensorPrimitives と新しい Tensor<T> タイプは、多次元データの効率的なエンコード、操作、計算を可能にすることで、AI 機能を拡張します。 これらの型は、System.Numerics.Tensors パッケージの最新リリースで確認できます。

TensorPrimitives

  • メソッドのスコープが拡張され、MathMathFINumber<T> に似た数値演算が追加され、値の範囲に対する操作が含まれるようになり、オーバーロードの数が40から約200に増えました。
  • パフォーマンスの強化: 多くの操作が SIMD 最適化され、パフォーマンスが向上しました。
  • ジェネリック オーバーロード: 特定のインターフェイスを実装する任意の型 T をサポートし、.NET の浮動小数点値の範囲を超えて拡張します。

Tensor<T>

  • 効率的な算術演算のために TensorPrimitives に基づいて構築されます。
  • 可能な限りゼロ コピーを使用して、AI ライブラリ (ML.NET、TorchSharp、ONNX Runtime) との効率的な相互運用を提供します。
  • インデックス作成とスライス操作を使用して、簡単かつ効率的なデータ操作を可能にします。
  • .NET 9 では は試験的な です。

ML.NET

ML.NET は、カスタム機械学習モデルを .NET アプリケーションに統合できるようにする、オープンソースのクロスプラットフォーム フレームワークです。

ML.NET 4.0 では、次の機能強化が行われます。

  • MLContext オプションをプログラムで構成する新しい方法。
  • ONNX モデルを Streamとして読み込みます。
  • DataFrame の機能強化。
  • トークナイザーの新機能。
  • (試験段階) Llama ファミリーおよび Phi ファミリーの TorchSharp ポートのモデル。
  • (試験段階)CausalLM パイプライン API。

詳細については、「ML.NETの新機能」を参照してください。

トークナイザー

Microsoft.ML.Tokenizers ライブラリは、テキストをトークンにエンコードしてデコードする機能を .NET 開発者に提供します。 AI シナリオでは、ローカル モデルを使用するときにコンテキストの管理、コストの計算、テキストの前処理を行うために重要です。

最新のリリースでは、トークナイザーの重要な新機能が導入されています。

  • GPT (3、3.5、4、4o、o1) および Llam3 モデル用の Tiktoken
  • Llama および Mistral モデル向け Llama (SentencePiece に基づく)
  • コード生成モデル用のCodeGen、例えばcodegen-350M-mono
  • Microsoft Phi2 モデル用の Phi2 (CodeGen に基づく)
  • WordPiece
  • WordPieceに基づくBertは、optimum--all-MiniLM-L6-v2などのBert対応モデルをサポートします。

.NET アスパイア

.NET Aspire は、監視可能な運用対応アプリを構築するための強力なツール、テンプレート、パッケージのセットです。.NET Aspire の最新リリースには、ダッシュボードとリソース ライフサイクル管理の機能強化が含まれています。 また、開発中の柔軟性を高めるために、新しい統合と API も追加されます。 .NET Aspire 9 は、.NET 9 アプリと .NET 8 アプリの両方で動作します。 詳細については、「.NET Aspire 9の新機能」を参照してください。

ASP.NET Core

.NET 9 で構築された ASP.NET Core アプリは、既定でセキュリティで保護され、事前コンパイルのサポートが拡大され、監視とトレースが強化されています。 パフォーマンスが向上すると、スループットが向上し、起動時間が短縮され、メモリ使用量が少なくなります。 .NET 9 の ASP.NET Core には次のものが含まれます。

  • JavaScript や CSS などの静的ファイルの処理をビルド時と発行時に最適化し、指紋による自動バージョン管理を使用します。
  • Blazor: 新しいハイブリッドおよび Web アプリ テンプレート、コンポーネント レンダリング モードの検出、サーバー レンダリングによる新しい再接続エクスペリエンス。
  • API: Microsoft.AspNetCore.OpenAPIを使用した OpenAPI ドキュメント生成のサポートが組み込まれており、ネイティブ AOT のサポートが強化されました。
  • 認証と承認のための新しい API を使用してセキュリティを強化しました。
  • Linux での信頼された開発証明書のセットアップが容易になり、開発中に HTTPS が有効になります。

これらは、.NET 9 の機能と機能強化の一部にすぎません。 詳細については、「ASP.NET Core 9.0の新機能」を参照してください。

.NET MAUI

.NET 9 の .NET マルチプラットフォーム アプリ UI (.NET MAUI) の焦点は、パフォーマンスと信頼性の向上、およびデスクトップアプリケーションとモバイル アプリケーションのより深い統合です。 .NET MAUI には、iOS および Mac Catalyst の CollectionViewCarouselView の新しいよりパフォーマンスの高い実装、既存のコントロールの更新、新しいアプリ ライフサイクル イベント、ネイティブ AOT とトリミングの機能強化が含まれており、アプリのサイズと起動時間が向上します。 さらに:

  • Windows では、新しい TitleBar デスクトップ コントロールを使用できます。
  • 新しい HybridWebView コントロールを使用すると、ReactJS、Vue.js、Angular などのフレームワークから JavaScript 対応コンテンツを簡単に取り込めます。
  • Entry では、追加のキーボード モードがサポートされるようになりました。
  • コントロール ハンドラーは、可能な場合にコントロールから自動的に切断します。
  • MainPage は非推奨となり、Application.CreateWindow(IActivationState) クラスをオーバーライドしてアプリのプライマリ ページを設定できます。

これらの新機能の詳細については、「.NET MAUI for .NET 9の新機能」を参照してください。

EF Core

Entity Framework Core には、Azure Cosmos DB for NoSQL のデータベース プロバイダーに対する大幅な更新が含まれています。 また、AOT コンパイルと事前コンパイル済みクエリに向けたいくつかの手順も含まれています。その他の機能強化も含まれています。 詳細については、「EF Core 9の新機能」を参照してください。

C# 13

C# 13 には .NET 9 SDK が付属しており、次の新機能が含まれています。

  • params コレクション
  • 新しい lock の型とセマンティクス
  • 新しいエスケープ シーケンス - \e
  • メソッド グループ自然型の改善
  • オブジェクト初期化子での暗黙的なインデクサー アクセス
  • ref ローカル変数とunsafe コンテキストを反復子および非同期メソッドで有効にする
  • ref struct 型を有効にしてインターフェイスを実装する
  • ジェネリックの型パラメーターの引数として ref 構造体型を許可します。
  • partial 型で、部分的なプロパティとインデクサーを使用できるようになりました。
  • オーバーロード解決の優先順位を使用すると、ライブラリ作成者は 1 つのオーバーロードを他のオーバーロードよりも優れた方法で指定できます。

さらに、C# 13 では、field に基づくプロパティというプレビュー機能が追加されています。

詳細については、「C# 13の新機能」を参照してください。

F# 9

F# 9 には .NET 9 SDK が付属しており、次の新機能が含まれています。

  • null 許容参照型
  • 判別可能なユニオン .Is* プロパティ
  • 部分的にアクティブなパターンは、単位オプションではなくブール値を返すことができます
  • 引数が指定されている場合は、拡張メソッドを組み込みプロパティに優先する
  • 空の本文のコンピュテーション式
  • ハッシュ ディレクティブは、文字列以外の引数を受け取ることができます
  • fsi の拡張 #help ディレクティブにより、読み取り-評価-出力ループ (REPL) でドキュメントを表示します。
  • エラー コードで FS プレフィックスをサポートして警告を無効にする #nowarn を許可する
  • 非再帰関数または let バインド値に対する TailCall 属性に関する警告
  • 属性ターゲットを適用する
  • コレクションのランダム関数
  • F# リストとセットに対する C# コレクション表現のサポート
  • さまざまな開発者の生産性、パフォーマンス、ツールの改善

詳細については、「F# 9の新機能」を参照してください。

Windows Presentation Foundation

.NET 9 の WPF では、テーマの強化など、最新のアプリを構築するためのサポートが強化されています。

  • Windows Fluent テーマのサポート。
  • Windows の明るいモードと暗いモードのテーマのサポートが追加されました。
  • テーマで Windows アクセントカラーがサポートされるようになりました。
  • ハイフンベースの合字をサポートするようにフォントレンダリングが改善されました。
  • BinaryFormatter はサポートされなくなりました。

詳細については、「.NET 9の WPF の新機能」を参照してください。

Windows フォーム

.NET 9 の WinForms では、新しいテーマ、非同期開発の機能強化などがサポートされます。

  • FormTaskDialog は今、ShowDialogAsync をサポートしています。 (試験的な機能)
  • BinaryFormatter はサポートされなくなりました。
  • Windows でサポートされているように、アプリをダーク モードでレンダリングするための試験的なサポート。
  • FolderBrowserDialogToolStrip に若干の改善がありました。
  • System.Drawing ライブラリには、GDI+ 効果のラップ、ReadOnlySpanのサポート、相互運用コード生成の向上など、多くの機能強化が行われました。

詳細については、「.NET 9用 Windows フォームの新機能」を参照してください。

関連項目