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

2008 年 10 月 27 日

在技术问答网站 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?

2008 年 10 月 27 日 23:01595

评论

发布
暂无评论
发现更多内容

shark defi鲨鱼智能合约系统软件APP开发

开發I852946OIIO

系统开发

设计模式【1.3】-- 为什么饿汉式单例是线程安全的?

秦怀杂货店

单例模式

架构师训练营第十周作业二

韩儿

Mybatis【10】-- Mybatis属性名和查询字段名不同怎么做?

秦怀杂货店

mybatis

Mybatis【11】-- Mybatis Mapper动态代理怎么写?

秦怀杂货店

mybatis mybatis源码

第五周总结

ty

JDK、JRE、JVM,是什么关系?

小傅哥

jdk JVM 小傅哥 七日更 jre

dubbo服务框架图&时序图

Mars

设计模式【2】-- 简单工厂模式了解一下?

秦怀杂货店

设计模式 工厂模式 工厂方法模式

架构2期 - 第十周作业(1)

浮生一梦

极客大学架构师训练营 第十周 2组

Hadoop编程实战:HDFS API编程

罗小龙

Java hdfs 编程 大数据技术 实践

关于微服务架构

落朽

WLAN网络规划和优化的必备知识点

网络技术平台

生产环境全链路压测建设历程 21:某快递 A 股上市公司的生产压测案例之彩蛋2前言

数列科技杨德华

全链路压测 七日更

架构师训练营第十周作业一

韩儿

架构师训练营第 10 周课后练习

菜青虫

极客大学架构师训练营

10张图带你入门分布式链路追踪系统原理

爱笑的架构师

七日更

XRP瑞波币软件系统开发|XRP瑞波币APP开发

开發I852946OIIO

系统开发

架构师训练营第 10 周学习总结

菜青虫

极客大学架构师训练营

JVM笔记【1】-- 运行时数据区

秦怀杂货店

JVM JVM笔记

LeetCode题解:42. 接雨水,栈,JavaScript,详细注释

Lee Chen

算法 LeetCode 前端进阶训练营

MGR集群相关简介

Simon

MySQL 七日更

讨论话题 进程通信方式和锁关系

王传义

高并发

设计模式【1.2】-- 枚举式单例有那么好用么?

秦怀杂货店

设计模式

架构师训练营:通达同城快递架构设计文档

9527

北漂码农的我,把在大城市过成了屯子一样舒服,哈哈哈哈哈!

小傅哥

小傅哥 技术人 打工人 七日更 落户

模块分解总结

Mars

架构师训练营第十周作业

李日盛

作业-第10周

arcyao

工具词典:PARA方法论

lidaobing

PKM 28天写作营 Tiago Forte PARA

架构相关5

FreeOcean

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