
今こそ聞きたいVisual Studio 2008の基礎の基礎
第1回:再発見Visual Studioの魅力
著者:マイクロソフト 馬田 隆明
公開日:2008/02/05(火)
異なる.NET Frameworkへの対応
2002年における.NET Framework 1.0の登場から5年が経過し、.NET Frameworkのバージョンも3.5となりました。個々のバージョンで追加された機能は、その時代のニーズに応えたもので、常に.NET Frameworkは機能革新を進めています。
この結果として、現在は1台のコンピュータに複数のバージョンの.NET Frameworkがインストールされているケースも珍しくありません。しかしそのような環境化においても、.NET Frameworkはより確実にアプリケーションを動作するための仕組みを用意しています。
まず、.NET Framework 1.0および1.1、そして.NET Framework 2.0の間においては「サイドバイサイド」と呼ばれる機能によって、最新のバージョン上ではなくビルドを行った.NET Frameworkのバージョン上でアプリケーションを動作させることができます。
なお、ビルドした対象の.NET Frameworkがコンピュータ上に存在しない場合には、.NETアプリケーションは最新の.NET Framework上で動作します。さらに、特定の条件下においても、最新の.NET Framework上で動作する仕組みが備わっています。これらの点の詳細については「企業における Microsoft .NET Framework 2.0のインストールについて」を参考にしてください。
一方、.NET Framework 2.0、.NET Framework 3.0、.NET Framework 3.5間においては、.NETアプリケーションは常に最新の.NET Framework上で動作します。これは、上記3つのバージョン間における構成によるものです。
厳密にはバージョンごとに差異があるのですが、.NET Framework 3.0は.NET Framework 2.0に、.NET Framework 3.5は.NET Framework 3.0に対して、それぞれ新たな機能を追加する形でバージョンアップしたためです。
一方、コアの機能は個々のバージョンで共通化されており、.NET Framewokの2.0から3.5までのバージョン間においては、サイドバイサイド機能を使わずに.NETアプリケーションは動作させることができます。

図3:今回のまとめ
.NET Frameworkの中核となる「共通言語ランタイム」
これらの「実行」に関わる機能には「共通言語ランタイム(Common Language Runtime)」という.NET Framework内の実行基盤が大きく関わっています。共通言語ランタイムについて理解するためには、アプリケーションのコンパイルから実行されるまでの一連の流れについてを学んでおく必要があります。
これまでのコンパイル処理では、実行可能なバイナリとして実行ファイル(.exe)が作成されます。.NET FrameworkでVisual BasicやC#で書かれたプログラムをコンパイルした場合にも同じ実行ファイルが作成されます。
しかし.NET Frameworkでコンパイルした実行ファイルの中身は実行可能なバイナリデータではなく、.NET Frameworkが理解できる「中間言語(MSIL:Microsoft Intermediate Language)」になっているのです。このため、実際にアプリケーションを実行する際は、その中間言語を共通言語ランタイムがコンパイルし、実行されます。
この特徴により、複数のプログラミング言語で作成されたアプリケーションやモジュールが同じ実行環境で動作し、クラスライブラリの共通化や異なる言語間でのクラス継承が可能となっているのです。
また、ガベージコレクションやセキュリティチェックも、一旦中間言語を経由したコードを共通言語ランタイムが解釈することによって実現しています。そのため、.NET Framework対応プログラミング言語で書かれたコードのことを「共通言語ランタイムによって管理されている」という意味から「マネージコード」と呼んでいます。
このように、.NET Frameworkでは「開発」と「実行」の2つの側面において強力なアプリケーションフレームワークを活用することにより、開発者が高品質で高度なアプリケーションをより迅速に構築できるのです。
.NET Framework は包括的なアプリケーションフレームワークであり、WindowsアプリケーションやWebアプリケーション、モバイルアプリケーション、Officeアプリケーション、そしてバックエンドの機能など、多様なアプリケーションを構築することができます。
通常、これらのアプリケーションの特長を活かすためには、個々のアプリケーション開発に熟知している必要があります。しかしVisual Studioではその開発スタイルの一貫性を保つことにより、開発者の知識や経験を活かし、開発生産性を維持しながら求められる要件に最適なアプリケーション形態の選択を可能としています。
次回はこのVisual Studioの開発ツールとしての側面を、簡単な開発を行いながら解説します。