.NET Frameworkの導入

 ネットワーク対応の次世代プラットフォームとして登場してきた.NET。あちこちで取り上げられていますが、開発者としては実際どんな感じでアプリケーションを開発していくのか、気になるところです。今回は、無償で利用できる開発環境「Microsoft .NET Framework SDK 日本語版」を使って簡単なWindowsアプリケーションを開発してみることにしました。

インストールとC#のコンパイル

 Microsoft .NET Framework SDK 日本語版は、Microsoft .NET Framework ホームページでダウンロードできます。ただし、160MBという巨大なファイルなので、落とすのがつらい場合は雑誌や書籍のCD-ROMを利用しても良いでしょう。開発環境は、XP/2000/NT用で95/98/Meには対応していない(実行環境は対応)ので注意してください。インストール自体は、インストーラを実行するだけです。

 インストールしたらコンパイラのテストとして以下のようなC#プログラムをコンパイル・実行してみましょう。

===========================================================
using System;

class test {

	public static void Main() {

		Console.WriteLine("TEST");

	}

}
===========================================================

 このプログラムをtest.csなど適当なcsファイルに保存したら、

csc test.cs

 としてコンパイルします。後は

test

 とするとプログラムが実行され、TESTという文字列が出力されるはずです。SDKには他にVBJScriptのコンパイラも入っているみたいですね。

初めてのWindowsアプリケーション

 .NET Frameworkでは、System.Windows.Forms以下のコンポーネントを利用することでフォームや各種のGUI部品を利用できます。Windowsのコンポーネントは一通りそろっていて、自分でサブクラス化して機能を拡張することも簡単にできたり、イベントをイベントハンドラのメソッドを登録するだけで処理できたりとなかなか使い勝手も良さそうですね。

 今回は、初めてのWindowsアプリとしてC#でのコンポーネントやイベントの扱いを確認するために「フォームの上にボタンを配置し、ボタンがクリックされたらメッセージボックスを出す」アプリを作ってみましょう。この程度なら、以下のようなごく短いコードで書けてしまいます。

===========================================================
  using System;
  using System.Windows.Forms;

  public class test2:Form {

      private Button btn;

      test2() { // コンストラクタ

          // ボタン作成
          btn=new Button();
          btn.Text="TEST";

          // btnClickメソッドをbtnのClickイベントハンドラに登録
          btn.Click+=new EventHandler(btnClick);

          // btnを自分(フォーム)に追加
          Controls.Add(btn);

      }

      public void btnClick(object sender,EventArgs e) {

          MessageBox.Show("Test");

      }

      public static void Main() {

          // フォームを生成しイベントループに入る
          Application.Run(new test2());

      }

  }
===========================================================

 プログラムの構造は、アプリケーションのクラスを定義し、staticMain()でそのインスタンスを生成する、という形式でまさにJavaそのものですね。コンポーネントベースのプログラミング環境としてはごく標準的なコードですから、大体は見ればわかるでしょう。ただ、イベントハンドラの登録は、イベントハンドラ用にあらかじめ定められている形式でメソッドを定義しそれをデリゲートでラップする点が目新しい点ですかね。

 このプログラムをtest2.csとして保存すると、以下のようにして実行できます。

csc test2.cs
test2

プログラミング資料庫 > Windowsプログラミング研究室