Microsoft .NET Framework とは Microsft が提供する、(2000年6月に発表された)新しい開発プラットフォームです。
.NET framework では、プログラムはネイティブコードではなく、IL (Intermediate Language)と呼ばれる中間コードにコンパイルされます。
この IL を実行するための環境を CLI (Common Language Infrastructure)といいます。 IL は、この CLI さえ実装されていれば任意のプラットフォームで実行することが出来ます。 現在、Microsoft は Corel と提携し、 FreeBSD 版の CLI を開発しています。 (β版が Microsoft のサイトや Corel のサイトからダウンロードできます。) また、 Ximian が Linux 版の CLI であるmonoを、 Southern Storm Software が、DotGNU を開発しています(C#コンパイラとクラスライブラリの一部は完成)。
また、IL は CLI によってファイル、メモリ、ネットワーク接続などのリソースを管理されていて、 メモリの解放し忘れなどによるリソースリークを防ぐことが出来ます。
.NET framework に対応したすべての言語は IL にコンパイルされます。 現在、.NET framework に対応している言語は Microsoft が提供している C#、VB.NET、Managed C++ (C++を.NETに適応するように改良したもの)、JScript や、サードパーティの提供する Perl や Python など、20種類以上のものがあります。 .NET framework では、これらすべての言語で同じライブラリを利用できますし、 異なる言語で書かれたプログラムを呼び出すことが出来ます。 例えば、C# で書かれたクラスを継承した新しいクラスを VB.NET で作り、そのクラスを Managed 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 Runtime(CLR)をサポートする任意のプラットフォームで実行することが出来る。将来的にはWindows以外のプラットフォーム用のCLRも作成される可能性がある。 |
| 自動リソース管理 | ファイル、メモリ、ネットワーク接続などのリソースの利用状況を自動的に追跡し、アプリケーションによるリソースリークを防ぐ。 |
| データ記述用に XML 規格を採用 | アプリケーション間でやり取りするデータ記述用にをXMLを採用し、分散アプリケーションの作成、配布を支援する。 |