.NET Framework SDKで始める.NETプログラミング(前編)
4.Hello World展覧会(1)デジタルアドバンテージ 遠藤孝信 2001/02/10 |
新しいプログラミング環境を手に入れたとき、プログラマがまず第一にやることといえば、やはりHello Worldプログラムの作成と実行だろう。ありきたりのようにも思えるが、本稿でもこのHello Worldプログラムを作りながら、.NET SDKに親しもうと思う。ただし4つものコンパイラが付属し、アプリケーションの形態(WebサービスやWindowsアプリケーションなど)も複数選択できる.NET SDKでは、最終的には8種類ものHello Worldプログラムを作成することができた。
この内訳について説明しておこう。.NET Framework環境で動作するアプリケーションは、その形態によって次の4つに大別できる。
アプリケーション形態 | 内容 |
Windows Forms | Windows環境で直接実行可能なWindowsアプリケーション |
Web Forms | サーバ・サイドで実行され、クライアント・インターフェイスにはHTTP/HTMLを使用するWebアプリケーション。つまりクライアントとしては、WebブラウザからなるThinクライアントを使用することができる |
Webサービス | SOAP、XMLインターフェイスを利用してアクセス可能なアプリケーション・コンポーネント |
コンソール・アプリケーション | コマンド・プロンプトに結果を出力する、GUIを持たないアプリケーション |
.NET Framework環境で動作するアプリケーションの形態 |
.NET SDKでは、これらのアプリケーションを作成するために、以下の言語を使用することができる。
言語 | 特徴 |
C# | Microsoft.NETとともに登場した新言語。C/C++を発展させたものだとされるが、Javaの特徴を大幅に取り入れている |
Visual Basic.NET(VB.NET) | Visual Basicの.NET対応バージョン。.NET対応によりオブジェクト指向言語として生まれ変わった。VB6のバージョンアップにあたるが、言語仕様は大幅に変更されている |
JScript.NET | Webページ用スクリプト言語、JScriptの.NET対応バージョン |
Visual C++ | これまでWindowsアプリケーション開発を支えてきたC++言語の.NET対応版。他の言語では不可能だが、唯一このC++言語だけは、従来どおり特定のOSやCPUに依存したアンマネージド・コードを作成することが許されている |
MSIL | Microsoft.NETプラットフォームにおける実行プログラムの形式として開発された中間言語。中間言語の状態で保存された実行プログラムは、実行時にJITコンパイラ(Just-In-Timeコンパイラ)によって特定のマイクロプロセッサ・アーキテクチャに依存したネイティブ・コードに変換され、実行されることになる |
.NET SDKで使用可能なプログラミング言語 |
これらのうち、最後に挙げたMSILは、ソフトウェアからOSやハードウェア・プラットフォームを隠蔽するためにマイクロソフトが考案した中間言語形式であり、C#やVB.NETなど、他のプログラミング言語で開発したソフトウェアも、コンパイルするとこのMSIL形式に変換され、それが実行ファイル(.exeファイル)として保存される(Visual C++でアンマネージド・コードを生成した場合を除く)。しかしお望みとあらば、直接MSILでプログラムを記述することも可能だ。その昔、PCがまだ「マイコン」と呼ばれていた時代には、コンピュータのCPUが直接解釈可能なマシン語に一対一で変換可能なアセンブリ言語でプログラムを記述していた。MSILでのプログラミングは、感覚的にはほとんどこれと同じである。実際には、直接MSILでプログラムを記述する必要に迫られることはないだろうが、.NET SDKには、MSILのニーモニック(コンピュータが解釈するマシン語を、人間に分かりやすい形式で表現した記号のこと)を「アセンブル」するためのアセンブラが付属しているので、その気になればプログラミングは可能である。
ただし.NETで「アセンブリ」と言った場合には、アセンブリ言語のことではなく、MSIL、メタデータおよびアセンブリ自体の情報を記述したメタデータがセットになったコンポーネントを表す。CLR上では、1つのプログラムは1つ以上のアセンブリで構成され、また、1つのアセンブリは1つ以上のファイルで構成される。もともと英語のアセンブリ(assembly)には「組み立て用の部品」という意味があり、.NETの「アセンブリ」はこの意味で使われている。この詳細については、本稿の後編で具体的な例を示して説明する予定だ。
.NET SDKでサポートされる言語処理系のうち、C++を除くすべての言語処理系では、CLR上で動作するマネージド・コード(managed code)のプログラムのみを作成可能である。マネージド・コードは、MSIL中間コード形式を実行ファイル(.exeファイル)に含むプログラムで、実行時にMSILコードがネイティブ・コードに変換され、実行される。ネイティブ・コードへの変換は実行時に行われるので、マネージド・コードは、特定のOSやハードウェア・プラットフォームには依存しない。
これに対し、特定のOS(Windows API)やハードウェア・プラットフォーム(PC/AT互換機など)に依存したネイティブ・コードは、アンマネージド・コード(unmanaged code)と呼ばれる。.NET SDKがサポートする言語処理系の中では、C++だけが、マネージド・コードに加え、アンマネージド・コードを生成することが可能である。C++言語で生成されたマネージド・コード、アンマネージド・コードはそれぞれ、マネージドC++、アンマネージドC++と呼ばれることもある。
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|