.NET Framework

出典: フリー百科事典『ウィキペディア(Wikipedia)』
2014年6月26日 (木) 10:32時点における210.175.247.10 (トーク)による版 (バージョン: 4.5.2 バージョン番号)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
移動先: 案内検索

テンプレート:Redirect

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

WindowsアプリケーションだけでなくXML WebサービスウェブアプリケーションなどWebベースのアプリケーションなどを取り入れた環境。一般に.NETという場合、.NET全体の環境を指す。

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

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

設計目標と重要な特徴

.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ではサンドボックスの概念を用いることなく、様々な権限レベルでコードを実行することができる。

アーキテクチャ

ファイル:Diagram of Common Language Infrastructure (ja).png
.NET Frameworkにおけるコードの流れ

共通言語基盤

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

アセンブリ

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

メタデータ

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

バージョン

各バージョンは上位互換性が原則としてある。しかし、1.1から2.0へは一部が上位互換性がない。2.0以降は上位互換があるとされている。

.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日

.NET Framework 1.0

.NET Frameworkの最初のバージョンである。Windows 98、NT 4.0、2000、XP向けに提供された。

.NET Framework 1.1

.NET Frameworkの最初のバージョン更新である。

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

.NET Framework 2.0

いくつかのAPIの追加とCLRに変更が加えられた。次のような特徴を持っている。Microsoft Visual Studio 2005以降で開発可能である。

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

.NET Framework 3.0

もともと「WinFX」という名称で提供される予定だったが、2006年6月に現在の名称に変更された[4]Windows VistaWindows Server 2008には標準搭載されている。Windows Me以前およびWindows 2000以前では動作せず、Windows XP以降が必要である。

クラスライブラリや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

バージョン3.0と同様、CLRのバージョンは2.0のままで、いくつかの追加が行われている。.NET Framework 3.5のリリースと同時に基本クラスライブラリ (BCL) はMicrosoft Reference Licenceのライセンス下で公開された。また、J#言語が開発言語として対応を終了した。

主に含まれる変更点は

等がある。

マイクロソフト社のクラウドサービスであるWindows Azureはこのバージョン3.5上で稼動している。

.NET Framework 4

CLRのバージョンは4となる。Visual Studio 2010 で対応した。

  • F# のフル サポート
  • 動的言語ランタイム (DLR)
  • Managed Extensibility Framework (MEF)
  • Parallel Extensions(並列プログラミング)
  • Velocity(分散キャッシュAPI)
  • NUI (Windows タッチ)アプリケーションの開発

など。

.NET Framework 4.5

CLRのバージョンは4.5となる。これまでの更新とは異なり、前バージョンである.NET 4を置き換える形となっている。そのため.NET 4とは共存できないが、.NET 4.5は .NET 4とほぼ完全な互換性があるとされている。Windows XPへの対応が打ち切られ、Vista以降が必須となった。

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

開発環境

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

統合開発環境

用語

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

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

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

脚注

テンプレート:脚注ヘルプ テンプレート:Reflist

関連項目

外部リンク

ダウンロード

テンプレート:マイクロソフト テンプレート:Windows Components

テンプレート:.NET
  1. テンプレート:Cite web
  2. テンプレート:Cite web
  3. テンプレート:Cite web
  4. テンプレート:Cite web
  5. KDDI(2009-01-21)「.net by au (ドットネット バイ エーユー)」の提供開始について 2009-02-27閲覧。