フリーでそろう環境だけで .net アプリケーションを作成するためのチュートリアルです。ともかくフリーで作れるということに主眼を置いているため、プログラミングや言語についての解説は詳しく行っていません。感覚的に「ふ~ん、そんなことが出来るんだ。面白そうじゃん。」と思っていただくことを目的としています。もしこのページを読んで興味をもたれましたら、付属のドキュメントや市販の参考書などを手にとって見てください。
また、.net アプリケーションを Linux 上で動作させる方法についても解説します。
なお、このページでは言語として C# を使用しております。
04/07/19 現在、マイクロソフトの公式サイト. から
| クライアント実行環境 | .NET Framework 1.1 再頒布パッケージ | dotnetfx.exe |
| SDK | Microsoft .NET Framework 1.1 SDK | setup.exe |
| 日本語化ツール | Microsoft .NET Framework Version 1.1 日本語 Language Pack | langpack.exe |
| ドキュメントアップデート | .NET Framework 1.1 SDK ドキュメント アップデート | NDP1.1-KB827821-X86-Jpn.exe |
インストールが完了するとスタートメニューに「Microsoft .NET Framework SDK v1.1」という項目が出来ます。ここからドキュメント類へアクセスできるので、実際にプログラムを作る際に活用してください。
C# のコンパイラを使うためにパスを設定します。.net framework のバージョンによって設定すべきパスが変わってきますが、基本的には
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322
まずはもっとも簡単なプログラムとして Hello World と表示するコンソールプログラムを示します。これは、ドキュメントの ms-help://MS.NETFrameworkSDKv1.1.JA/cptutorials/html/hello_world_in_c_.htm に載っている内容の要約です。
それでは、テキストエディタで次のようなソースプログラムを記述してください。なお、ファイル名は hello.cs とします。
using System;
class MainApp {
public static void Main() {
Console.WriteLine("Hello World");
}
}
C# のソースをコンパイルするにはコマンドプロンプトから「csc」コマンドを使用します。例えば、
>csc hello.cs
さて、コンパイルにより出来た実行可能ファイル「hello.exe」をコマンドプロンプトから実行すると、無事、「Hello World」と表示されるはずです。
次に Windows らしい、ダイアログのようなプログラムを作ってみます。今回のソースはメインとなる HelloForm.cs とフォームとなる MyForm.cs の二つです。以下にリストを示します。
class MainApp {
public static void Main() {
MyForm form = new MyForm();
form.ShowDialog();
}
}
using System;
using System.Drawing;
using System.Windows.Forms;
public class MyForm : Form {
private Button btn;
public MyForm() {
btn = new Button();
btn.Location = new Point(50, 50);
btn.Text = "Click Me";
btn.Click += new EventHandler(this.Button_Clicked);
Controls.Add(btn);
}
private void Button_Clicked(object sender, EventArgs e) {
MessageBox.Show("Hello World");
}
}
一通り入力できたらとりあえず、コンパイルして実行してみることにしましょう。複数のファイルをコンパイルするには
>csc HelloForm.cs MyForm.cs
>csc /t:winexe HelloForm.cs MyForm.cs
実行は、コマンドプロンプトからでも、エクスプローラを開いてアイコンのダブルクリックでも好きな方法でかまいません。実行するとダイアログのようなウィンドウが現れて、「Click Me」というボタンを押すとさらに「Hello World」という小ウィンドウが現れるかと思います。
それでは解説に移ります。メインのプログラムではフォームを表すクラス MyForm のインスタンスを作成し、ShowDialog メソッドによってフォームを表示しています。
MyForm クラスは System.Windows.Forms.Form クラスを継承しています。Form クラスはフォームの元となるクラスです。フォームにはボタンなどのコントロールが配置されていて、次のような流れで処理が行われます。
コントロールを操作する(ボタンを押すなど) イベントが発生する(ボタンが押されたことを通知するメッセージなどが発生する) 対応するイベントハンドラと呼ばれるメソッドが呼び出される。 イベントハンドラ内で必要な処理をする。
この流れに従うため、ボタンの配置とボタンに対応するイベントハンドラの登録、イベントハンドラ内の処理を記述します。
まず、ボタンを表す Button クラスの変数 btn を宣言し、コンストラクタの中で new によりインスタンスを生成します。
次に、ボタンのプロパティ値を設定します。これはボタンをどこに配置するか、といった設定を Button クラスのメンバ変数を通じて行います。Location プロパティはボタンを配置する位置の設定、Text プロパティはボタン上に表示する文字列の設定、Click プロパティはイベントハンドラの登録です。他にどのようなプロパティがあるかはドキュメントの ms-help://MS.NETFrameworkSDKv1.1.JA/cpref/html/frlrfSystemWebUIWebControlsButtonPropertiesTopic.htm を参考にしてください。
一通りプロパティの設定が完了したら、Form クラスのプロパティである Controls 変数に Add メソッドを使ってボタンを登録します。この操作はフォームにボタンを貼り付けるようなものです。
Click プロパティは
btn.Click += new EventHandler(this.Button_Clicked);
イベントハンドラ Button_Clicked は
private void Button_Clicked(object sender, EventArgs e) {
MessageBox.Show("Hello World");
}
Button_Clicked メソッドでは「"Hello World" というテキストを持つメッセージボックスを表示させる」処理を行っています。
以上で、ボタンが押されると Button_Clicked メソッドが呼ばれるという機構が完成しました。
さて、.net は公開されたアーキテクチャであるため Linux 用のクローン環境もあり、Linux 上で .net プログラムを実行することができます。有名どころとしては Novell の.と GNU の. があります。今回は GNU のものを rpm でインストールしてみました。 (*2)
まず、.の「RedHat/Fedora RPMs」という項からパッケージをダウンロードしてきます
(*3)
。
あとは rpm コマンドでインストールすれば完了です。
完全なマネージコード(.net API のみで作った)プログラムは Java と同様、異なるプラットフォーム間であっても .net framework 上であれば動作させることができます。つまり、Win 上でコンパイルした C# プログラムはそのまま DotGNU 上で動作させることができます。
しかしながら、せっかくですので DotGNU でコンパイルする方法も示して起きます。コンパイルには cscc コマンドを使います。通常のコマンドラインプログラムであれば
$ cscc hello.cs
$ cscc -o hello.exe hello.cs
$ cscc -winforms -o HelloForm.exe HelloForm.cs MyForm.cs
プログラムを実行するには ilrun コマンドを使って
$ ilrun hello.exe
# ilrun --register
$ ./hello.exe