今すぐ移行しなきゃだめ?.NET の長期サポート (LTS) について徹底解説

.NET Core、.NET Framework のサポートってややこしくないですか?「何がサポートされているんだろう?今のものは、いつまでサポートされるんだろう?長期サポート (Long-term Support: LTS) って何?というか移行しなきゃだめなの?」といったような疑問、たくさんわきますよね。

この記事では、マイクロソフトの .NET LTS について、わかりやすく説明します。これを読み終える頃には、今後何をすれば良いのか (何をしなくて良いのか) が理解でき、プラットフォームの移行を効率的に行えることでしょう。

さて、まず一番気になる疑問である「今すぐ移行しなきゃダメ?」ですが、結論から言うと、その必要はありません。すでにサポートが切れた .NET プラットフォームで実行されている、とても古いレガシーアプリケーションを除くと、最も早くサポートが終了するプラットフォームでも、 2 年間の猶予があるからです。したがって、余裕を持って移行のスケジュールを立てられます。

.net 5 lts 早見表

LTS を利用して .NET の移行のスケジュールを立てる

 .NET 5 がリリースされたことに伴い、 .NET プラットフォームが変更されました。下記の5つのステップに従うことで、「いつ」「どれに」移行すれば良いのかが簡単にわかります。

  1. すでにあるアプリケーションを棚卸しする
  2. 廃止されるコンポーネントが何かを調べる
  3. 利害関係者と優先順位を相談する
  4. 大まかな移行スケジュールを立てる
  5. リリース速度を上げる

移行のスケジュールを決めるには、多くの要素が絡んできます。しかし、LTS のサポートの有無がわかったら、上記のステップ 1、2 に取り組むことができます。

近年の多くの組織では、色々な .NET プラットフォームを異なるアプリケーションで使用しています。そのため、下記のことを理解する必要があります。

  • 色々なアプリケーションを異なる .NET プラットフォームに移行させることがある
  • それぞれのアプリケーションがライフサイクル上で異なる地点にいる

しかし、ここでは注意すべきなのは、そもそも、すべてのアプリケーションを移行する必要はないということです。また、すべて同時に移行する必要もありません。なぜなら、プラットフォームのサポートが終了する前にアプリケーションのエンド・オブ・ライフ (End of Life: EOL) の方が先に来る可能性があるからです。加えて、.NET プラットフォームの EOL はそれぞれ異なり、場合によっては古い .NET バージョンの方がサポートが長いこともあるので、必ずしも「移行先は新しいプラットフォームの方が良い」というわけでもありません。

Microsoft の .NET プラットフォームには、下記の 3 つのタイプがあります。

  • オペレーティングシステム (Operating system: OS)。サポート期間はとても長く (多くが10年以上)、オペレーティングシステムのライフサイクルと同じです。
  • 長期サポート (Long-term Support: LTS)。プラットフォームの最初のリリースから3年です。
  • Current リリース。LTS のリリース後か、次のCurrent リリース後のどちらか早い方から 3 ヶ月間のみサポートされます。

つまり、移行先としてオペレーティングシステムか LTS を選ぶことで、新しいプラットフォームに移行するまでのアプリケーションのライフサイクルを長くできます。

Microsoft LTS サポート期間の早見表

下記の表で、どのバージョンの .NET Framework/Core から、どのバージョンの .NET に移行すれば良いかがわかります。

当然ながら、移行はサポートの有無や長さだけでは判断できません。しかし、.NET 5 以降のバージョンを選択することでたくさんのメリットを享受できます。

.NET Framework

バージョン既存アプリケーションのサポート状況アプリケーションの移行先にすべきか
1.x✘サポート終了 – できるだけ早く移行する必要あり✘サポート終了 – 移行する必要なし
2.x✘サポート終了 – できるだけ早く移行する必要あり✘サポート終了 – 移行する必要なし
3.x✘サポート終了 – できるだけ早く移行する必要あり✘サポート終了 – 移行する必要なし
3.5✓ オペレーティングシステム (2029年までサポート)    ⚠️オペレーティングシステム (2029年までサポート) – 移行には注意が必要
4.0 to 4.5.1✘サポート終了 – できるだけ早く移行する必要あり✘サポート終了 – 移行する必要なし
4.5.2 to 4.7⚠️オペレーティングシステム (ミックス) – 各バージョンのポリシーを確認する必要あり⚠️オペレーティングシステム (ミックス) – 移行には注意が必要
4.8✓ オペレーティングシステム (2029年までサポート)✓ オペレーティングシステム (サポート終了は未定)


Microsoft からは、「.NET Framework4.8 は .NET Framework の最新バージョンであり、Windows の将来のリリースで引き続き配布される予定です。サポートされているバージョンの Windows にインストールされている限り、.NET Framework4.8 も引き続きサポートされます」とのアナウンスが出ています。

