週末に大学へ出張に行く為、ネットブック上のUbuntu上のVirtualBox上のWindowsXPに開発環境を作っておこうと思いVisualStudio.NETのインストーラと一日中闘っていた。なかなか上手く行かず、エラーダイアログが出るもMicrosoftへのコアダンプレポートばかり。バイナリインストーラなのでお手上げ状態だった。そんなこんなで、かねてから噂に聞いていたmonoを使ってみた。
以下、自分の感想文だから有用な情報はない。
mono/vb.net on windows
monoの公式サイトに行って、Windowsバイナリを落としてくる。インストールウィザードに従い、フルインストール。スタートメニューに登録されるmono用のシェル(多分コンパイラ等にパスを通しただけのもの)を起動しワークディレクトリに移動する。
test.vbを下記のように作成。
test.vb
Module a Sub Main() System.Console.Write("Hello,mono") End Sub End Module
コマンドプロンプトから、
> vbnc /nologo /codepage:65001 test.vb
を実行するとビルドを行い、成功すると
> test Hello,mono
が出力される。/codepage:65001はUTF-8なソースをコンパイルするオプション。省略すると、932(ShiftJIS)として解釈されるようだ。/target:winexeを指定すると、System.Windows.Forms.*も問題なく動いた。
今のところ.NET Framework 2.0ベースで、3.5や4.0に依存していない開発ばかりだから、入力補助さえ準備出来たら、VisualStudioは不要な気がする*1。
System.Data.*でMS-Accessファイルを扱う事も出来た。GUIはGtk#が入ってたけど、特に指定しない限り、Windowsネイティブのコントロールを使うみたい。.NET Framework2.0相当の環境が入っている別のWindows上でいくつかテストしてみても、ちゃんと動いている。すごく楽しい。
mono/vb.net on ubuntu
$ sudo aptitude update$ sudo aptitude mono-devel mono-vbnc
で入る。上記と同じくtest.vbを用意し、
$ vbnc /nologo /codepage:65001 test.vb && ./test.exe
でビルド&実行出来た。Ubuntu側でビルドしたtest.exeを恐る恐るWindowsXPに持っていき、コマンドプロンプトから実行してみると
> test Hello,mono
おおっ。ちゃんと動いたー!
これは本当に楽しい。本格的に調べてみよう。
*1:.NETを使い始めた頃、VisualStudioのデザイナーを多用してしまいすごく手間取った事がある。以来、レイアウトにデザイナーを使う事はなくなった。
※ 2020/07/02 度重なるブログ移転・ブログシステムのアップデートにより崩れた記事を校正。