この記事の内容
2026 年 11 月 10 日、Microsoft は二つの .NET バージョン、.NET 8 と .NET 9 のセキュリティ更新の提供を同じ日に終了します。この日以降、プラットフォームで見つかった脆弱性は、どちらのバージョンでも修正されません。会計システム、POS、ERP がそのいずれかの上に構築されているなら――サウジアラビア市場では多くがそうです――どこへ移行するかを決めるまでに残された時間は二か月足らずです。ほとんどの企業にとって正しい移行先は、2028 年 11 月 14 日までサポートされる .NET 10 であり、最初のリリース候補がわずか二日前に出たばかりの .NET 11 ではありません。
9 月 8 日に何が起きたのか
2026 年 9 月 8 日、Microsoft は .NET 11 が go-live サポートライセンス付きで Release Candidate 1 に到達したと発表しました。これは、正式リリースの前から Microsoft が実際の本番環境での利用を公式にサポートすることを意味します。同じ日に、.NET 10、.NET 9、.NET 8 向けの定例のサービス更新も公開されました。
これが技術的なニュースです。経営者にとって重要なニュースは、まったく別のページにあります。同じ日に更新された公式のサポートポリシーのページには、.NET 8 と .NET 9 が 2026 年 11 月 10 日にサポート終了となることがはっきりと書かれています。華やかなリリース発表が注目を集める一方で、実際にお金がかかる一行は退屈な表の中に書かれているのです。
なぜ「長期サポート」リリースのサポートが切れるのか
Microsoft は毎年 11 月に .NET のメジャーリリースを出します。偶数番号のリリースは長期サポートで、三年間の無償パッチを受けられます。奇数番号のリリースは標準サポートで、二年間です。
.NET 8 は 2023 年 11 月 14 日にリリースされたので、その三年間は 2026 年 11 月に満了します。.NET 9 は 2024 年 11 月 12 日にリリースされたので、その二年間もほぼ同じ時期に満了します。だからこそ、両方とも 11 月 10 日に重なるのです。多くのチームが不意を突かれるのはここです。「長期サポート」は永久サポートという意味ではありません。リリース日から数えて三年という意味であり、誰も見ていない間にその時計のかなりの部分がすでに進んでいます。
正しい移行先は .NET 11 ではなく .NET 10
このようなニュースへの反射的な反応は「それなら最新版にアップグレードしよう」です。ほとんどの業務システムにとって、それは誤った判断であり、その理由は同じサポート表にあります。
.NET 10 は 2025 年 11 月 11 日にリリースされた長期サポートリリースで、2028 年 11 月 14 日までサポートされます。一度のアップグレードで、この件を蒸し返すことなく二年あまりの安定が得られます。.NET 11 は奇数番号のリリースなので標準サポートは二年しかなく、新しいにもかかわらず .NET 10 より先にサポートが終了します。より早く期限が切れる新しいバージョンへのアップグレードは、アップグレードではありません――追加の請求書が付いた先送りです。
もう一つ考慮すべき点があります。.NET 11 のリリース候補そのものは 2026 年 10 月 13 日までしかサポートされません。次の候補、そして 11 月の正式リリースへと移っていくことが前提の、移行用のビルドだからです。「go-live」を、リリース候補を会計システムに入れてそのまま放置してよいという意味に受け取る人は、アップグレードの繰り返しから逃れるどころか、毎月のアップグレードサイクルに自ら申し込んだことになります。
会計や業務のソフトウェアを運用する企業のための実践的なルールはこうです。常に偶数番号の長期サポートリリースを目指すこと。奇数番号のリリースは、継続的にアップグレードし、機能をいち早く使いたい製品開発チームに任せましょう。
.NET 11 が実際にもたらすもの
判断が回避ではなく知識に基づくように、リリース候補の内容を紹介します。C# では、バージョン 15 で共用体型が安定化されました。これは、ある操作が成功するか、特定の理由で失敗するかのように、複数の形を取りうる値をより明確に表現する方法です。ツール面では、テストコマンドがモバイルアプリケーションの扱いを改善し、実行レベルの制御を追加しました。
コンテナーの発行では、イメージ生成が再現可能になり、すでに存在するレイヤーの再アップロードを省くようになりました。これによりデプロイ時間が短縮され、出荷したものの監査も容易になります。パッケージ管理では、警告をエラーとして扱う設定でも、既知の脆弱性を持つパッケージを更新できるようになりました。以前は、ビルドを通すためだけにセキュリティチェックを無効にせざるを得ないという古い問題がありました。ASP.NET Core では SignalR の認証更新 API が確定し、Blazor Server の回線は更新後に古い ID を保持し続けるのではなく、状態を更新するようになりました。Unix システムではプロセス内クラッシュレポートが導入され、午前三時にサーバーが落ちたときの診断が向上します。
これらは本物の改善です。しかし、そのどれも、代替案より早く期限が切れるバージョンで財務システムを動かすリスクを上回るものではありません。
なぜこれは技術の問題ではなくコンプライアンスの問題なのか
セキュリティパッチを受け取れなくなったプラットフォームを運用することは、エンジニアリング上の好みの問題ではありません。個人データ保護法 (PDPL) は、顧客データを扱うすべての組織に適切な保護措置を講じることを義務付けており、本格的なセキュリティ審査では必ず、どのプラットフォームバージョンを使っているか、そのサポートはいつ終わるかを問われます。「八か月前にサポートが切れたバージョンを使っています」というのは、監査人の前でも、契約前にセキュリティ質問票を送ってくる法人顧客の前でも、サイバー保険会社の前でも、弁明できる答えではありません。
同じことは、Fatoora プラットフォームに接続された電子インボイスシステムにも当てはまります。請求書にデジタル署名して政府機関に送信するシステムは、まだ暗号関連のパッチを受け取っているプラットフォーム上で動いている必要があります。これは内部的な細部ではありません――あなたの請求書が依拠する信頼の連鎖の一部なのです。
今から 11 月までの行動計画
- 今週――現状を把握する。ベンダーまたは技術チームに、運用しているすべてのシステムの裏にある .NET バージョンの一覧を依頼してください。誰も気に留めない小さな社内ツールやバックグラウンドサービスも含めます。サーバー上では
dotnet --list-runtimesで確認でき、プロジェクト自体ではプロジェクトファイル内のターゲットフレームワークの項目です。 - 来週――優先順位を付ける。.NET 8 以前で動くものと .NET 9 で動くものすべてに印を付けます。すでに .NET 10 のものは 2028 年まで安全です。.NET 6 や 7 のものは何年も前にサポートが切れており、スケジュールではなく緊急の対応が必要です。
- 二週間以内――破壊的変更を読む。Microsoft はリリースごとに破壊的変更の一覧を公開しています。8 から 10 への移行は通常スムーズですが、始める前に読んでおけば何日も節約できます。
- 一か月以内――まずテスト環境をアップグレードする。ターゲットフレームワークを変更し、ビルドし、テストを実行してから、何よりも先に実データのコピーでシステムを動かします。
- 11 月より前に――デプロイする。11 月 10 日より前に少なくとも二週間の安全マージンを確保し、月末の締めや販売の繁忙期にはデプロイしないでください。
- 一度決めて、ずっと続ける。今日のうちに 2028 年 11 月 14 日を会社のカレンダーに入れ、ルールを決めましょう。アップグレードは毎回、次の偶数番号のリリースへ。これにより、この件は毎年の不意打ちから、既知の予算項目に変わります。
システムをベンダーから導入した場合
多くの企業はソースコードを所有しておらず、完成したシステムをサプライヤーから購入しています。その場合、今日送るべきメールは一通だけで、尋ねることは三つです。システムはどの .NET バージョンで動いているか、.NET 10 版のビルドはいつ提供されるか、そしてアップグレードは当社のサポート契約に含まれるのか、別料金なのか。ベンダーの答え方は、どんなプレゼンテーションよりも製品について多くを語ります。そして答えを知らない、あるいは引き延ばすベンダーこそ、あなたが 11 月 11 日に電話をかけることになる相手です。
出典
- Microsoft — Announcing .NET 11 Release Candidate 1、2026 年 9 月 8 日:devblogs.microsoft.com
- Microsoft — 公式の .NET サポートポリシーとサポート終了日:dotnet.microsoft.com
- Microsoft — .NET 11 の破壊的変更:learn.microsoft.com
- サウジアラビアデータ・人工知能庁 (SDAIA) — 個人データ保護法 (PDPL):sdaia.gov.sa
よくある質問
2026 年 11 月 10 日、私のシステムには実際に何が起きるのですか?
システムが止まるわけではありません。止まるのは、Microsoft による .NET 8 と .NET 9 のセキュリティ更新の提供です。この日以降に見つかった脆弱性は、公式パッチがないままシステム内に残ります。そのため、対応の遅れはある日突然爆発する問題ではなく、積み重なっていくリスクになります。
なぜ新しい .NET 11 ではなく .NET 10 にアップグレードするのですか?
.NET 10 は 2028 年 11 月 14 日までサポートが保証された長期サポートリリースです。一方 .NET 11 は奇数番号の標準サポートリリースで、サポート期間は二年しかなく、新しいにもかかわらず .NET 10 より先にサポートが終了します。業務システムでは、偶数番号のリリースを目指すことで、二回のアップグレードが必要になるところを一回で二年をカバーできます。
自社のシステムがどのバージョンで動いているかは、どうすれば分かりますか?
サーバー上で dotnet --list-runtimes を実行すると、インストールされているバージョンが一覧表示されます。システムを外部ベンダーから導入した場合は、直接こう質問してください:システムはどの .NET バージョンで動いているか、.NET 10 版のビルドはいつ提供されるか、そしてアップグレードは当社のサポート契約に含まれているか。
バージョンのアップグレードは大きなプロジェクトですか?
.NET 8 から .NET 10 への移行は通常スムーズです。Microsoft は近いリリース間の互換性を保っており、作業の大半はターゲットフレームワークの変更、パッケージの更新、テストの実行です。難しいのは .NET 6 や .NET Framework で動く古いシステムで、これらはすでにサポートが終了しており、別途判断が必要です。
GoogleでOrigamiをフォロー
Origamiを優先ソースに追加すると、Google検索やトップニュースで私たちの記事が優先的に表示されます。








