2015/04/29

Mono 開発環境

現在の XP サーバを FreeBSD に変更すると,アプリ Slip21 は Windows ソフトなので動作しない。Slip21 を他のOSに移植するにはどうしたらいいか。Slip21 のソースは VB2010 Express で記述されている。以前なら,GCC による開発が当たり前だろうか。メモリを増設する前の 64MB ではGCC Lite は使い物にならなかったが,400MHz 384MB だと多分,OKだろう。FreeBSD は GCC ではなく Clang コンパイラだそうだ。どちらにしても,VB のコードをCに変換しなければならないし,プラットフォームが異なり開発環境が全く異なる。

その点,C#だとプラットフォームが異なっても Mono のような同一の開発環境がある。しかも,VB2010 Express では実装されていない ADO.NET に対応しているのが嬉しい。ただ,FreeBSD だと難があるらしく,Linux となる。

アンドロイドで動作するタブレットのアプリ開発を Eclipse + GCC と考え,Eclipse で動作する Aptana を選択してインストールしてきたので,開発環境の選択に迷う。フリーのデータベースを開発するとなると,Web 動作環境の Java (PHP) + MySQL の選択しかないとみなしていたけど,Microsoft ADO.NET 限定ではあるが,Mono に魅力を感じる。VB のソースコードをCとかC#を介さず,一気に Java で記述すれば,Web と親和性が高い。Mono だと .NET Framework のライブラリが使えるので,ハードウェアよりのリアルタイム処理のトラブルがないだろうけど,その点 Java だとどうなるのか気になる。

Linux のタイマー動作をクロスプラットフォームの Windows に移植したら,誤差が大きくなるそうだ。Slip21 は XBee のデータをシリアルポートを介してフロー制御なしで受信するので,これでは取りこぼしの可能性があるかもしれない。検索したら,シリアル通信は無限ループによるシングルタスクの記述だ。擬似マルチタスク に変わった Windows 95/98 では DoEvents を挿入していたから,そのあたりはどうなるのだろう。Java だと,Windows版 RXTX ライブラリに serialEvent なる物があるらしい。Java による Windows/Linux での記述は Microsoft COM に比べると敷居が高そうだ。Java によるクロスプラットフォーム環境はハードウェアよりの開発をするにはリスクが大き過ぎるかもしれない。MnonoDevelop は C#, F#, Visual Basic .NET, C/C++, Vala のマルチ言語を唄っているので試してみようか。

参考
LLVM Clangを採用するのは、エラー出力が分かりやすい
Mono (ソフトウェア)
.NETアプリをLinux対応にするMono
クロスプラットフォームな Java コードの書き方
Java Communications API概要
Quickly desktop applications on Linux, Windows and Mac OS X
Xamarin packages
関連記事

コメント

非公開コメント