Microsoft .NET Framework(マイクロソフト ドットネット フレームワーク)は、マイクロソフトが開発していたアプリケーション開発・実行環境である。バージョン4.8をもって.NET Frameworkのメジャーアップデートは終了し、セキュリティとバグ修正のための更新は継続されるが、以降の新規開発における推奨環境は.NETとなった[3]。
Windowsアプリケーションだけでなく、XML WebサービスやウェブアプリケーションなどWebベースのアプリケーションなども包括した環境となっている。一般に.NETという場合、.NET全体の環境を指す。現在はOSS版の.NET CoreやMonoも包括した技術仕様の総称を.NETと呼び、プロプライエタリの初期から存在する従来のWindows専用実装のみを.NET Frameworkと呼んで区別している。
.NET Frameworkにおける最も重要な概念は共通言語基盤 (CLI) に含まれている。CLIの目的は言語に依存しない開発環境および実行環境を提供することである。マイクロソフトによるCLIの実装は共通言語ランタイム (CLR) と呼ばれる。CLRは次の主要な5項目からなる。
CILのコードはアセンブリ(WindowsにおいてはPE形式)の中に格納される。アセンブリは配置・バージョン・セキュリティの単位である。
全てのCILコードはそれ自身の情報をメタデータとして保持している。CLRは正しいメソッド呼び出しが行われていることをメタデータによってチェックしている。メタデータはコンパイラによって生成されるが、開発者が独自のメタデータをカスタム属性として付加することも可能である。
.NET Frameworkは次のような目標に基づいて設計されている。
System.Runtime.InteropServices
System.EnterpriseServices
System.Attribute
C#、Visual Basic .NET、F#、JScript .NETのコンパイラ、各種ツール、ドキュメントなどのSDKはマイクロソフトから無償で配布されている。
.NET Frameworkに対応しているものは以下。
.NET Frameworkだけでなく、互換環境であるMonoや.NET Coreに対応しているものもある。
2014年11月12日、米国マイクロソフトによるイベント「Connect();」で、.NET Frameworkのうち下記の物をMITライセンスの下で公開したことが発表された[4]。
これらは製品レベルの実装であり、シェアードソース実装ではない。ターゲットとして、既存のWindowsプラットフォームの他に、LinuxとOS Xが含まれる。
.NET Framework 4.6 のリファレンスソースがMITライセンスになったことにより、それが Mono 4.0 に取り込まれた[5]。
また.NET Frameworkの基盤となっている仕様である共通言語基盤 (CLI) はEcmaインターナショナル、ISO、JISにて標準化されており[6][7][8]、マイクロソフト以外のベンダーが独自に実装することもできる。実際にXamarinによるMonoプロジェクトをはじめ、いくつかのオープンソースによる実装プロジェクトがある。それらを使うことで.NET FrameworkでコンパイルしたプログラムをLinuxやmacOSなどのWindows以外のOSでも動かすこともできる。なお、マイクロソフトによるCLIの実装を共通言語ランタイム (CLR) と呼ぶ。.NET FrameworkはCLRにその他ライブラリ群を加えたものと言える。
近年[いつ?]では共通言語ランタイム上でJava仮想マシンの実装を試みるIKVM.NETなどのオープンソースプロジェクトも活発化している。
各バージョンは上位互換性が概ねある。しかし、上位互換性が保証されているのは、CLR のバージョンが同じものであり、CLR のバージョンが同じ物は1つしかインストールできない[11]。現在、下記の CLR バージョンが存在する[12]。
.NET Frameworkの最初のバージョンである。Windows 98、NT 4.0、2000、XP向けに提供された。 Windows XP SP1のCD-ROMには標準でインストーラーが収録されている。
.NET Frameworkの最初のバージョン更新である。 Windows XP SP2およびSP3のCD-ROMには標準でインストーラーが収録されている。
.NET Framework 1.0からの主な変更点
いくつかのAPIの追加とCLRに変更が加えられた。次のような特徴を持っている。Microsoft Visual Studio 2005以降で開発可能である。 Windows Server 2003には標準搭載されている。Windows NT 4.0への対応はこのバージョンで打ち切られた。
.NET Framework 1.1からの主な変更点
もともと「WinFX」という名称で提供される予定だったが、提供の5か月前の2006年6月に現在の名称に変更された[13]。Windows VistaやWindows Server 2008には標準搭載されている。Windows 98、ME、2000への対応はこのバージョンで打ち切られ、Windows XPより前のOSでは動作しない。
クラスライブラリやCLRなどの基盤は.NET Framework 2.0から変更されておらず、以下の4つの新しいテクノロジーを加えたものとなっている。
Windows 7に標準搭載されている。Visual Studio 2008以降で開発可能。Windows 8以降では既定で無効化されており、インターネット接続もしくはインストールメディアを利用して明示的な有効化すなわちインストールが必要となる[12]。バージョン3.0と同様、CLRのバージョンは2.0のままで、いくつかの追加が行われている。.NET Framework 3.5のリリースと同時に基本クラスライブラリ (BCL) はMicrosoft Reference Licenseのライセンス下で公開された。また、J#言語が開発言語として対応を終了した。サポート終了は、バンドルしているWindowsのサポート終了日か2028年10月10日のどちらか短い方となる。
主に含まれる変更点は
等がある。
2010年4月13日にリリースされた。CLRのバージョンは4となる。Visual Studio 2010以降で開発可能。
など。
2012年8月15日にリリースされた。Windows 8に標準搭載されている。Visual Studio 2012以降で開発可能。CLRのバージョンは継続して4[12]。前バージョンである.NET 4を置き換える形となっている。そのため.NET 4とは共存できないが、.NET 4.5は.NET 4とほぼ完全な互換性があるとされている。Windows XPへの対応が打ち切られ、Vista以降が必須となった。
4.5.1が2013年10月12日にリリースされた。Windows 8.1に標準搭載されている。4.5.2が2014年5月5日にリリースされた。なお.4.5.1はVisual Studio 2013で対応したが、追加パッケージ (Developer PackまたはTargeting Pack) をインストールすることで、Visual Studio 2012にて4.5.1以降を開発に利用することも可能である[14]。
2015年7月20日にリリースされた。Windows 10 ver.1507に標準搭載され、Vista以降が必要。Visual Studio 2015にて対応。継続して4.xは一つのバージョンしかインストールできない。
4.6.1が2015年11月30日にリリースされた[15]。4.6.1ではWindows Vista/Windows Server 2008のサポートが終了している。4.6.2は2016年8月2日にリリースされた[16]。
Windows 10 ver.1703と同時に、2017年4月5日にリリースされた[17]。これまでの.NET/Visual Studioの新バージョン公開スケジュールとは異なり、.NET 4.7よりもVisual Studio 2017のリリースが先行する形となった。旧OSへのバックポートもアナウンスされ、2017年5月2日に利用可能となった[18]。なお、.NET Framework 4.7以降はWindows 10 ver.1507/1511についてはWindows 10 ver.1507/1511のサポートが終了しているため、サポート外になっている。
2017年10月17日、Windows 10 ver.1709と同時に4.7.1がリリースされた[19]。 2018年4月30日、Windows 10 ver.1803と同時に4.7.2がリリースされた[20]。
2019年4月18日に正式リリースされた[21]。本バージョンをもって.NET Frameworkのメジャーアップデートは終了するが、バグ修正やセキュリティ修正のサポート、Windowsへの搭載は継続される[3]。
Windows 11のInsider Previewビルド22504には、ARM64のネイティブサポートを追加した.NET Framework 4.8.1が搭載されることがアナウンスされた[22][23]。
2022年8月9日、Windows 10 ver.20H2以降を対象に4.8.1がリリースされた[24]。