6. Windows.Forms を使ってみる
いろいろ探ってみたのだが、MessageBox.Show に相当するものが見つからない。
これは、Windows.Forms のものなので、このままでは使えない模様。
Gtk# で使う方法を知りたいのだけど、ネットが使えない環境でいじっていたため断念。
というわけで、Windows.Forms と同じことができちゃう、互換機能が Mono には備わっている。
今回はそれを利用してみよう。
ビューリストから、参照を右クリックして [参照アセンブリの編集] を開く。
上のような画面が出てくるから、"System.Windows.Forms" にチェックを入れる。
ここの画面から、いろいろな参照設定を追加することが可能だ。
参照に "System.Windows.Forms" が追加されていることを確認する。
そして、この上の画像を参考にソースを変更してください。
MessageBox.Show("Hello, world!");
を追加しただけでは、Gtk# とぶつかってうまく動かないみたいです。
using Gtk;
protected void OnDeletedEvent (...)
{
....
}
この辺を、すべてコメントアウトしたら動きました。
やった!
というわけで、Windows.Forms を使うことも成功。
Windows.Forms を使うと、UI のデザインが少し変わるみたいだが、気にするほどでもないだろう。
で、Gtk# で MessageBox.Show 相当のものってどうやって使うのだろう?
いまだにわからない。まあ、手探りで進めてるからしょうがないか。
7. Glade を使って GUI のデザインをしてみる
Fedora で標準でインストールされる、GUI ビルダーと言えば Glade である。
Mono は、この Glade を使ったアプリにも対応している。
新しいソリューションを開いて
C# -> サンプル -> Glade# 2.0 プロジェクト
を選択して、作成する。
プロジェクトが作成されたら、ビューリストから
リソース -> gui.glade
というのがあるのが確認できるだろうか。
これをダブルクリックする。
Glade が開く。
あとは、デザインしてあげればよい。
たとえば、こんな感じに作成できた。
[保存] をおせば、情報が保存される。
あとは、MonoDevelop のほうで実行してみる。
このように、Glade でデザインしたフォームを開くことができた。
ちなみに、クリックしたときのイベントとかをいろいろ探ってみたんだけど、うまくいかない。
Glade のほうで、イベントの設定はしたんだけど、Mono のほうがだめっぽい。
エラーが出て終了。
これは、またあとで少しいじってみることにする。
8. Visual Studio のプロジェクトを読み込んでみる。
どうも、Mono には Visual Studio で作成したプロジェクトの読み込みもできるらしい。
というわけで、Visual Studio で上記のような簡単なプロジェクトを作成して、Mono に読み込ませてみた。
"Open a Solutin / File" を開いて、Linux にコピーしてきた Visual Studio のソリューションファイルを読み込ませてみる。
拡張子が、.sln のファイルである。
お、マジで開けちゃった。
実行できちゃったw
というわけで、ごくごく簡単なアプリであれば、そのまま Windows で開発していたものを動かすことができるようです。
すごい、Mono!
9. まとめと感想
Mono を使って、なにか本格的なものを作ってみたくなってきた。
といっても、そんな遊んでる時間がない・・・。
しかし、Mono も MonoDevelop もすごいの一言だ。
ただ、まだまだ未完成なところがあるので、そこら辺を煮詰めていけば、もっと良いものになると思う。
Windows.Forms 以外の API もたくさん実装されるようになれば、本当に Windows と Linux で同じアプリが動かせるなんて日も近い。
Java は何というか、個人的に好きじゃない。
Novell 主導で開発が進められている上に、これからのことを考えると Mono プロジェクトは、オープンソースのプロジェクトの中でも、かなり期待できる分類に入るのではないかと。
なんて軽く言ってきたけど、MS のまねをしたら、著作権があ~ってなるわけだし、そういうことを考えながら作っていくのは相当な苦労だろ思う。
え、自分が手伝えばいいじゃないかって?技術が足りなくて、たぶん無理です。
それと、僕が使っていた中で一番重大だと思ったものは、なぜかソリューションを開きなおすと、GUI ビルダーが使えなくなること。
これどうかしてくれ。
って、MonoDevelop のバージョン見たら、0.19 みたい。
サイトに行ったら、1.0 が公開されてるw
よく見たら、起動ロゴに RC1 って表示されてたし。
1.0 が出たといううわさを聞きつけて試してみたのに、RC1 をいじっていたとはw
今から、少し 1.0 をいじってみます・・・。
長くなったけど、これで終わり。
(全部書くのに 3 時間ぐらいかかったっぽいw)
完
MonoDevelop - Linux で動く .NET 開発環境で遊んでみる

コメントする