.NET Framework

マイクロソフトが開発したアプリケーション開発・実行環境

Microsoft .NET Frameworkマイクロソフト ドットネット フレームワーク)は、マイクロソフトが開発したアプリケーション開発・実行環境である。

Microsoft .NET Framework
開発元 マイクロソフト
対応OS Windows 7,
Windows Server 2008 R2,
それ以降
プラットフォーム Microsoft Windows
種別 プラットフォーム
ライセンス Microsoft EULA,
Microsoft Reference License (BCL),
MITライセンス,
プロプライエタリ
公式サイト dotnet.microsoft.com/
テンプレートを表示

Windowsアプリケーションだけでなく、XML WebサービスウェブアプリケーションなどWebベースのアプリケーションなども包括した環境となっている。一般に.NETという場合、.NET全体の環境を指す。現在はOSS版の.NET CoreMonoも包括した技術仕様の総称を.NETと呼び、プロプライエタリの初期から存在する従来のWindows専用実装のみを.NET Frameworkと呼んで区別している。

バージョン4.8をもって.NET Frameworkのメジャーアップデートを終了することがアナウンスされている[1]セキュリティバグ修正のための更新は継続されるが、以降の新規開発における推奨環境は.NET Coreの次期バージョン「.NET 5」およびそれ以降である。

アーキテクチャ 編集

 
.NET Frameworkにおけるコードの流れ

共通言語基盤 編集

.NET Frameworkにおける最も重要な概念は共通言語基盤 (CLI) に含まれている。CLIの目的は言語に依存しない開発環境および実行環境を提供することである。マイクロソフトによるCLIの実装は共通言語ランタイム (CLR) と呼ばれる。CLRは次の主要な5項目からなる。

アセンブリ 編集

CILのコードはアセンブリ(WindowsにおいてはPE形式)の中に格納される。アセンブリは配置・バージョン・セキュリティの単位である。

メタデータ 編集

全てのCILコードはそれ自身の情報をメタデータとして保持している。CLRは正しいメソッド呼び出しが行われていることをメタデータによってチェックしている。メタデータはコンパイラによって生成されるが、開発者が独自のメタデータをカスタム属性として付加することも可能である。

設計目標と重要な特徴 編集

.NET Frameworkは次のような目標に基づいて設計されている。

相互運用性
.NETアプリケーションや.NETクラスライブラリではないプログラムとの相互運用を可能にするためのアクセス方法を提供する。例えばCOMコンポーネントへのアクセスはSystem.Runtime.InteropServicesSystem.EnterpriseServicesなどの名前空間によって提供され、それ以外の機能はP/Invokeによって提供される。
共通の実行環境
.NET Frameworkにおいてはあらゆる言語で記述されたプログラム共通中間言語と呼ばれる中間言語コンパイルされる。マイクロソフトの実装では、この中間言語はJITコンパイラによって実行時にネイティブコードにコンパイルされる。これらの概念は共通言語基盤の仕様に含まれており、マイクロソフトによる共通中間言語の実装を共通言語ランタイムと呼ぶ。
言語への非依存性
.NET Frameworkは共通型システムと呼ばれる概念を導入した。共通型システムの仕様には共通言語ランタイムでサポートされるデータ型について定義されている。このため、複数の言語を用いた開発が可能になる。
基本クラスライブラリ (BCL)
基本クラスライブラリは全ての.NET Frameworkで利用可能なクラスライブラリである。BCLはファイル入出力、グラフィックス、データベース、XML文書処理など、多くの共通機能をカプセル化したクラス群を提供する。
配置
ソフトウェアをコンピュータにインストールする際、既にインストールされているソフトウェアとの相互干渉やセキュリティといった問題に注意しなければならない。.NET Frameworkはこういった要求に応えるための機能やツールを提供する。
セキュリティ
.NET Frameworkではサンドボックスの概念を用いることなく、様々な権限レベルでコードを実行することができる。

用語 編集

