BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

进行实际应用,Mono准备好了吗?

| 作者 Abel Avram 关注 10 他的粉丝 ,译者 霍泰稳 关注 1 他的粉丝 发布于 2008年10月29日. 估计阅读时间: 3 分钟 | CNUTCon 了解国内外一线大厂50+智能运维最新实践案例。

在技术问答网站Stack Overflow上,有人提问“Mono的黄金时间来了吗?”。包括Mono项目创始人Miguel de Icaza在内的许多用户进行了回答,这些讨论对于判断在Mono上部署应用的时机很有帮助。

Miguel的回答主要基于两个场景:

a)  假设你在移植现有的应用,对Mono是否能完成该任务有所疑虑;

b) 假设你计划写一些新代码,想了解Mono是否功能够好。

对于第一个场景,Miguel建议先运行Mono迁移分析器工具,也就是MoMA。如果MoMA没有提示异常或者异常比较少,那么就可以对现有应用进行移植。Miguel提供了一些MoMA的分析状态报告:

根据印象中那些基于用户提交的MoMA状态报告,大约有50%的应用可以直接移植,25%的需要一周的调整工作(比如重构,改编等),15%的需要对你原有的代码进行大幅改动,其他的则不值得移植,因为它们和Win32绑定的太紧密。这时,不论是从头重做,还是基于商业考虑将代码变得可移植,都需要几个月的工作量(至少从我们现有的报告中看到是这样)。

据Miguel说,如果启动一个新项目的话,事情就简单许多:

如果你从头开始一个新项目,事情就很简单了,因为你只会用到Mono中现有的API。只要你使用现有的支持平台(比如.NET 2.0,以及3.5中包括LINQ和System.Core在内的所有核心更新,和Mono所有的跨平台API),那就万事大吉。

对于提问的问题,其他用户也表达了他们的观点,Jon Galloway说:

对于.NET 2.0功能来说,Mono做得已经很好了。目前许多.NET 3.x功能正在开发之中,还没有完成。

最近我在SubSonic上运行了MoMA,只发现了一个问题——Nullable类型的一个奇怪应用。那么大的代码库,能有这样的成绩很难得。

在语言层面,Mono编译器完全遵从C# 3.0语言规范

Jonathan Holland也提出了自己的观点:

在桌面端,如果你只是使用GTK#,Mono会工作的很好。对Windows.Forms的实现还有点问题(比如,不能使用TrayIcon's),但已经进步很多了。另外,GTK#是一个比Windows表单更好的工具包。

在Web端,Mono实现了ASP.NET的绝大部分功能,大多数网站基于它都运行的很好。这儿的问题是找到一个在Apache上装有mod_mono的主机,或者自己去做,如果你有访问主机的权限。

另一个Stack Overflow用户Daniel指出:

如果你想使用WPF,还需要再等一等,因为Mono目前还没有计划对它进行支持:http://www.mono-project.com/WPF

看上去Mono已经可以进行实际应用了,至少对新应用或者那些顺利通过Moma兼容性测试的应用如此。

查看英文原文:Is Mono Ready for Production?

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT