特集:全1回 .NET FrameworkをUNIXで動かす「Mono Project」dev .NET(8/9 ページ)

» 2004年06月24日 22時45分 公開
[大澤文孝,ITmedia]

ビルドに必要なもの

 一般にASP.NETアプリケーションを構成する場合には、次のファイルが必要となる。

  • Global.asax

 Webアプリケーション全体のイベントが発生したときに処理するファイル。無くてもよい。

  • *.aspx

 各Webページ(Webフォームと呼ぶ)を構成するファイル。HTMLファイルの雛形と、そのページへの要求を受け取った時、どのプログラムが実行されるのかなどが記述されている。

  • *.dll

 ソースファイルをコンパイルしたアセンブリ。対応するソースファイルは、「*aspx.cs」(C#の場合)や「*.aspx.vb」(VB.NETの場合)として構成される。ASP.NETでは、bin/ディレクトリ下にdllファイルを配置する。

  • Web.configファイル

 Webアプリケーションの設定ファイル。無くてもよいが、今回は、先に説明したappSettings要素でデータベースへの接続文字列を指定しているため必要となる。

 もし、Windows上でビルドしたものをMono環境に持っていくのであれば、これらのファイル群をMono環境にコピーすればよい。この際、ソースファイルである「*.aspx.cs」や「*.aspx.vb」は不要だ。

XSPの実行

 Webフォームやコンパイル後のバイナリファイル(*.dll)をコピーしたならば、XSPを起動してみよう。ここでは、Webアプリケーションを構成するファイルを/home/example/TestWebApp/ディレクトリ下にコピーしたとする。すなわち、次のような構成になっているとする。


/home/example/TestWebApp
	Web.config
	WebForm1.aspx
	bin
		TestWebApp.dll


DLLファイルのファイル名は、ビルドした時に決まる。ディレクトリ名と合致させる必要はない。

 この際、次のようにしてXSPを起動すると「http://サーバー名:8080/TestWebApp/WebForm1.aspx」というURLで、このWebアプリケーションを実行できる。

$ mono /usr/bin/xsp.exe --applications /TestWebApp:/home/example/TestWebApp


xsp.exeは、環境によっては/usr/local/bin/ディレクトリにインストールされることもある。


「--port」オプションを使いポート番号を指定したり、「--root」オプションを使いXSPで公開するルートディレクトリ(http://サーバー名/に対応するディレクトリ)を指定することもできる。また、「--applications」オプションでは、カンマで区切ることで、複数のWebアプリケーションを指定することも可能だ。ちなみに、「--port」オプションを利用しない場合にはポート「8080」、「--root」オプションを利用しない場合にはxsp.exeを起動した際のカレントがルートディレクトリとなる。特に「--root」オプションを指定しない場合には、カレントディレクトリの内容が、XSPで公開されてしまう結果となるので、インターネットに接続されている環境で実行する場合には、十分に注意してほしい。


xsp.exeは、IISと違い、DLLファイルのシャドウコピーをしない。そのため、xsp.exeを実行中は、DLLファイルにロックがかかり、上書きしたり削除したりできなくなる。

 実際にWebブラウザで参照したときの結果は、画面5のようになる。

画面5■XSPでホスティングした時の結果

 画面4、5とを比較すると分かるが、日本語が化けてしまっている。また、Boolean型のデータ(画面4における「契約済」という列)において、「True」や「False」が表示されていない。ただし、文字化けするだけで、データの表示処理は問題なく、DataGridコントロールのページング処理も正しく機能する。

 気になるのは動作速度だが、XSPでの動作は、仮想コードを実行している割には、遅さをあまり感じない。ただし、初回にアクセスした時には、アセンブリが実際のバイナリに変換されるため、この際にやや時間を要するのは否めない。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