マネージコード
CLRがメモリを完全に把握/管理できるコード。.NET Frameworkで作成するコードの大半はマネージコードである。マネージコード以外のコード(Win32アプリケーション、COMコンポーネントやアンセーフなコード)をアンマネージコードという。
アプリケーションドメイン
CLRから見たプロセス空間のようなもので、それぞれ独立したドメインの中でコードを動作させることができる。一つのアプリケーションはCLRを一つしかホストできないが、CLRには複数のアプリケーションドメインを持つことができる。
メタデータ
依存関係をはじめクラスや型、インタフェースなどコードに関する情報。
属性
メソッドやクラス、アセンブリに宣言できメタデータとして格納される情報。System.Attributeから派生させたクラスとして開発者が独自に作成でき、実行時に参照・利用できる(カスタム属性)。またCLRのみが認識できる擬似カスタム属性もある。
アセンブリ
アプリケーションを配置、利用するときの単位。アセンブリにはメタデータが含まれており、サテライトアセンブリを除き、モジュール、リソースも含まれている。アプリケーションドメインに読み込むことのできる最小の単位でもある。

開発環境 編集

C#Visual Basic .NETF#JScript .NETのコンパイラ、各種ツール、ドキュメントなどのSDKはマイクロソフトから無償で配布されている。

統合開発環境 編集

.NET Frameworkに対応しているものは以下。

.NET Frameworkだけでなく、互換環境であるMono.NET Coreに対応しているものもある。

Microsoft Visual Studio へのプラグイン 編集

オープンソース化 編集

2014年11月12日、米国マイクロソフトによるイベント「Connect();」で、.NET Frameworkのうち下記の物をMITライセンスの下で公開したことが発表された[2]

  • .NET Framework 4.6 リファレンスソース
  • ASP.NET 5
  • Entity Framework 6
  • .NET Core 5 (のちに.NET Core 1.0としてリナンバリングされた)
  • .NET Compiler Platform ("Roslyn")

これらは製品レベルの実装であり、シェアードソース実装ではない。ターゲットとして、既存のWindowsプラットフォームの他に、LinuxOS Xが含まれる。

.NET Framework 4.6 のリファレンスソースがMITライセンスになったことにより、それが Mono 4.0 に取り込まれた[3]

マイクロソフト社以外の実装 編集

また.NET Frameworkの基盤となっている仕様である共通言語基盤 (CLI) はEcmaインターナショナルISOJISにて標準化されており[4][5][6]、マイクロソフト以外のベンダーが独自に実装することもできる。実際にXamarinによるMonoプロジェクトをはじめ、いくつかのオープンソースによる実装プロジェクトがある。それらを使うことで.NET FrameworkでコンパイルしたプログラムをLinuxmacOSなどのWindows以外のOSでも動かすこともできる。なお、マイクロソフトによるCLIの実装を共通言語ランタイム (CLR) と呼ぶ。.NET FrameworkはCLRにその他ライブラリ群を加えたものと言える。

近年[いつ?]では共通言語ランタイム上でJava仮想マシンの実装を試みるIKVM.NETなどのオープンソースプロジェクトも活発化している。

Windows以外のプラットフォームでの実装 編集

Mono
オープンソースプロジェクトによる.NET Framework互換環境の実装。統合開発環境としてMonoDevelopがある。
DotGNU Project
オープンソースプロジェクトによる.NET Framework(CLI+MS拡張)互換環境の実装。GPLに基づいて開発(一部ライブラリなどに例外等がある)。
Shared Source CLI
マイクロソフトによるFreeBSD/Mac OS X/Windows向けのECMA CLI/C#の実装。
.net by au
BREWプラットフォームを用いたKDDIおよび沖縄セルラー電話が提供するau携帯電話専用の.NET Framework互換環境の実装。ただし、利用できるのは法人専用端末のE05SHE06SHの2機種とWindows XP Professional SP3がインストールされたPCのみ[7]
.NET Core
マイクロソフトによるクロスプラットフォームかつオープンソースのリファレンス実装。2016年6月27日にv1.0がリリースされている[8]

バージョン 編集

