在谈之前我们先看一下什么是MONO?MONO项目是由Ximian发起、Miguel de lcaza领导、Novell公司主持的项目。它是一个致力于开创.NET在Linux,FreeBSD,Unix,Mac OS X和Solaris等其他平台使用的开源工程。它包含了一个C#语言的编译器,一个CLR的运行时,和一组类库,并逐渐实现了 ADO.NET、ASP.NET、WinForm、Silverlight(可惜没有实现强大的WPF),能够使得开发人员在其他平台用C#开发程序。

值得看好的地方:

1,跨平台:开创.NET在Linux,FreeBSD,Unix,Mac OS X和Solaris等其他平台使用,这是微软没有实现的,但是MONO进行了补充,所以值得看好。
2,开源:不论使用什么技术,大家似乎都希望能够用开源的产品,一方面是考虑到技术的可控性和可维护性;另一方面则是考虑到安全性,当然在另一个角度也是可以学习到其中的一些技术和思想,所以大家对开源总是报以欢迎的态度。
3,不同的方式实现.NET框架:由于微软对技术申请了专利,所以MONO不能盲目的模仿,对很多细节都改用自己的方式进行了实现,所以我们也可以学到很多不一样的实现方式。
4,持续更新:MONO从一开始到现在始终在更新,其中包括bug修复、版本升级、增加新的功能及应用,所以相信它会在不断的更新中更加完善。

不足之处:

1.模仿但要避免专利:由于是模仿微软.NET平台,但因为微软对代码申请了专利,所以MONO只能采用其它实现方式来实现同样的功能,这样一来很多地方就会实现得很累赘,效率也会受损。
2.没有摆脱实验产品的头衔:由于它目前的使用比较低,所以信息反馈和持续改进就做得比较弱,这也是目前功能完善得比较慢的原因之一吧。
3,功能还需要完善:一些主要功能还未实现,如作为Windows平台最基础的COM和COM+功能没有保存,像MSMQ等消息队列,消息传送的功 能也没有实现,对ADO.NET、XML等核心功能效率有待提升,对BCL库代码也有很多需要优化的地方,强大的WPF也没有引入。
4.效率和用户体验还有待提升。

与微软之间的关系

微软与MONO之间的关系也一直处于不冷不热的状态,没有明确的反对,也没有明确的支持,究其原因笔者认为主要有以下两点:
1,微软带来最大收益的产品仍旧是Windows操作系统和Office等软件,微软在其他领域盈利都没有这两大产品来得直接。而.NET作为微软 的强大开发平台,是不希望落在其他平台上运行的,这样就会削弱Windows操作系统和Office等软件的市场占有率,所以让.NET跨平台对微软来说 是一件舍本求末的事情,这也是微软不主张.NET运行于其他平台的主要原因,你想微软是一个以技术为主导的公司,任何IT市场都会有它的身影,如果想 让.NET跨平台,那岂不是一件很轻而易举的事情吗?
2,由于MONO还没有成熟,在很多方面都表现得像一个实验室产品,在根本上没有对微软构成威胁,况且在外界质疑.NET是否能跨平台的时候,还有一个现身的说法,所以微软也不会明确的反对和支持。

总结

  虽然目前来说MONO喜忧参半,但优点始终要大于缺点,毕竟每一个框架或者产品都是慢慢不断改进而完善的,更何况开源必将是未来的一个趋势,所以我们有理由也有信心期待它接下来的发展。