把成熟的程式碼從.NET移植到Mono

weixin_33860553發表於2011-11-27

現有的應用程式程式碼代表了一個開發者在時間和金錢上的大量投入。理想情況下,現有程式碼可以通過某種平臺相關的介面結合起來,這種介面提供了一個快速方案,幫助利用原有的資源。但在實踐中,這種轉換平臺的做法並不總是容易的,Patrick Smacchia最近的文章《Real world feedback on a .Net to Mono migration》就他把現有的.NET程式碼移植到Mono平臺上的經歷給出了一些有用的想法。

Smacchia提到他的公司最近把他原先的產品NDepend(為.NET平臺而寫的)移植成一個新的產品JavaDepend,這個新的產品執行在Windows和Linux的Mono上面。總的來說,他認為這次的移植非常成功,使用Mono平臺幫他重用了大約90%的現有程式碼。

值得注意的是,有些工具可以簡化平臺移植的工作。Mono的Migration Analyzer(MoMA) 可以用來查詢Mono尚未支援的與平臺相關的程式碼以及使用了.NET特性的程式碼。正如它的主頁所說的,Migration Analyzer可能產生一些錯誤的結果,也無法捕獲所有的潛在問題。但是,Smacchia對MoMA的表現非常滿意。MoMA識別出來的最大問題和 NDepend所用的第三方GUI庫有關。為了避免分別維護Windows和Linux的GUI程式碼,開發者選擇了使用包裝類,它們可以把自有的GUI代 碼對映到標準的.NET元件。

Smacchia對Mono的GDI+有著極高的評價,特別強調道“Mono的GDI+實現非常勝任!太棒了!我必須祝賀Mono組...”。最 後,有一些Windows Form元件(DataGridView/ListView和RichTextBox)在Mono上表現不夠穩定。不過,Mono專案的開源性質允許開發 者針對他們的需要進行特定修改,而不必等待Mono的官方釋出修正相關問題。

檢視英文原文:Migrating Established Code From .Net to Mono

相關文章