.NET バージョン リスト
バージョン名 バージョン番号 リリース日
Pre-beta ?.?.?.? 2000年7月11日
1.0 Beta1 1.0.?.0 2000年9月
1.0 Beta2 1.0.2914.0 2001年6月20日
1.0 1.0.3705.0 2002年1月5日
1.0 SP1 1.0.3705.209 2002年3月19日
1.0 SP2 1.0.3705.288 2002年8月7日
1.0 SP3 1.0.3705.6018 2004年8月31日
1.0 SP3 (XP MCE/TPC, KB974378) 1.0.3705.6073 2009年10月14日
1.1 1.1.4322.573 2003年4月1日
1.1 SP1 1.1.4322.2032 2004年8月30日
1.1 SP1 (Server 2003) 1.1.4322.2300 2005年3月30日
1.1 SP1 (KB974378) 1.1.4322.2443 2009年10月14日
2.0 2.0.50727.42 2005年11月7日
2.0 (NT6.0) 2.0.50727.312 2007年1月30日
2.0 (KB928365) 2.0.50727.832 2007年7月10日
2.0 (NT6.0, KB974378) 2.0.50727.1003 2009年10月14日
2.0 SP1 2.0.50727.1433 2007年11月19日
2.0 SP1 (NT6.0 SP1) 2.0.50727.1434 2008年2月4日
2.0 SP1 (NT6.0 SP1, KB974378) 2.0.50727.1873 2009年10月14日
2.0 SP1 (KB2265906, .NET 3.5) 2.0.50727.1882 2010年8月11日
2.0 SP2 2.0.50727.3053 2008年8月12日
2.0 SP2 (KB959209) 2.0.50727.3074 2009年1月26日
2.0 SP2 (KB974378) 2.0.50727.3603 2009年10月14日
2.0 SP2 (KB2265906, .NET 3.5 SP1) 2.0.50727.3615 2010年8月11日
2.0 SP2 (NT6.0 SP2) 2.0.50727.4016 2009年4月29日
2.0 SP2 (NT6.0 SP2, KB974378) 2.0.50727.4200 2009年10月14日
2.0 SP2 (NT6.0 SP2, KB2265906, .NET 3.5 SP1) 2.0.50727.4206 2010年8月11日
2.0 SP2 (NT6.1) 2.0.50727.4927 2009年7月13日
2.0 SP2 (NT6.1 SP1) 2.0.50727.5420 2010年11月19日
3.0 3.0.4506.30 2006年11月6日
3.0 (NT6.0) 3.0.4506.26 2007年1月30日
3.0 SP1 3.0.4506.648 2007年11月19日
3.0 SP2 3.0.4203.2152
3.0.4506.2123
3.0.6920.1453
2008年8月12日
3.0 SP2 (NT6.0 SP2) 3.0.4506.4037
3.0.6920.4000
2009年4月29日
3.0 SP2 (NT6.1) 3.0.4203.4926
3.0.4506.4926
3.0.6920.4902
2009年7月13日
3.0 SP2 (NT6.1 SP1) 3.0.4203.5420
3.0.4506.5420
3.0.6920.5011
2010年11月19日
3.5 3.5.21022.8 2007年11月19日
3.5 SP1 3.5.30729.1 2008年8月12日
3.5 SP1 (NT6.1) 3.5.30729.4926 2009年7月13日
3.5 SP1 (NT6.1 SP1) 3.5.30729.5420 2010年11月19日
4.0 4.0.30319.1 2010年4月13日
4.5 4.5.50709.17929 2012年8月15日
4.5.1 4.5.50938.18408 2013年10月12日
4.5.2 4.5.51209 2014年5月5日
4.6 4.6.00081.00 2015年7月20日
4.6.1 4.6.01055 2015年11月30日
4.6.2 4.6.01586 2016年8月2日
4.7 4.7.02053 2017年4月5日
4.7.1 4.7.02556 2017年10月17日
4.7.2 4.7.03056 2018年4月30日
4.8 4.8.03761 2019年4月18日
4.8.1 2022年8月9日

CLR バージョンと共存性 編集

各バージョンは上位互換性が概ねある。しかし、上位互換性が保証されているのは、CLR のバージョンが同じものであり、CLR のバージョンが同じ物は1つしかインストールできない[9]。現在、下記の CLR バージョンが存在する[10]

  • 1.0: .NET Framework 1.0
  • 1.1: .NET Framework 1.1
  • 2.0: .NET Framework 2.0〜3.5
  • 4.0: .NET Framework 4.0〜4.8

