「Mono Migration Analyzer(MoMA)」は、Microsoft .NETプログラムのMonoへの移植を支援するツール。その究極目標はWindowsソフトウェアをLinuxに移植することにある。実際にMoMAを検証してみた。
Microsoftが.NETのランタイムとフレームワークを最初にリリースしたとき、Windows向けのプログラミングが非常に容易になった。プログラマーは人気の高い言語(C++、Javaによく似たC#、Visual Basic)の中から好きなものを選ぶことができるようになったが、.NETを選択することは、基本的にWindowsプラットフォームに縛り付けられることを意味した。移植性を考慮するのであれば、C++とwxWidgetsなどのツールを利用する必要があった。
とはいえ、Microsoftは.NETシステムを開発したときに正しいことを行った。CLI(Common Language Infrastructure)と呼ばれる標準を作り出したのである。同標準はECMA(ヨーロッパコンピュータ工業会)とISO(国際標準化機構)にも承認された。CLIのおかげで開発者は、ほかのプラットフォーム向けに独自の.NETバージョンを作成することができた(Windows向けの独自バージョンの作成も可能)。
幾つかの開発者グループが、ほかのプラットフォームにCLIを実装するプロジェクトに取り組んだが、その先頭に立っていたのはオープンソースの「Mono Project」である。Monoは現在、Windows、各種バージョンのLinuxとSolaris、さらにMac OS Xで利用可能である――これは、Windows開発者がこれらのプラットフォームのどれにでもソフトウェアを移植できることを意味する。
しかし、まだ完ぺきな移植が可能なわけではない。というのも、Microsoftが.NETの下で新しいAPIや技術を次々と繰り出しているからだ。このため、既存の.NETプロジェクトをMonoランタイム上で実行しようとすると、さまざまな問題に遭遇する可能性が高い。確かに、バイナリレベルで互換性があるのだから、.NETソフトウェアを直接Mono上で実行することは可能だが、Monoにまだ実装されていない機能を使用していないことが前提だ。
こういった問題に対処しようというのがMoMA(Mono Migration Analyzer)である。Mono Project全体が無償なのと同様、MoMAも無償で提供されている。
Editorial items that were originally published in the U.S. Edition of “eWEEK” are the copyrighted property of Ziff Davis Enterprise Inc. Copyright (c) 2011. All Rights Reserved.