タダで作る .net アプリ1(アンチ Java 企画)

タダで作る .net アプリ1(アンチ Java 企画)


サイト全体の目次

稿


稿

目的

(untitled)

フリーでそろう環境だけで .net アプリケーションを作成するためのチュートリアルです。ともかくフリーで作れるということに主眼を置いているため、プログラミングや言語についての解説は詳しく行っていません。感覚的に「ふ~ん、そんなことが出来るんだ。面白そうじゃん。」と思っていただくことを目的としています。もしこのページを読んで興味をもたれましたら、付属のドキュメントや市販の参考書などを手にとって見てください。

また、.net アプリケーションを Linux 上で動作させる方法についても解説します。

なお、このページでは言語として C# を使用しております。

準備

インストール

04/07/19 現在、マイクロソフトの公式サイト. から

クライアント実行環境.NET Framework 1.1 再頒布パッケージdotnetfx.exe
SDKMicrosoft .NET Framework 1.1 SDKsetup.exe
日本語化ツールMicrosoft .NET Framework Version 1.1 日本語 Language Packlangpack.exe
ドキュメントアップデート.NET Framework 1.1 SDK ドキュメント アップデートNDP1.1-KB827821-X86-Jpn.exe

がダウンロードできますので、これらをダウンロードし、インストールします。なお、ドキュメントアップデートは「.NET Framework 1.1 SDK 用」をダウンロードします。これは、SDK に入っているドキュメントのアップデートです。インストールは上の表に載っている順に行ってください。

.NET Framework ダウンロード情報 http://www.microsoft.com/japan/msdn/netframework/downloads/

インストールが完了するとスタートメニューに「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");
  }
}
(*1)

C# ではメインとなるプログラムの所属するクラス名とファイル名が一致している必要はありません。また、プログラムのエントリポイント(メイン部分)は「public static void Main()」メソッドに記述します。

C# のソースをコンパイルするにはコマンドプロンプトから「csc」コマンドを使用します。例えば、

>csc hello.cs

で「hello.cs」ファイルをコンパイルします。これにより、実行可能ファイル「hello.exe」が出来ます。また、「csc /?」とすればオプションの簡易ヘルプを見ることもできます。

さて、コンパイルにより出来た実行可能ファイル「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

のようにします。出来上がる実行可能ファイルの名前は、Main メソッドのあるファイル名の拡張子を exe にしたものです。ただしこれだけだと、アイコンのダブルクリックによって実行した際、背面にコマンドプロンプトが出てしまうので、オプション「/t:winexe」をつけて
>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);

として設定しています。これは、ボタン btn に対して Click イベント(ボタンが押されたというイベント)が発生したら this(MyForm ) クラスの Button_Clicked メソッドを呼びなさいということを登録しています。

イベントハンドラ Button_Clicked は

private void Button_Clicked(object sender, EventArgs e) {
  MessageBox.Show("Hello World");
}

のように定義されていて、ボタンの場合、EventArgs という引数が「押された」時に呼び出されるイベントハンドラであることを示しています。他のイベントに対しては、この EventArgs が別の型になり、どのようなイベントに対するイベントハンドラなのかを識別します。

Button_Clicked メソッドでは「"Hello World" というテキストを持つメッセージボックスを表示させる」処理を行っています。

以上で、ボタンが押されると Button_Clicked メソッドが呼ばれるという機構が完成しました。

Linux で .net

インストール

さて、.net は公開されたアーキテクチャであるため Linux 用のクローン環境もあり、Linux 上で .net プログラムを実行することができます。有名どころとしては Novell の.と GNU の. があります。今回は GNU のものを rpm でインストールしてみました。 (*2)

mono も試したのですが、残念ながら GUI が正しく動作しませんでした。
mono http://www.mono-project.com/about/index.html
DotGNU http://dotgnu.org/

まず、.の「RedHat/Fedora RPMs」という項からパッケージをダウンロードしてきます (*3) 。

正直、どれが何だかよく分からないのですべてダウンロードしました。
http://dotgnu.org/pnet-packages.html

あとは rpm コマンドでインストールすれば完了です。

コンパイル

完全なマネージコード(.net API のみで作った)プログラムは Java と同様、異なるプラットフォーム間であっても .net framework 上であれば動作させることができます。つまり、Win 上でコンパイルした C# プログラムはそのまま DotGNU 上で動作させることができます。

しかしながら、せっかくですので DotGNU でコンパイルする方法も示して起きます。コンパイルには cscc コマンドを使います。通常のコマンドラインプログラムであれば

$ cscc hello.cs

でコンパイル可能です。これにより、実行可能ファイル「a.out」が出来ます。出力ファイル名を変えたいなら「-o [filename]」オプションを使って
$ cscc -o hello.exe hello.cs

のようにしてください。また、フォームを使ったプログラムをコンパイルする場合は「-winforms」オプションが必要です。
$ cscc -winforms -o HelloForm.exe HelloForm.cs MyForm.cs

のようにします。なお、「cscc --help」でオプションの簡易ヘルプを見ることが出来ます。

実行

プログラムを実行するには ilrun コマンドを使って

$ ilrun hello.exe

のようにします。また、あらかじめ root で
# ilrun --register

としてカーネルに登録しておくと、
$ ./hello.exe

のようにコマンドとして実行することが出来ます。ただし、実行権限を与えておいてください。

参考

(untitled)

http://yamaguch.sytes.net/~tora/debian/csharp.xml

読み込み中・・・
10秒待っても表示が変わらない場合、次の理由が考えられます。
・Javascript が無効になっています。
・検索エンジンのキャッシュを見ています。
サイトホームへ / 上位ページへ / ページトップへ / PAROFトレンドショッピングへ
Copyright (C) 2010 totobon all right reserved.