そのため、 .NET 5 より古いプラットフォームである .NET Framework 4.8 への移行を検討するのも一つの手です。最新のものに移行しないのは、一見おかしいのですが、上記のアナウンスの通り、.NET Framework 4.8 は .NET 5 より長くサポートされます。また、.NET Framework 4.8  は、.NET 5 よりすでに長く使用されているので、移行に伴うスタッフの再トレーニングにかかるコストを抑えられるという利点もあります。つまり、浮いた時間とお金を他のアプリケーションの移行計画に充てられるということです。

.NET Core

バージョン既存アプリケーションのサポート状況アプリケーションの移行先にすべきか
1.x✘サポート終了 – できるだけ早く移行する必要あり✘サポート終了 – 移行する必要なし
2.0 and 2.2✘サポート終了 – できるだけ早く移行する必要あり✘サポート終了 – 移行する必要なし
2.1⚠️LTS (2021年8月21日まで)⚠️LTS (2022年12月3日まで) – 長期で使用するアプリケーションに対しては移行する必要なし
3.0✘サポート終了 – できるだけ早く移行する必要あり✘サポート終了 – 移行する必要なし
3.1✓ LTS (2022年12月3日まで)⚠️LTS (2022年12月3日まで) – 長期で使用するアプリケーションの場合、注意が必要

Microsoft は .NET 5 以降を「.NET Core v.Next.」と位置づけています。そうした理由から、Core に対する LTS は (オペレーティングシステムに関連付けられている) .NET Framework 4.8 より短くなっています。

.NET 5 以降

プラットフォームリリース (予定) 日アプリケーションを移行すべきか
52020 年 11 月⚠️現在のリリースのみ – 移行には注意が必要
62021 年 11 月✓ LTS 
72022 年 11 月⚠️現在のリリースのみ – 移行には注意が必要
82023 年 11 月✓ LTS 

.NET 5 以降、奇数番号のリリースはすべて Current リリースのみになります。一方、.NET 6 以降は偶数番号のリリースがすべて LTS になります。

.NET LTS に関するよくある質問

新しいアプリケーションの場合、いつ新しいプラットフォームに移行すべきですか?

色々考えるべきことはたくさんありますが (ガイドで詳しく説明しています)、サポートのことを考慮する場合、 .NET Framework、.NET Core、.NET 5 以降のチャートを確認して決めましょう。

プラットフォームのマイナーバージョンは、いつアップグレードすべきですか?

.NET Framework、.NET Core のどちらも、早ければ早いほど良いです。サポートされているのは各プラットフォームの最新バージョン (.NET Framework4.8および.NETCore 3.1) のみで、どちらも LTS です。それ以外のバージョンでも変わらず使用できますが、セキュリティ上の問題が放置されたり、バグが修正されなかったりするので注意が必要です。また、Framework4.8 と Core3.1 は少なくともあと 2 年間は LTS でサポートされるため、「2021 年 11 月に予定されている次の LTS リリース (.NET 6) までは移行しない」という選択もありです。

プラットフォームのパッチバージョンはいつアップグレードすべきですか?

早ければ早いほど良いですが、注意が必要です。「リリースされたパッチをすぐに適用したら不具合が発生した」ということがあったからです。そのため、急ぐ理由が特になければすぐにアップグレードする必要はありません。

しかし、長期間アップグレードを避けるのはおすすめしません。セキュリティ上のリスクが上がったり、移行やアップグレードの手間が増えるためです。

色んなアプリケーションを異なる .NET プラットフォームに移行できますか?


Yes とも No とも言えます。

Framework 4.8 と Core 3.2 の EOL までは、必要に応じてそれらに移行できます。そして、全くおすすめしませんが、サポートされていない .NET プラットフォームに対しても、厳密に言えば可能です。

しかし、先ほど説明した通り、.NET は今後平行展開することはありません。したがって、メジャーな番号の .NET プラットフォームを使用する以外の選択肢はありません。また、奇数番号のリリースのサポートは  3 ヶ月と短く、LTS でサポートが長いのは偶数番号のリリースであることも留意してください。

LTS のまとめ

現在サポートが終了したプラットフォームを使用していたとしても、今すぐ移行する必要はありません。しかし、現在の .NET Framework と .NET Core は、いわば延命措置を施されている状態です。今から移行のスケジュールを組み立てておくことで、後々色々楽になります。

まずは、既存のアプリケーションの棚卸しから始めて、どのコンポーネントが廃止されるのかを確認しましょう。そして、現在のプラットフォームのサポートが終了した後も使用したいアプリケーションをリストアップできたら、さっそく移行のスケジュールを立ててみましょう。

.NET 5 移行ガイドを入手する

現在、Inedo では .NET 5 へ移行するためのガイドを作成しています。今すぐサインアップすることで、ガイドを早期に入手したり、それに対するフィードバックを送ったりできます。