📦 リリース動向
公式安定版の推移とビルドパイプライン検証
現行の最新安定バージョンは .NET 10.0.12(2026年9月8日リリース、SDK 10.0.401および10.0.112を含む)です。既存の本番環境を保守しているチームやアップグレードを検討中の組織は、前世代の言語・ランタイム仕様を整理した筆者の C# 14コア機能の解説 をあわせてご参照ください。
次期 .NET 11 Release Candidate 1 (RC 1) にはすでに商用本番利用を認めるGo-Liveライセンスが付与されており、RC 2の提供も間近に迫っています。正式版(GA)は2026年11月開催の .NET Conf 2026 にて発表される予定です。
ランタイムおよび依存関係チェーンにおける直近の主要な変更点は以下の通りです。
| 変更領域 | 変更内容 | 本番環境への実質的影響 |
|---|---|---|
| JIT動的PGO適用範囲の拡大 | 階層型コンパイル(Tiered Compilation)および動的Profile-Guided Optimizationの適用ポイントが拡張され、インターフェース仮想呼び出しのインライン展開が強化されました。 | 高頻度でインターフェースやデリゲートを呼び出すマイクロサービスにおいて、スループットが約8%〜12%向上し、P99レイテンシの揺らぎが抑制されます。 |
| C# 15言語機能の確定 | ネイティブ直和型(Union Types)、拡張パターンマッチング、分解代入構文が安定検証フェーズに入り、Roslynコンパイラでの破壊的構文変更が凍結されました。 | ドメイン駆動設計(DDD)における集約結果やステートマシン実装のボイラープレートコードが劇的に削減されます。 |
| NuGet作成者署名証明書の更新 | 公式パッケージの作成者署名に新たなX.509証明書フィンガープリントが採用され、旧証明書による新規発行が終了しました。 | 署名検証を必須化しているエンタープライズCIパイプラインにおいて、新フィンガープリントを追加しないと NU3034 エラーでビルドが遮断されます。 |
📝 ピックアップ解説
1. C# Dev Kit 11.0が全面刷新:単一Native AOTバイナリによりロード速度が最大180倍向上
概要:
マイクロソフトの開発ツールチームは10月6日、C# Dev Kit 11.0プレビュー版を公開しました。バージョン番号は中間番号を飛び越え、.NET 11に合わせたナンバリングとなっています(前バージョンは3.3)。今回のリリースでは拡張機能の基盤を根本から再設計し、従来分散していた6つのマネージドバックグラウンドプロセスをNative AOTコンパイルによる単一のネイティブバイナリ CSDevKit へと統合。さらに永続化プロジェクトキャッシュとアクティブファイル優先読み込み戦略を導入しました。
なぜ重要か:
従来のマルチプロセスモデルでは、起動時に各プロセスがOSのウイルス対策スキャンを受け、ディスクからマネージドイメージを読み込んでJITコンパイルを実行していたため、大規模マルチプロジェクトソリューションで深刻な起動遅延が発生していました。公式ベンチマーク(407プロジェクト、4,686のC#ファイルで構成される microsoft/aspire)によると、アクティブファイルのコード補完・診断準備完了までの時間が84.1秒から0.47秒へと短縮され(180倍高速化)、ソリューション全体の完了時間も84.1秒から3.0秒へと改善(28倍高速化)。常駐メモリ使用量は2,072 MBから316 MBへと85%削減されました。また155プロジェクトを抱える dotnet/orleans においても、アクティブファイル準備完了時間が50.3秒から0.53秒(95倍高速化)、メモリ使用量が1,307 MBから208 MB(84%削減)となりました。増分ビルドにおいても、差分ゼロ時のビルド時間は34.4秒から0.88秒(39倍高速化)、単一ファイル変更時は36.1秒から2.1秒(17倍高速化)を記録しています。加えて、.csproj や .props、.targets といったMSBuildファイルへのネイティブ補完・診断が追加され、環境設定を点検するC# Doctorツールも同梱されました。
影響範囲: VS CodeやCursorなどの軽量エディタを活用する開発者、およびワークスペースの走査や言語サーバー呼び出しを高頻度かつ並行で行うAIコーディングエージェント。
参照リンク:A faster, lighter C# Dev Kit
2. MSTest 4.5とMTP 2.5:WinUI 3およびUWP向けUIディスパッチャー統合とパイプライン権限管理
概要:
10月5日、.NETチームはMSTest 4.5およびMicrosoft.Testing.Platform (MTP) 2.5を公開し、WinUI 3とUWPデスクトップアプリに向けた統合テストアーキテクチャを発表しました。新バージョンではネイティブな [UITestMethod] 属性が導入され、ウィンドウ実体の DispatcherQueue UIディスパッチャーに直接バインドできるようになり、従来の Microsoft.NET.Test.Sdk や vstest.console、Visual Studio特有のデプロイランタイムへの依存が排除されました。
なぜ重要か:
デスクトップアプリのUIテストでは、テストの初期化、非同期ケースの実行、リソース解放のすべてが実際のUIスレッド上で動作することを保証する必要がありますが、旧来の単一スレッドアパートメント(STA)ワーカーでは正確なディスパッチキューを提供できませんでした。MSTest.Sdk は軽量なサイドカーコントローラーを導入し、プロジェクト種別に応じて実行経路を自動振り分けします。非パッケージ化(Unpackaged)アプリはプロセスを直接起動し、パッケージ化アプリやサンドボックス(AppContainer)アプリはAUMID経由でコントローラーが起動します。AppContainerの権限分離に対しては、サイドカーパイプラインがグローバルワイルドカード権限を排除し、テストレポート、キャンセル制御、ハング時のダンプ収集パイプへのアクセスを対象パッケージSIDにのみ厳密に認可します。またModern UWP(UseUwp)においては PublishAot=true によるネイティブコンパイルをサポートし、テスト環境と本番ネイティブバイナリの実行モデルの一致を実現しました。
影響範囲: Windowsクライアントアプリ開発者、およびヘッドレスCI/CDコンテナ環境で自動UI検証パイプラインを構築・運用するエンジニアリングチーム。
参照リンク:UWP and WinUI 3 apps: UI testing with MSTest
3. C# 15ネイティブ直和型(Union Types)のASP.NET Coreフルスタック統合
概要:
.NETアーキテクチャチームは、C# 15のネイティブ直和型(Union Types)をWebフレームワークへ統合する設計案を公開しました。言語構文として public union IntOrString(int, string); のような宣言が可能となり、ASP.NET Core Minimal APIs、MVCコントローラー、SignalR、Blazorパイプラインにおいて、ルーティングの戻り値やリクエストペイロードとして直接扱うことができます。
なぜ重要か:
現代のAPI仕様では、1つのフィールドが複数の正当な型を取り得ることが一般的です。たとえばKubernetesの設定項目 maxUnavailable は、整数値またはパーセンテージ文字列のいずれかを受け入れます。これまでC#では、冗長なジェネリックラッパー型、プライベートな暗黙的型変換演算子、あるいはリフレクションを伴う生の object 型に頼らざるを得ず、大量のボイラープレートやヒープ割り当てが発生していました。C# 15のネイティブ直和型はコンパイル時に候補型の集合を制限し、代入時には損失のない暗黙的変換を行い、パターンマッチング(switch 式)による網羅性チェックを強制します。ネットワーク通信層では、System.Text.Json がリフレクション不要のデシリアライザーを生成し、OpenAPI仕様に準拠した oneOf ドキュメントを自動出力するため、データ転送オブジェクト(DTO)の手動変換コストが完全に排除されます。
影響範囲: 高スループットなWeb APIを開発するバックエンドエンジニア、およびマイクロサービス間の多様なデータ交換スキーマを設計・管理するシステムアーキテクト。
参照リンク:Use C# unions and closed hierarchies in ASP.NET Core
4. マイクロソフトNuGet作成者署名証明書の強制更新:企業CIにおける防衛策
概要:
マイクロソフトのNuGet公式チームは9月下旬、パッケージ作成者署名用のX.509証明書の更新作業を開始しました。新しいデフォルト証明書のSHA-256フィンガープリントは 9A1B131BEE0605433056A4EA3815478A8E177961A968C6C0027C1093D1FEB630 であり、長年使用されてきた旧証明書フィンガープリント 566A31882BE208BE4422F7CFD66ED09F5D4524A5994F50CCC8B05EC0528C1353 を置き換えるものです。
なぜ重要か:
過去にリリースされた既存パッケージは旧証明書でも検証可能ですが、今後新しくリリースされる公式依存パッケージはすべて新証明書で署名されます。ソフトウェアサプライチェーンセキュリティを導入している企業では、CI/CD環境の nuget.config で signatureValidationMode="require" を設定するか、dotnet nuget verify による検証を行っています。パイプラインに新フィンガープリントが登録されていない場合、最新の公式パッケージ取得時に NU3034 例外が発生してビルドが停止します。各開発チームは dotnet nuget trust author Microsoft 9A1B131BEE0605433056A4EA3815478A8E177961A968C6C0027C1093D1FEB630 --algorithm SHA256 コマンドで信頼リストへ明示的に追加するとともに、過去バージョンの復元を担保するために旧フィンガープリントも維持する必要があります。
影響範囲: 企業のインフラセキュリティチーム、DevOpsビルドパイプライン管理者、プライベートNuGetミラーリポジトリ運用担当者。
参照リンク:Microsoft is updating its author-signing certificate
🔥 コミュニティの話題
1. C# Dev Kit 11.0アーキテクチャ刷新:実測性能への絶賛とSolution Explorer廃止を巡る議論
Redditの r/dotnet コミュニティにおいて、マイクロソフトのエンジニアDrew Noakes氏による実測ベンチマークレポートが活発に議論されました(191ポイント、コメント93件、Hacker Newsでも4ポイントを記録)。
議論の焦点:
- 性能向上とAgent対応の支持派:OrleansやAspireの大規模リポジトリが一瞬で開く快適さに対して極めて高い評価が集まりました。複数の投稿者は、AIコーディングエージェントを組み込んだワークフローではローカルで多数のGit Worktreeや軽量コンテナを同時起動することが多く、従来の6プロセス構成ではブランチ切り替えごとに数十秒の停止と2GBのメモリ消費が発生していたと指摘。単一のNative AOTバイナリとディスクキャッシュの採用により、ツールチェーンの起動とエディタの複数起動が瞬時に行えるようになったと歓迎しています。
- ソリューション階層表示の維持派:ソリューションフォルダー(Solution Folders)に依存した構成管理を重視するエンジニアからは、独立したSolution Explorerサイドバーの削除に対して不満の声が上がりました。VS Code標準のファイルツリーでは
.slnの仮想フォルダー構造が直接反映されないため、コンテキストメニューの「新しいクラスの追加」(Add New Class)が意図通りに動作せず、新規ファイルが仮想名前空間ではなく物理ルート直下に配置されてしまうなど、既存の開発作法が損なわれる懸念が指摘されています。
参照リンク:r/dotnet: A faster, lighter C# Dev Kit
2. Native AOTホストでのマネージドプラグイン動的読み込み:Plumフレームワークとハイブリッド構成の是非
r/csharp コミュニティの10月個人開発ショーケースにおいて、Plumと呼ばれるプラグイン連携フレームワークを巡ってアーキテクチャの議論が交わされました。
技術的仕組みと設計思想の相違:
- 技術的仕組み:PlumはNative AOTコンパイルされた高性能ホストプログラムを対象としており、.NETランタイムのネイティブエントリポイントである
HostFXRを利用してメインプロセス内部でCoreCLRを動的に起動します。その後、カスタムマネージドアセンブリローダーを介してリフレクション機能を持つプラグインコードをスキャン・読み込みし、プラグインのインターフェースをAOTホストへと直接ブリッジします。 - アーキテクチャの対立点:
- ハイブリッド現実派:デスクトップソフトウェアや産業用制御盤など、瞬時起動とエコシステムの拡張性を両立すべき現場において、サードパーティのプラグイン群が動的リフレクションや
Reflection.Emitを即座に完全放棄することは現実的ではないと主張。HostFXRを通じて必要に応じてCLRを呼び出すことで、ホスト本体のAOTによる低遅延起動を維持しつつ、プラグインのホットプラグ性を確保できると評価します。 - ピュアエンジニアリング派:単一プロセス内でネイティブメモリモデルとCLRのガベージコレクション(GC)ルート参照を同時に管理することは、クラッシュ発生時の原因究明を著しく困難にし、ランタイム境界をまたぐダングリングポインタのリスクを高めると指摘。モダンC#は完全な静的コンパイルを志向すべきであり、ソースジェネレーター(Source Generator)を用いてビルド時にプラグインを静的結合させることで、デュアルランタイムの保守負担を根本から排除すべきだと反論しています。
- ハイブリッド現実派:デスクトップソフトウェアや産業用制御盤など、瞬時起動とエコシステムの拡張性を両立すべき現場において、サードパーティのプラグイン群が動的リフレクションや
参照リンク:r/csharp: Come discuss your side projects! (October 2026)
来週の注目トピック
- 10月13日(火)月例セキュリティ更新:マイクロソフトの月例パッチ適用日(Patch Tuesday)に合わせて、.NET 10.0.13および.NET 8.0のメンテナンスアップデートが配信されます。セキュリティ脆弱性の修正やランタイムの安定性向上が含まれるため、カスタムコンテナイメージを運用しているチームは更新計画を立てておく必要があります。
- .NET 11 RC 2 リリースへのカウントダウン:.NET 11の最終候補版であるRC 2の公開が目前に迫っています。11月の .NET Conf 2026 での正式リリースに向けた最終マイルストーンとして、パブリックAPIの変更受付は完全に締め切られており、主要ライブラリのメンテナは固定環境での網羅的な回帰テストを実施することが求められます。