.NET Framework サポート ライフサイクル ポリシーについて (2015年10月)

 

 


(2015年11月5日 「.NET Framework サポート ライフサイクル ポリシーの更新について」 更新)

皆さま、こんにちは。 Visual Studio 製品マーケティングの相澤です。

本日は .NET Framework のサポート ライフサイクル ポリシーについてまとめて説明したいと思います。

.NET Framework のサポート ライフサイクル ポリシーは 2014 年 8 月 7 日に更新され 、 2016 年 1 月 12 日以降は .NET Framework 4.0 ~ 4.5.1 はサポートされなくなり、サポートを受けるためには .NET Framework 4.5.2 に移行いただくことを発表しました。こちらのブログでもその更新についてご説明しています。その後、新しい .NET Framework のバージョンである .NET Framework 4.6 が 2015 年 7 月 20 日にリリースされました。

.NET Framework 4.x のアプリはインプレース アップデート (インストールされているフレームワーク を上書き更新するもの) にて更新され、再コンパイルなしにアップグレードした .NET Framework を稼働することが可能です。
また、.NET Framework のインプレース アップデートで必要となる変更の数も最近は少なくなっています。

今回は2015 年 10 月現時点での .NET Framework のサポート ライフサイクル ポリシーを以下のようにまとめてご説明します。

  1. .NET Framework サポート ライフサイクル ポリシーの更新について
  2. .NET Framework バージョン間の関係
  3. .NET Framework アプリの基本動作の例
  4. .NET Framework のシステム要件
  5. .NET Framework のサポート ポリシー
  6. .NET Framework の互換性
  7. .NET Framework の互換性情報の読み方
  8. .NET Framework の移行判断のフローチャート
  9. .NET Framework 対応アプリが開発可能な Visual Studio のバージョン

.NET Framework サポート ライフサイクル ポリシーの更新について

冒頭にも触れましたが、.NET Framework のサポート ライフサイクル ポリシーが、 2014 年 8 月 7 日に更新されています。

https://support.microsoft.com/ja-jp/gp/framework_faq

本ブログでも .NET Framework Blog の翻訳として以前紹介しておりますが、.NET Framework 4 シリーズをサポートを引き続き受けるためには 2016 年 1 月 12 日までに .NET Framework 4.5.2 にアップデートしていただくというものです。

https://blogs.msdn.com/b/visualstudio_jpn/archive/2014/08/08/moving-to-the-net-framework-4-5-2.aspx

ポイントとなる 4 3 点について解説します。

  1. .NET Framework のサポート ライフサイクル 期間は、インストールされている Windows OS のサポート ライフサイクル期間に準拠します (変更なし)
  2. インプレース アップデート (インストールされているフレームワーク を上書き更新するもの) として提供されている場合、これまではすべてのフレームワークがサポート対象でしたが、ポリシー変更後では、最新のフレームワークのみがサポート対象となります
  3. 2016 年 1 月 12 日までに、.NET Framework 4 ~ .NET Framework 4.5.1 を .NET Framework 4.5.2 以降に移行ください (実際には、以下 4. の理由から、現在提供されている最新の .NET Framework への移行が望ましい)
  4. 以降、最新のインプレースアップデートが提供された場合、最新フレームワークの提供後 12 カ月以内に最新のフレームワークに移行ください。(例: .NET Framework 4.6 が 2015 年 7 月 29 日にリリースされたため、.NET Framework 4.5.2 は 2016 年 7 月 28 日までサポートされる)

 

将来の .NET Framework 製品および更新プログラムのサポートに関して、これから更新されていく予定です。

サポート ポリシーが更新された結果、 .NET Framework 4 以上のフレームワークが影響を受けます。 .NET Framework 3.5 以前については影響はありません。

一般論ですが、最新のインプレース アップデートが提供された場合、パフォーマンス、効率、信頼性の観点から継続的に最新フレームワークに移行することをお勧めします。


 

.NET Framework バージョン間の関係

image

