(1) Hello World
最初に、最も単純な .NET Framework アプリケーションとして、昔からよく使われる Hello World プログラムを考察します。このプログラムは Visual C# で記述されており、その詳細については「.NET Framework を使用した開発の概要」というチュートリアルで説明されています。Visual C# のソース コードを次に示します。このコードおよびこのチュートリアルに付随するコードは、1_HelloWorld サブディレクトリにあります。
// Allow easy reference System namespace classes.
using System;
// This "class" exists only to house entry-point.
class MainApp {
// Static method "Main" is application's entry point.
public static void Main() {
// Write text to the console.
Console.WriteLine("Hello World using C#!");
}
}
このスタンドアロンの実行可能プログラムは、System.Console に 1 つの行を書き込みます。System.Console は、.NET Framework クラス ライブラリに含まれている型です。このプログラムでは、その他のライブラリを参照することも、それ自身でライブラリを生成することもありません。.NET Framework クラス ライブラリ内の型に簡単にアクセスするためには、次の using ステートメントが必要です。
using System;
また、このプログラムでは、アプリケーション コードを囲むクラスも定義します。
class MainApp {
最後に、コードにエントリ ポイントを設定するために Main メソッドを定義します。
public static void Main () {
Build.bat には、次の行が含まれています。この行だけで、この小さなプログラムをコンパイルできます。
csc.exe /debug+ Hello.cs
Build.bat を実行すると、Hello.exe という名前のスタンドアロン アプリケーションが生成されます。この実行可能ファイルに対して MSIL 逆アセンブラ (Ildasm.exe) を実行すると、次のようなウィンドウが生成されます。
このような単純なプログラムでも、.NET プログラミングの背後にある重要な概念をいくつか示しています。第一に、このプログラムは完全な自己記述型のプログラムです。つまり、プログラムを理解するために必要な情報がすべてマニフェストに含まれています。マニフェスト行をダブルクリックすると、次のような追加情報が得られます。
ここでは、バージョン番号 (この単純なサンプルでは設定されていない)、プログラムが使用する外部ライブラリ、プログラムが使用するそれらのライブラリ内の型 (この場合は Object と Console) など、アセンブリに関する情報を参照できます。
Ildasm.exe を実行すると、プログラム内で作成されるクラス、つまり型 (この場合は唯一のクラス MainApp) と共に、Main メソッドや既定のコンストラクタ (.ctor で示される) も確認できます。この単純なプログラムには、これ以外のメンバはありません。アセンブリに関する情報は、[ファイル] メニューの [ダンプ] をクリックすると、ファイルに保存できます。
参照
単純なアプリケーションの配置 | (2) 単純なコンポーネント ベース アプリケーション | (3) プライベート コンポーネントのパス | (4) 共有コンポーネント | (5) コンポーネントのバージョン管理 | パッケージ化と配置の要約 | 付録 A: パッケージ化および配置の追加情報 | 付録 B: パッケージ化および配置用のツール