把成熟的代码从.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

译者 李永伦 从02年开始关注.NET,读过4年工商管理,任过3届微软MVP,最近恋上Ruby。

This entry was posted in 未分类. Bookmark the permalink.

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s