.NETプログラム概要
VB6.0が完全なコンパイル言語ではないと言う話は有名ですが、.NETも同様にプログラムをコンパイルすると、中間コードMSIL(Microsoft Intermediate Language)を生成して、それが実行時に.NET FrameWorkのCLR(Common Language Runtime)によってネイティブコードに変換されて動作すると言う形式を取っています。この手法はJavaに対抗して考案されたもののようで、つまり.NET FrameWorkさえインストールしておけば、OSの種類やCPUなどのハードウェアに関係なく動作するプログラムを作成することができると言うことらしいです。
.NET FrameWorkの構造
では、この.NET FrameWorkがどのようなもので出来ているか見てみましょう。.NET FrameWorkの構成要素はざっと以下のようになります。
ASP.NET
Webフォーム
Webサービス
ASP.NETアプリケーションサービス
Windowsフォーム/コントロール
Windowsアプリケーションサービス
基本クラス
ADO.NET
XML
トランザクション
スレッド
入出力
セキュリティ
・・・ CLR(共通言語ランタイム)
クラスローダー
セキュリティ
共通型システム
ガベージコレクタ
JITコンパイラ
一旦中間コードMSILにコンパイルされたプログラムは、このCLRのJIT(Just-in-Time)コンパイラによって、特定のCPU命令に対応するネイティブコードに変換され実行される訳です。
JITコンパイラの優位性
VB6.0では、一旦中間コードに変換されたプログラムは、従来のコンパイラによって逐一ネイティブコード(機械語)に変換されながら実行されていました。ですからVC++のように最初から完全なネイティブコードを生成する開発言語に比べて、VB6.0では実行速度の少し遅いプログラムしか開発できませんでした。
一方このJITコンパイラはMSILを一括してネイティブコードに翻訳してプログラムを実行しますので、プログラムの起動には少々時間がかかるものの、一旦起動してしまえば、従来のものに比べてより高速にプログラムを動作させることができます。
製品版「Visual Studio.NET」
Microsoft社の.NET統合開発環境であるVisual Studio.NETには、Visual Basic.NET、VisualC#.NET、Visual C++.NET、及びJ#.NETが含まれてます。いずれもプログラム開発時にコンパイラによって中間コードMSILを生成しますが、Visual C++.NETのみが唯一システムのネイティブコードも生成させることができます。これは従来のVC++の機能を踏襲しているものと思われます。
| 次へ SharpDevelopによる開発手順 |