.NET対応アプリケーションは、コンパイル後に中間コード(MSIL=Microsoft Intermediate
Languageと呼ばれる)に変換されます。.NET Frameworkの実行エンジン(CLR=Common Language
Runtimeと呼ばれる)は、中間コードをネイティブコードにJIT(Just In Time)コンパイルしてから実行します。(図2)。
| 図2 .NET対応アプリケーションが動作する仕組み |
 |
中間コードは、特定のハードウエアやOSに依存しません。現状では、Windows(NT 4.0/2000/XP)版の.NET
Frameworkだけがリリースされていますが、間もなくWindows CE版もリリースされる予定です。Unix系のOSであるFreeBSD版の.NET
Frameworkの開発も進められています。.NET対応アプリケーションには、様々な環境で実行できるポテンシャルがあるのです。これは、Javaの"Write
Once Run Anywhere(一度アプリケーションを記述すれば、それがどこでも動作する)"と同様です。
移植性の高い中間コードを採用し、アプリケーションを効率的に作成できる様々なクラスライブラリを提供し、インターネットアプリケーションを開発できるという類似点があることから、.NETはJavaとよく比較されます。どちらが優れているかは、人によって意見が様々ですが、絶対的に.NETが優れている点があります。それは、Javaでは何をするのにもJavaというプログラミング言語を使わなければならないのに対し、.NETならVisual
C#、Visual Basic .NET、Visual C++ .NET、およびNet
COBOL(富士通が開発した.NET対応のCOBOL)など、デベロッパーの得意なプログラミング言語を選択して使えるということです。さらに、どのプログラミング言語を使っても、コンパイル後には同じ形式の中間コードとなるので、異なるプログラミング言語で作成された複数のモジュールを組み合せて1つのアプリケーションを完成させること(これをクロスランゲージ開発と呼ぶ)も可能です(図3)。
| 図3 .NETはクロスランゲージ開発が可能だ |
 |
.NET対応アプリケーションは、レジストリ(Windows固有のシステムデータベース)を一切使わずに動作します。これによって、アプリケーションの配布が容易になります。.NET対応アプリケーションは、基本的にファイルをコピーするだけでインストールできます(これをXCOPYインストールと呼ぶ)。アンインストールは、ファイルを削除するだけです。
.NET
Frameworkは、新しいDLLファイルをインストールすることで、既存のアプリケーションが動作しなくなってしまう「DLL地獄」と呼ばれる問題を解決しています。アプリケーションが使用したメモリを自動的に開放する「ガベージコレクション」の機能を装備しているので、「メモリリーク」と呼ばれる問題も解決しています。
このように説明すると、「.NETなら何もかもいいことづくめ」のようですが、その代償もあります。それは、.NET対応のプログラミング言語(新たに開発されたものと、従来のプログラミング言語の機能を拡張したものがあります)の構文と、.NETのクラスライブラリの使い方を覚えなければならないことです。いろいろと新たに勉強することが多くて大変なのですが、努力に見合ったメリットがあります。努力の先には、楽があるのです。Windowsデベロッパーに久々に訪れた一大技術変革なのですから、大いに楽しもうではありませんか!
|