(*1) カッコの範囲内のバージョンは、同一のフレームワークとして扱われます。例えばそれぞれ違うカッコにある .NET Framework 3.5 と .NET Framework 4.5.2 は別のフレームワークとして扱われ、 .NET Framework 3.5 環境に .NET Framework 4.5.2 をインストールしても、上書きされず、同一コンピュータ上に共存することが可能です。

一方、同じカッコ内にある .NET Framework 4 と .NET Framework 4.5.2 は同一のフレームワークとして扱われ、 .NET Framework 4 環境に .NET Framework 4.5.2 をインストールすると、.NET Framework 4 はインプレース アップデート (上書き更新) されます

この仕組みを .NET Framework のサイド バイ サイド (Side-by-Side) と呼びます。 Side-by-Side に関する詳細は以下の URL を参考にしてください。

https://msdn.microsoft.com/ja-jp/library/ms994410.aspx


.NET Framework アプリの基本動作の例

[例 1] .NET Framework 3.5 と .NET Framework 4 がインストールされている環境

アプリが開発時にターゲットとしたバージョン

実行時の動作

.NET Framework 3.5 アプリ

.NET Framework 3.5 上で動作 (※ .NET Framework 4 がインストールされていても、.NET Framework 3.5 上で動作)

.NET Framework 4 アプリ

.NET Framework 4 上で動作

.NET Framework 4.5.2 アプリ

起動時にエラーが発生して動作しない (※「.NET Framework 4.5.2 のインストールが必要」といった旨のメッセージが表示)

[例 2] .NET Framework 3.5 と .NET Framework 4.5.2 がインストールされている環境

アプリが開発時にターゲットとしたバージョン

実行時の動作

.NET Framework 3.5 アプリ

.NET Framework 3.5 上で動作 (※ .NET Framework 4 がインストールされていても、.NET Framework 3.5 上で動作)

.NET Framework 4 アプリ

.NET Framework 4.5.2 上で動作 (※ .NET Framework 4 は、.NET Framework 4.5.2 に上書き更新されているため)

.NET Framework 4.5.2 アプリ

.NET Framework 4.5.2 上で動作

.NET Framework 4 アプリは、再コンパイルなしに、そのまま .NET Framework 4.5.2 上で動作します。

.NET Framework 3.5 アプリは、.NET Framework 4 がインストールされている環境であっても、そのまま .NET Framework 3.5 上で動作します。
したがって .NET Framework 4 から 4.5.2 の更新において、アプリケーションの動作上の影響はありません。

 


.NET Framework のシステム要件

現時点 (2015 年 9 月 2 日) でサポート期間にある .NET Framework 2.0 以上のバージョンについて、オペレーティングシステムとの関係を以下に整理いたします。

なお、Windows Server 2016 につきましては、現プレビュー版の対応状況をもとにしており、製品出荷時点で変更となる可能性があります。

image

◎ : OS にあらかじめ含まれている

● : ダウンロードしてインストール可能 ※ ( ) カッコは、システム要件上、必要となる OS のサービス パック

[n.n] : 当該行の .NET Framework は [ ] カッコ内の .NET Framework のバージョンに上書き更新されている

 


.NET Framework のサポート ポリシー

.NET Framework のサポート ライフサイクルは、Windows OS のサポートライフサイクルに準じます。
ただし、.NET Framework の最新のインプレースアップデートが提供された場合には、パフォーマンス向上および細かなバグフィックス等もされているため可能な限り早く最新の .NET Framework をご利用いただくことをお勧めいたします。

image

[M] メインストリーム サポート / [X] 延長サポート

開発ツール製品サポート ライフサイクル https://support.microsoft.com/lifecycle/?LN=ja&c1=501
Windows 製品 サポートライフサイクル

https://support.microsoft.com/lifecycle/?LN=ja&c1=509 

https://support.microsoft.com/lifecycle/?LN=ja&c1=508

         


.NET Framework の互換性

.NET Framework の設計目標のひとつとして、下位互換性の確保があります。
下位互換性によって、あるバージョン向けにビルドしたアプリケーションは、原則、再コンパイルなしで上位の .NET Framework上で動作します。しかしながら、下記のような理由により、下位互換性が確保できないことがあります。

  • 不具合の修正
  • 標準への準拠
  • お客様からのフィードバック
  • 精度の向上 (浮動小数点など)

