.NETプログラム概要

 VB6.0が完全なコンパイル言語ではないと言う話は有名ですが、.NETも同様にプログラムをコンパイルすると、中間コードMSIL(Microsoft Intermediate Language)を生成して、それが実行時に.NET FrameWorkCLR(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にコンパイルされたプログラムは、このCLRJIT(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とは? 前へ

HOME

次へ SharpDevelopによる開発手順