.NET Frameworkとは、Microsoft Visual Studioで開発したプログラムをWindows上で動作させるための、ランタイム実行環境です。
Windowsと連携してメモリ管理、ハードの制御を行ってくれます。
.NET Frameworkを利用することで、Microsoft Visual Studioを利用する開発者は、メモリ管理等を意識することなく、業務プログラムのコーディングのみに集中することが出来ます。
又、.NET Frameworkは、アプリケーションフレームワークです。
Microsoft Visual Studioでプログラム開発する際に開発者の手間を減らす様々な機能をライブラリとして提供します。このライブラリを利用することで、Windowsの機能をプログラム内で簡単に実装することができます。
この長らく利用されてきた.NET Frameworkですが、.NET Framework4.8を最終リリースとして、リリース終了となりました。(.NET Framework4.8のサポート期限は2031/10/14より後)
後継となるのは、.NET Coreのブランド名が変更された.NETです。
2021年11月8日現在.NET 6が最新です。
移行期間は非常に長く、サポート期限は少なくとも10年先です。このため、今すぐ.NET Frameworkから.NETに変える必要はありませんが、移行する場合、使えるライブラリが全く違うので、依存状況によりほとんどコードの書き直しに近い修正になる可能性もあり得ます。
来たる.NET Frameworkのサポート終了に向け、少しずつ移行準備しておく必要があると思われます。
1..NET Frameworkと後継.NETの違い
開発者から見ると.NET Framework、.NET、いずれもVisual Studioでの開発に対応したランタイム実行環境なのですが、対応プラットフォーム(OS)が違います。
.NET FrameworkはWindowsのみに対応したランタイム実行環境。つまり開発したアプリはWindows上でしか動作しません。
一方、.NETはWindows、macOS、Linuxマルチプラットフォームに対応したランタイム実行環境です。「Write Once Run Anywhere.」つまり開発したアプリはWindows、macOS、Linuxすべてのプラットフォームで動作しますので、今までのようにWindows用、macOS用、Linux用と別々にコーディングする必要がなくなりました。
この.NETは.NET Coreの流れを組むランタイム実行環境です。.NET Core3.1を最終リリースとして、次のリリースからは.NET 5とブランド名変更となりました。そして2021年11月8日、Visual Studio 2022のリリースと同時にこれに対応するランタイム実行環境として.NET 6がリリースされました。
.NET Framework、.NETはライブラリが全く違います。ライブラリはプログラム開発する際に開発者の手間を減らす様々な機能ですが、.NET Frameworkでライブラリを利用したプログラムを.NETへ移行するには、参照していた.NET Frameworkのライブラリを.NETのライブラリに置き換える必要があります。
.NET Frameworkは開発言語にVB、C#が利用できましたが、.NETはC#のみです。つまり、VBで作成したプログラムは.NET Framework上でしか動かず.NETに対応するにはC#で書き直すしかありません。
2..NET Framework、.NETとOSの依存関係
上図はOS(Windows)でのインストールのされ方を図式化したものです。
.NET Framework2.0/3.0/3.5系と.NET Framework4系は完全に独立しており、同一のOSに対して各々インストールすることが可能で、共存できます。
さらに.NET Core、.NET 5、.NET6はバージョンごと完全に独立しており同一のOSに対して各々インストールすることが可能で、共存できます。
そして、各系統はインストール方法に差があります。
.NET Framework2.0/3.0/3.5系
2.0に対し3.0で機能追加され、さらに3.5で機能追加がなされました。例えば3.5をインストールすると、2.0と3.0も同時にインストールされる包括インストールです。
言い換えると、3.5だけをインストールすることはできません。
.NET Framework4系
共存できない、置換えインストールです。例えば、4.5から4.6にアップデートする場合、インストーラーは4.5をアンインストールしてから4.6をインストールします。
.NET Core / .NET
バージョンごと共存できる独立インストールです。インストーラーに.NET Core、.NETを含むことができます。つまり、インストールするOSに対象の.NET Core、 .NETがインストールされていない場合、プログラムと併せてインストールすることができます。
3..NET Framework、.NETのサポート期限
.NET Framework2.0/3.0/3.5系
バージョン |
リリース日 |
サポート期限 |
.NET Framework2.0 |
2006/02/17 |
2011/07/12 |
.NET Framework3.0 |
2006/11/21 |
2011/07/12 |
.NET Framework3.5 |
2007/11/19 |
2029/01/09 |
.NET Framework4系
バージョン |
リリース日 |
サポート期限 |
.NET Framework 4.5 |
2012/10/09 |
2016/01/12 |
.NET Framework 4.5.1 |
2014/01/15 |
2016/01/12 |
.NET Framework 4.5.2 |
2014/05/05 |
2022/04/26 |
.NET Framework 4.6 |
2015/07/29 |
2022/04/26 |
.NET Framework 4.6.1 |
2015/11/30 |
2022/04/26 |
.NET Framework 4.6.2 |
2016/08/02 |
2026/07/14 |
.NET Framework 4.7 |
2017/04/11 |
2026/07/14 |
.NET Framework 4.7.1 |
2017/10/17 |
2026/07/14 |
.NET Framework 4.7.2 |
2018/04/30 |
2029/01/08 |
.NET Framework 4.8 |
2019/04/18 |
注※ |
※注:.NET FrameworkはMicrosoftのサポートポリシー「コンポーネント ライフサイクル ポリシー」によりサポート期限が定められます。これは、.NET FrameworkがプレインストールされたOSのサポート期限まで.NET Frameworkのサポートを保証するというものです。
.NET Framework 4.8はWindows Server 2022にプレインストールされています。Windows Server 2022のサポート期限が2031/10/14なので、少なくとも2031/10/14まではサポートが保証されます。
さらに、次に発売されるOSに.NET Framework 4.8がプレインストールされればそのサポート期限がさらに延びるということになります。
今のところ、Microsoftは新バージョンの開発は終了しても、現行.NET Framework 4.8の次期OSへのプレインストールを続けるとアナウンスしています。このためサポート期限は未定です。
.NET Core / .NET
バージョン |
リリース日 |
サポート期限 |
.NET Core 3.1 |
2019/12/03 |
2022/12/03 |
.NET 5 |
2020/11/10 |
2022/02/08※注 |
.NET 6 |
2021/11/08 |
2024/11/07※注 |
※注:.NETはMicrosoftの新しいサポートポリシー「モダンライフサイクルポリシー」によりサポート期限が定められます。
この「モダンライフサイクルポリシー」とはWindwos10と同じように新しいバージョンにアップデートする限り永続的に.NETを利用できるというサポート方式です。
.NET自体をサポート終了とし、今後リリースしない場合は、サポート終了する旨少なくとも12ヶ月前にアナウンスします。この場合にのみ、サポート期限が設定されます。
バージョンごと奇数番(.NET 5、.NET 7~)はCurrent版と呼ばれ、新しいバージョンのリリース日の3ヶ月後がサポート期限になります。偶数番(.NET 6、.NET 8~)はLTS版(Long-Term Support:長期サポート)と呼ばれリリース日から3年後がサポート期限になります。
現在はバージョンごとサポート期限が設定されてはいるものの、.NET自体はサポートを継続する。つまり次期.NETをリリースする。サポートを継続する。と約束された状態です。
4..NET Framework、.NETのバージョンとOS、Microsoft Visual Studioの対応表
バージョン |
対応OS |
Microsoft Visual Studio |
.NET Framework 3.5 |
Windows8.1,10、Windows Server 2012 R2,2016,2019 |
Visual Studio 2008以降 |
.NET Framework 4.5.2 |
Windows8.1、Windows Server 2012 R2 |
Visual Studio 2013以降 |
.NET Framework 4.6 |
Windows8.1,10、Windows Server 2012 R2 |
Visual Studio 2015以降 |
.NET Framework 4.6.1 |
Windows8.1,10、Windows Server 2012 R2 |
Visual Studio 2017以降 |
.NET Framework 4.6.1 |
Windows8.1,10、Windows Server 2012 R2 |
Visual Studio 2017以降 |
.NET Framework 4.6.2 |
Windows8.1,10、Windows Server 2012 R2,2016 |
Visual Studio 2017以降 |
.NET Framework 4.7 |
Windows8.1,10、Windows Server 2012 R2,2016 |
Visual Studio 2017以降 |
.NET Framework 4.7.1 |
Windows8.1,10、Windows Server 2012 R2,2016 |
Visual Studio 2017以降 |
.NET Framework 4.7.2 |
Windows8.1,10、Windows Server 2012 R2,2016,2019 |
Visual Studio 2019以降 |
.NET Framework 4.8 |
Windows8.1,10,11、Windows Server 2012 R2,2016,2019,2022 |
Visual Studio 2019以降 |
.NET Core 3.1 |
Windows8.1,10,11、Windows Server 2012 R2,2016,2019,2022 macOS X El Capitan 10.11、macOS Sierra 10.12 Linuxについては明確な対応バージョンのアナウンスなし |
Visual Studio 2019以降 Visual Studio 2017 for Mac |
.NET 5 |
Windows8.1,10,11、Windows Server 2012 R2,2016,2019,2022 macOS High Sierra 10.13、macOS Mojave 10.14、macOS Catalina 10.15 Linuxについては明確な対応バージョンのアナウンスなし |
Visual Studio 2019以降 Visual Studio 2019 for Mac |
.NET 6 |
Windows8.1,10,11、Windows Server 2012 R2,2016,2019,2022 macOS High Sierra 10.13、macOS Mojave 10.14、macOS Catalina 10.15 Linuxについては明確な対応バージョンのアナウンスなし |
Visual Studio 2022以降 Visual Studio 2022 for Mac |