BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース .Net から Mono への稼動コード移行

.Net から Mono への稼動コード移行

原文(投稿日:2011/11/10)へのリンク

 

レガシーアプリケーションのコードベースは,開発者にとって,時間とコストの投資に対する価値ある成果と言えるものだ。理想的には,プラットフォーム対応の接合コードを使えば既存のコードが簡単に結合できて,迅速なターンアラウンドが実現され,当初行った投資を活用できる。しかし現実には,そのようなターゲット変更がいつも簡単に実施できるとは限らない。だから Patrick Smacchia 氏による先日の記事 “.Net から Mono へのマイグレーションへの現実的フィードバック (Real world feedback on a .Net to Mono migration)” は,.Net コードを Mono プラットフォームに移行した氏の経験に基づく,貴重な報告であると言える。

Smacchia 氏は,オリジナル製品の NDepend – .Net プラットフォーム向けに開発されている – から, Windows と Linux 両方の Mono 上で動作するように設計された新製品 JavaDepend を開発するための移行作業に関して,自身の会社が行った最近の取り組みについて説明している。氏はその結果を概ね成功と判断し,Mono プラットフォームの使用が,既存のコードベースの 90% 再利用を実現するために貢献した,と評価している。

特にいくつかの機能は,プラットフォーム移行を容易にするのに有効だった。Mono マイグレーションアナライザ (MoMA/Mono Migration Analyzer) は,プラットフォーム特有のコードと,Mono ではサポートされていない .Net 機能を使用したコードとを検出するツールである。ホームページにも説明があるように,このマイグレーションアナライザは誤った検出を行う場合があると同時に,すべての潜在的問題を検出できる訳ではないが,しかし Smacchia 氏は MoMA のパフォーマンスに満足している。MoMA で認識されているもっとも大きな問題領域は,NDepend が使用していたサードパーティ GUI ライブラリに関連するものだった。Windows と Linux の2バージョンの GUI の,別々のトラックでのメンテナンス作業を余儀なくされる代わりに,開発者たちはラッパクラスを利用して,プロプライエタリな GUI コードを標準 .Net コンポーネントにマップする方法を選択した。

Smacchia 氏は Mono の GDI+ サポートを高く評価して,"Mono の GDI++ 実装はいい仕事をした ! ブラボー! Mono チームはまさしく賞賛に値する ...",と強く言っている。最後に,Mono 下で不安定な動作をする Windows Form コンポーネントが2つ (DataGridView/ListView と RichTextBox) ある。ただし Mono プロジェクトはオープンソースであるので,この問題に対応するために必要な修正を,オフィシャルな Mono リリースに頼らず独自に行うことは可能だ。

 

この記事に星をつける

おすすめ度
スタイル

BT