把成熟的代碼從.NET移植到Mono 【轉】

現有的應用程序代碼代表了一個開發者在時間和金錢上的大量投入。理想情況下,現有代碼可以通過某種平臺相關的接口結合起來,這種接口提供了一個快速方案,幫助利用原有的資源。但在實踐中,這種轉換平臺的做法並不總是容易的,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

 

作者 Jeff Martin 譯者 李永倫 發佈於 2011年11月23日

http://www.infoq.com/cn/news/2011/11/net-to-mono

 

http://www.mono-project.com/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章