互換性の問題が発生する変更点については、リスト化して情報提供をしております
.NET Framework アプリケーションを移行するにあたっては、移行元バージョンから、移行先バージョンまで、順次変更点を確認ください。

No

変更点

解説の URL

1

.NET 2.0 における変更点

https://msdn.microsoft.com/ja-jp/library/cc825631.aspx

2

.NET 3.5 における変更点

https://msdn.microsoft.com/ja-jp/library/dd310284.aspx

3

.NET 4 における変更点

https://msdn.microsoft.com/ja-jp/library/ee941656(v=VS.100).aspx

4

.NET 4.5 における変更点

https://msdn.microsoft.com/ja-jp/library/vstudio/hh367887.aspx

5

.NET 4.5.1 における変更点

https://msdn.microsoft.com/ja-jp/library/dn458352(v=vs.110).aspx

6

.NET 4.5.2 における変更点

https://msdn.microsoft.com/ja-jp/library/dn720543(v=vs.110).aspx

7

.NET 4.6 における変更点

https://msdn.microsoft.com/ja-jp/library/dn833127(v=vs.110).aspx

例) .NET Framework 4 アプリを .NET Framework 4.5.2 に移行する場合、No.4、No.5、No.6 の順に各ページを参照ください

 


.NET Framework の互換性情報の読み方

互換性問題の種類

.NET Framework 4.5.1 以降は 2 つに分類されています。

  • ランタイム変更点
  • 再ターゲット変更点 (Web 上の表記は「変更の再ターゲット」)
ランタイム変更点

アプリケーションのターゲットフレームワークに関わらず、そのバージョンのランタイムで実行すると影響する変更点

image

再ターゲット変更点

そのバージョンをターゲットフレームワークにして再コンパイルした際に影響する変更点

image

.NET Framework 4.x における互換性のある変更点の数

移行パス

変更の数

4.0 –> 4.5 60 (ランタイム: 47 / 再ターゲット: 8 / その他: 5)
4.5 –> 4.5.1 8 (ランタイム: 5 / 再ターゲット: 3)
4.5.1 –> 4.5.2 4 (ランタイム: 2 / 再ターゲット: 2)
4.5.2 –> 4.6 17 (ランタイム: 10 / 再ターゲット: 7)

 


.NET Framework の移行判断のフローチャート

.NET Framework の移行に際しては以下のフローチャートを参考にどのように対応するかご確認ください。

image

互換性情報については「.NET Framework の互換性 」をご確認ください。


.NET Framework 対応アプリが開発可能な Visual Studio のバージョン

Visual Studio には [マルチターゲット] という機能があり、1 つの Visual Studio で異なる複数バージョンの .NET Framework アプリの開発が可能です。最新の Visual Studio 2015 では、現状 .NET Framework 2.0 から、.NET Framework 4.6 まで対応しております。 .NET Framework と Visual Studio の対応バージョンの関係を下に示します。

image

Visual Studio 2012/2013 でも追加パッケージ (Developer Pack または Targeting Pack) を導入することで .NET Framework 4.6 までのアプリを開発可能です。

 


.NET Framework 4.5 以降は、特に互換性について同様な機能の存在、過去ソースの利用、バイナリレベルでの応答等を意識して互換性を強化しています。冒頭にも触れましたようにまた、.NET Framework 4.x 以降はリコンパイル不要でインプレース アップデートした .NET Framework をすぐに利用することも可能です。

これからも可能な限り .NET Framework を最新に更新し最新環境にてアプリケーションを稼働していただければと思います。
近年の進化スピードは速いため、まとめて更新しようとすると大変になるケースも少なくないと思います。

この後 .NET Core 5 の正式リリースもあり、一つの環境で開発された .NET アプリケーションが Linux, Mac OS, Windows でも稼働するようになり、更に .NET Framework の世界は発展し広がってまいります。

是非 .NET Framework をこれからもご活用ください。