.NET Framework 1.0 編集

.NET Frameworkの最初のバージョンである。Windows 98NT 4.02000XP向けに提供された。 Windows XP SP1のCD-ROMには標準でインストーラーが収録されている。

.NET Framework 1.1 編集

.NET Frameworkの最初のバージョン更新である。 Windows XP SP2およびSP3のCD-ROMには標準でインストーラーが収録されている。

.NET Framework 1.0からの主な変更点

  • ASP.NETのモバイル向け機能の追加
  • セキュリティ仕様の変更
  • ODBCOracle Database用のデータ接続の標準サポート
  • IPv6のサポート
  • 多数のAPIの変更

.NET Framework 2.0 編集

いくつかのAPIの追加とCLRに変更が加えられた。次のような特徴を持っている。Microsoft Visual Studio 2005以降で開発可能である。 Windows Server 2003には標準搭載されている。Windows NT 4.0への対応はこのバージョンで打ち切られた。

.NET Framework 1.1からの主な変更点

.NET Framework 3.0 編集

もともと「WinFX」という名称で提供される予定だったが、提供の5か月前の2006年6月に現在の名称に変更された[11]Windows VistaWindows Server 2008には標準搭載されている。Windows 98、ME、2000への対応はこのバージョンで打ち切られ、Windows XPより前のOSでは動作しない。

クラスライブラリやCLRなどの基盤は.NET Framework 2.0から変更されておらず、以下の4つの新しいテクノロジーを加えたものとなっている。

Windows Presentation Foundation (WPF)
XMLに基づく新しいユーザインタフェースサブシステム。
Windows Communication Foundation (WCF)
新しい通信サブシステム。
Windows Workflow Foundation (WF)
ワークフローによるアプリケーション開発のためのフレームワーク。
Windows CardSpace (WCS)
ユーザの個人情報をセキュアに管理し、統一されたアクセス方法を提供するためのフレームワーク。

.NET Framework 3.5 編集

Windows 7に標準搭載されている。Visual Studio 2008以降で開発可能。Windows 8以降では既定で無効化されており、インターネット接続もしくはインストールメディアを利用して明示的な有効化すなわちインストールが必要となる[10]。バージョン3.0と同様、CLRのバージョンは2.0のままで、いくつかの追加が行われている。.NET Framework 3.5のリリースと同時に基本クラスライブラリ (BCL) はMicrosoft Reference Licenseのライセンス下で公開された。また、J#言語が開発言語として対応を終了した。サポート終了は、バンドルしているWindowsのサポート終了日か2028年10月10日のどちらか短い方となる。

主に含まれる変更点は

等がある。

.NET Framework 4 編集

2010年4月13日にリリースされた。CLRのバージョンは4となる。Visual Studio 2010以降で開発可能。

など。

.NET Framework 4.5 編集

2012年8月15日にリリースされた。Windows 8に標準搭載されている。Visual Studio 2012以降で開発可能。CLRのバージョンは継続して4[10]。前バージョンである.NET 4を置き換える形となっている。そのため.NET 4とは共存できないが、.NET 4.5は.NET 4とほぼ完全な互換性があるとされている。Windows XPへの対応が打ち切られ、Vista以降が必須となった。

  • Windows Modernスタイル アプリケーション(Windowsストアアプリ)の開発
  • 非同期プログラミング
  • 既存機能の大幅な改良

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以降を開発に利用することも可能である[12]

.NET Framework 4.6 編集

2015年7月20日にリリースされた。Windows 10 ver.1507に標準搭載され、Vista以降が必要。Visual Studio 2015にて対応。継続して4.xは一つのバージョンしかインストールできない。

  • ASP.NET 5対応
  • RyuJIT - 新しい64ビット版のJITコンパイラ
  • .NET Native
  • オープンソース化

4.6.1が2015年11月30日にリリースされた[13]。4.6.1ではWindows Vista/Windows Server 2008のサポートが終了している。4.6.2は2016年8月2日にリリースされた[14]

