++C++; // 未確認飛行 C

Google
Web ufcpp.net

.NET Framework とは

目次

キーワード

.NET Framework

Microsoft .NET Framework とは Microsft が提供する、(2000年6月に発表された)新しい開発プラットフォームです。

.NET Framework では、プログラムはネイティブコードではなく、IL (Intermediate Language)と呼ばれる中間コードにコンパイルされます。 この IL を実行するための環境(の仕様)を CLI (Common Language Infrastructure)といいます。 IL は、この CLI 仕様にそった実装さえされていれば任意のプラットフォームで実行することが出来ます。

Microsoft 自身による Windows 上の CLI 実装である Common Language Runtime (CLR)に加えて、 現在、Microsoft は Corel と提携し、 Mac / FreeBSD 版の CLI を開発しています。 (β版が Microsoft のサイトCorel のサイトからダウンロードできます。) また、 Ximian が Linux 版の CLI であるmonoを、 Southern Storm Software が、DotGNU を開発しています(C#コンパイラとクラスライブラリの一部は完成)。

また、IL は CLI によってファイル、メモリ、ネットワーク接続などのリソースを管理されていて、 メモリの解放し忘れなどによるリソースリークを防ぐことが出来ます。

.NET Framework に対応したすべての言語は IL にコンパイルされます。 現在、.NET Framework に対応している言語は Microsoft が提供している C#、VB.NET、C++/CLI (C++を.NETに適応するように改良したもの)、JScript や、サードパーティの提供する Perl や Python など、20種類以上のものがあります。 .NET Framework では、これらすべての言語で同じライブラリを利用できますし、 異なる言語で書かれたプログラムを呼び出すことが出来ます。 例えば、C++/CLI で書かれたクラスを継承した新しいクラスを VB.NET で作り、そのクラスを C# から呼び出すといったことも可能です。

また、.NET Framework を用いることでプログラマは COM やレジストリなどの知識がなくても分散アプリケーションの作成、配布が容易に行えます。

VB、JScript、C++ などの既存の言語は、.NET Framework に対応出来るように拡張されています。 一方、C# は初めから .NET Framework 上で使うことを想定して設計された言語です。

そのほかにも .NET Framework はさまざまな特徴を備えています。 表1に、.NET Framework の特徴を簡単にまとめます。 詳細については MSDN をご覧ください。

表1: .NET Framework の特徴

言語の統合C++、VB、C#など複数の言語を統合する。例えば、VBで作成したクラスの派生クラスをC++で作成することも可能である。
プログラミングの簡素化COMやレジストリの知識を必要としない。
さまざまなプラットフォームでの実行Common Language Infrastructure (CLI)をサポートする任意のプラットフォームで実行することが出来る。将来的にはWindows以外のプラットフォーム用のCLRも作成される可能性がある。
自動リソース管理ファイル、メモリ、ネットワーク接続などのリソースの利用状況を自動的に追跡し、アプリケーションによるリソースリークを防ぐ。
データ記述用に XML 規格を採用アプリケーション間でやり取りするデータ記述用にXMLを採用し、分散アプリケーションの作成、配布を支援する。

.NET Framework のバージョン

.NET Framework は、 大まかに言うと、

  • ソースコードから中間コード(IL: Intermediate Language)を生成するコンパイラ
  • IL を実行するインフラ(CLI: Common Language Infrastructure)
  • 標準ライブラリ

からなります。

.NET Framework は今までに、 1.0 → 1.1 → 2.0 → 3.0 とバージョンアップしていて、 2007年末にはさらに 3.5 が出ました。

バージョンアップに伴い、 上述の各要素がどう変わったのかを表1にまとめます。

表2: .NET Framework のバージョンと新機能

1.01.12.03.03.5
CLICLR 1.0CLR 1.1 (主にバグフィックス) CLR 2.0 (Generics に関する仕様を追加)
コンパイラVB 7、C# 1.0 主にバグフィックス、 C# 1.2 (/** コメント追加) VB 8、C# 2.0 (Generics、イテレータ、匿名デリゲート等追加) VB 9、C# 3.0 (LINQ 関連機能追加)
ライブラリ主にバグフィックスGenerics ライブラリ追加WPF、WCF、WF、WCS 追加LINQ ライブラリ、APS.NET AJAX ライブラリ追加

まあ、簡単にまとめると以下の通り。

  • 1.0 → 1.1: バグフィックス
  • 1.1 → 2.0: Generics 関連(CLI も修正)
  • 2.0 → 3.0: ライブラリの追加(WPF, WCF, WF, WCS)
  • 3.0 → 3.5: LINQ 関連コンパイラ機能 & ASP.NET AJAX ライブラリ追加

.NET Framework と共に歩を進めてきた感のある C# のバージョンも、 ところどころ食い違ってるのに注意。 特に、.NET Framework 3.0(元々はフレームワークのバージョンアップではなくて、WinFX という呼称のライブラリ群の追加ということにする予定だった)では C# のバージョンは 2.0 のままです。

ちなみに、.NET Framework のバージョンは 3.0、3.5 とあがっていますが、 CLR の仕様は 2.0 の頃から代わっていません。 なので、3.0、3.5 で追加されたライブラリさえ使わなければ、 C# 3.0 でコンパイルしたプログラムも .NET Framework 2.0 しか入っていないコンピュータで実行可能です。

Transtation into English

[お問い合わせ](q)