[P]很好的问题。我一一回答你:[/P][P][QUOTE][b]下面引用由[u]绿水萝卜[/u]发表的内容:[/b]
1 据之前的了解,Mono对.net2.0也只是支持大部分,并不能完全兼容,至于3.5和其它的,没有关注它后续的发展。把它用在实际的项目中,风险也挺大。[/QUOTE][/P][P]你所说的这种不兼容的情况,恐怕是多年以前的老皇历了。你所说的这种情况已经是几年前的事了,现在Mono的长期支持版本是2.6.7,最新稳定版本是2.10.2,这两个版本对Microsoft.Net 2.0都有非常好的支持,而且对3.0/3.5的绝大多数特性也支持,并开始支持部分Microsoft.Net 4.0的特性。[/P][P]Mono对Microsoft.Net不兼容的地方,主要在以下几部分:[/P][P]1、WCF:Mono支持一些最基本的WCF特性,但不支持其所有特性;[/P][P]2、WPF / Silverlight:这部分完全不支持;[/P][P]3、底层图形库:这部分特性不见得都不支持,但在Linux下的实现和在Windows下的实现有很大的差异。[/P][P]4、Mono还包含一些Microsoft.Net所不涉及的特性,比如说Mono.Unix这个namespace。[/P][P] [/P][P]知道了Mono和Microsoft.Net的差异在哪里,你就知道了在什么样的项目中可以大胆地使用Mono,在什么项目中你可以先做兼容性试验,在什么样的项目中你应该放弃Mono。[/P][P]在我的这个项目中,由于我做的是纯server端开发,而且没有用到WCF,所以我采用了Mono。[/P][P]关于Mono的稳定性:现在的Mono早已不是一个用来做实验的东西,它早已是一个产品级的平台了。近几年,国外著名的.Net开源项目,有很多已经推出了Mono版的实现。比如说应用甚广的mojoPortal,这么复杂的一个CMS都推出了与Microsoft.Net同步更新的Mono版,可见mojoPortal开发团队对Mono的信心。[/P][P]Mono我早在几年前就在关注,基本上Mono每一个大版本出来后我都会尝试一下,无论是在Windows上还是Linux上的表现,现在的版本表现都挺不错的。而且以前我在Mac系统下工作的时候也尝试过拿Mono 2.x在Mac系统上写WinForm的程序,偶尔做一些小工具的开发,还是非常高效的。[/P][P] [/P][P]关于Mono对Microsoft.Net的兼容性,最新的官方文档如下:[/P][P][URL=http://www.mono-project.com/Compatibility]http://www.mono-project.com/Compatibility[/URL][/P][P][upload=14182,0]Compact-4.0.png[/upload][/P][P][upload=14183,0]Compact-3.0.png[/upload][/P][P][upload=14184,0]Compact-2.0.png[/upload][/P][P]另外,如果你有一个现成的.Net程序,想移植到Mono平台,可以用这个工具来事先做一下兼容性分析:[/P][P][URL=http://www.mono-project.com/MoMA]http://www.mono-project.com/MoMA[/URL][/P][P] [/P][P]
[/P]