.NET Framework 4.7 編集

Windows 10 ver.1703と同時に、2017年4月5日にリリースされた[15]。これまでの.NET/Visual Studioの新バージョン公開スケジュールとは異なり、.NET 4.7よりもVisual Studio 2017のリリースが先行する形となった。旧OSへのバックポートもアナウンスされ、2017年5月2日に利用可能となった[16]。なお、.NET Framework 4.7以降はWindows 10 ver.1507/1511についてはWindows 10 ver.1507/1511のサポートが終了しているため、サポート外になっている。

2017年10月17日、Windows 10 ver.1709と同時に4.7.1がリリースされた[17]。 2018年4月30日、Windows 10 ver.1803と同時に4.7.2がリリースされた[18]

.NET Framework 4.8 編集

2019年4月18日に正式リリースされた[19]。本バージョンをもって.NET Frameworkのメジャーアップデートは終了するが、バグ修正やセキュリティ修正のサポート、Windowsへの搭載は継続される[1]

Windows 11のInsider Previewビルド22504には、ARM64のネイティブサポートを追加した.NET Framework 4.8.1が搭載されることがアナウンスされた[20][21]

2022年8月9日、Windows 10 ver.20H2以降を対象に4.8.1がリリースされた[22]

脚注 編集

  1. ^ a b Scott Hunter (2019年5月6日). “.NET Core is the Future of .NET”. .NET Blog. マイクロソフト. 2019年9月21日閲覧。 “.NET Framework 4.8 will be the last major version of .NET Framework. If you have existing .NET Framework applications that you are maintaining, there is no need to move these applications to .NET Core. We will continue to both service and support .NET Framework, which includes bug–, reliability– and security fixes.”
  2. ^ Announcing .NET 2015 Preview: A New Era for .NET | .NET Blog
  3. ^ Mono 4.0.0 Release Notes | Mono
  4. ^ Ecmaインターナショナル (2006年6月). “Standard ECMA-335 Common Language Infrastructure (CLI)” (英語). 2008年1月15日閲覧。
  5. ^ ISO/IEC (2006年9月27日). “ISO/IEC 23271:2003Information technology -- Common Language Infrastructure” (英語). ISO/IEC JTC 1/SC 22. 2008年1月15日閲覧。
  6. ^ マイクロソフト (2006年11月20日). “Microsoft(R) .NET Frameworkの基本仕様である共通言語基盤 (CLI) がJIS X 3016として公示”. 2008年1月15日閲覧。
  7. ^ KDDI(2009-01-21)「.net by au (ドットネット バイ エーユー)」の提供開始について 2009-02-27閲覧。
  8. ^ GitHub - dotnet/core at 1.0.0
  9. ^ Windows TIPS:.NET Frameworkのバージョンを整理する - @IT
  10. ^ a b c .NET Framework Versions and Dependencies
  11. ^ マイクロソフト (2006年6月12日). “WinFX から .NET Framework 3.0 への名前変更について”. MSDNライブラリ. 2009年1月15日閲覧。
  12. ^ .NET Framework サポート ライフサイクル ポリシーについて (2015年10月) – Visual Studio 日本チーム Blog
  13. ^ .NET Framework 4.6.1 is now available! - .NET Blog - Site Home - MSDN Blogs
  14. ^ Announcing .NET Framework 4.6.2 | .NET Blog
  15. ^ Announcing .NET Framework 4.7 | .NET Blog
  16. ^ Announcing the .NET Framework 4.7 General Availability | .NET Blog
  17. ^ Announcing the .NET Framework 4.7.1 | .NET Blog
  18. ^ Announcing the .NET Framework 4.7.2 | .NET Blog
  19. ^ Announcing the .NET Framework 4.8 | .NET Blog
  20. ^ Announcing Windows 11 Insider Preview Build 22504 | Windows Insider Blog
  21. ^ Windows 11のテキスト入力にテーマ機能、絵文字パネルも強化 ~まずはプレビュー版に投入 - 窓の杜
  22. ^ Announcing .NET Framework 4.8.1 | .NET Blog

関連項目 編集

外部リンク 編集

インストール方法 編集