2008年12月17日水曜日

【framework】


枠組み、下部構造、構造、組織という意味の英単語。

 ソフトウェアの世界では、アプリケーションソフトを開発する際に頻繁に必要とされる汎用的な機能をまとめて提供し、アプリケーションの土台として機能するソフトウェアのこと。アプリケーションの雛型。開発にフレームワークを利用すると、独自に必要とされる部分だけを開発すれば済むため開発効率の向上が見込める。具体的なソフトウェアだけでなく、汎用的に適用できるプログラムの設計モデルや典型的な処理パターンなどを含めてフレームワークと呼ぶ場合もある。

近年ではMicrosoft .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 上で使うことを想定して設計された言語です。

0 件のコメント: