昨日から今日、明日とうちの大学は学園祭である。コンサートは誰が来るかよくし
らないが、今年ははずれっぽい感じがする。
昨日の続きで、少しMonoについて色々調べてみた。参考になるどうか分からないがMono初心者には良いのではないかと思う。ページのリンクを張っておきます。
1 :
参考1
2 :
参考2
3 :
参考3
4 :
参考4
5 :
参考5
特に参考5はコンパイルや簡単なWebServiceについて書かれているブログであり、かなり参考になりそうです。
コンパイルは、C#はmcsコマンドを使い、VBはmbasコマンドを使う。ヘルプを見ればオプションが色々あるようなので、少しずつ調査してみたいと思う。
基本的に.NETフレームワークのコマンドと変わりはなさそうである。
例えば、オプション-tは「target」で「-t:library」はDLLを作るときに必要で、「-t:winexe」もしくは「-t:exe」で実行ファイルを作成する。using Sysytemでを参照するのに「reference」で「-r」を使う。
「-out」でdllに作成するDLLを出力、または、exeファイルを作成する。
頂いたデータは依存関係が分かれば、なんとなくコンパイルできるのではないかと思う。また、先生に聞いたところ、Makefileも作ることが出来るようなのでそちらも調べて見たいと思う。
ASP.NETのサンプルがMonoをインストールすると起動することができる。
多分昨日はインストーラーでインストールしたので、/usr/share/doc/xsp/textにあると思う。そのディレクトリに移動する。
そして、インストール環境にもよるが.bashrcでパスを通してあれば
xsp --port 8080でASP.NETを動かすことができる。
http://www.example.com:8080でブラウザからサンプルを閲覧することができる。
ディレクトリの中身をみるとconfigファイルやsample.webappといったファイルがありこれらがポイントになりそうである。
特にsample.webappはMono特有ではないだろうか?
中身はこのようになっていた。
<web-application>
<name>Root</name>
<vpath>/</vpath>
<path>/home/mono/public_html/html</path>
<-- vhost and port are ignored in xsp.exe -->
<vhost>my.host.name</vhost>
<vport>8080</vport>
<-- is true by default -->
<-- false</enabled> -->
</web-application>
(コメントアウトの「!」は除いてあります。)
参考1のリンクが参考になるかもしれない。見てもらえば分かるが<vpath>はバーチャルぱパスの略で、相対パスを表し、<path>が絶対パスだろう。同様に<vhost>はバーチャルホストかな。<vport>でポートも指定できる。<vport>を普通に80番ポートを使っても可能だろう。
同じディレクトリに.exeと.dllがあるので、WebServiceのプログラムもコンパイルがうまくいけば、Linux上でASP.NETを動かし、サービスを提供することも可能だろう。
また、簡単なプログラムもシェルで動かすこともできそうである。
例えば、C#で書いたHelloWorld.csをコンパイルして、HelloWorld.exeを作り、
bash環境であれば以下のように書くことで実行することが出来る。
#!/bin/sh
/opt/mono-1.1.9.2/bin/mono ~/HelloWorld.exe "$@"
/opt/mono-1.1.9.2/bin/monoは/usr/bin/monoでも可能。~/はホームだが任意のディレクトリに変えればよいだろう。 シェルは自動的に"$@"を任意の引数と置き換えるらしい。
実行形式にchmodで変更してHello Worldを出力。これの応用で色々と出来そうである。
今のところこんな感じだろう。引き続き調査して、また分かったら書いておきます。