MacにMonoを導入してみた

最近仕事では.NET(それもC#)ばかり使ってますので、自宅のMac miniにもオープンソースの.NET環境であるMonoを導入してみました。

http://www.mono-project.com/

Monoは、Linux/Windows/Mac OS X で動作する.NET Frameworkコンパチの開発/実行環境です。
開発環境には、コンパイラの他にMono DevelopというIDEが提供されています。本家Microsoft Visual Studioでビルドされたアセンブリーを動作させることも可能です。

Mono Projectのサイトからパッケージをダウンロードしてインストールすると、ターミナルで monoコマンド(ランタイム用コマンド)とmcsコマンド(本家のcscコマンドに相当)が使えるようになりました。Mono Developもインストールしたはずなのですが、環境が不備なせいか起動しませんでした。

hoge.csというC#ソースコードがあるとすると

  • ビルドするとき

$ mcs -out:hoge.exe hoge.cs

  • 実行するとき

$ mono hoge.exe

で使うことができます。

簡単なコンソールアプリのソースコードをビルドしてみたところ、int.TryParseや、匿名型(var)は使えませんでした。この辺はもうすぐリリースされる2.0待ちでしょうね。

WindowsFormにも対応しているそうですが、VS2008 SP1でビルドした簡単なフォームアプリを実行しようとすると、例外をスローして起動に失敗しました。これも2.0待ちでしょうか。
まだ対応していないようですが、WPFアプリがバイナリー互換で、マルチプラットフォームで動作するようになるとメリットは大きいと思います。Monoの発展に期待しようと思います。