mono目前已发布到mono2.6.4版本,C#编译器,运行时和类库都不同程度的做了重大优化、升级或重构,与2004年最初的版本已不能同日而语,执行效率大幅提升,在windows平台下,甚至优于原生的.NET程序。作为.net的开源实现,mono最大限度兼容.NET,但拒绝成为.NET的纯粹跟随和克隆者,更多关注在非windows平台上的应用开发能力,自mono2.0开始,大量加入mono独有的特性(如SIMD支持),扩充的mono库,开发工具,开发环境等,为非windows平台下的应用开发,提供了功能强大、易用的选择。
一、当前与.NET的兼容情况:
二、性能改进与运行时创新----新的代码生成引擎极大地提高了在Mono运行时上执行.NET应用的效率;此外,处于管理之下的Single Instruction和Multiple Data(SIMD)扩展还可以帮助开发者充分发挥硬件加速的优势,而无需使用低级语言编程。包括完全提前(AOT)编译技术在内的其他运行时创新能够将基于Mono的应用移植到新平台。
三、Mono正在超越标准----mono开发新库的速度远快于microsoft,以Mono为基础,一些成熟的项目,如Mono.Options或collection library C5直接包含在mono库中,许多既有的动态链接库也被包装成.NET的版本,例如:GdaSharp(源自GNOME Data Access,作用类似 ADO.NET)、Cocoa#(源自MacOS X Cocoa)、X Sharp(源自X Windows)、Qt#(源自Qt )、Sharp WT(源自Java SWT)、wx.NET(源自wxWidgets)、CsGL(源自Open GL)、 C#-SDL(源自SDL)、GeckoSharp(源自Mozilla Gecko)。Mono还有一个整合许多API的计划 ,称为Tao Framework。Tao整合了Cg、DevIL、FreeGLUT、GLFW、GLU、OpenAL、OpenGL 、SDL、WGL。
四、Mono将.Net带到iPhone、Android和Wii----根据Novell公司的首席Mono开发者Miguel de Icaza称,Apple的App Store中有多个应用程序是基于Mono。这可能会让那些熟悉苹果应用程序限制政策的人感到意外,因为苹果公司严格禁止开发者使用解释语言和第三方运行环境——在很大程度上就将.NET和Java之类技术排除在外。静态编译(Static compilation)是一道特别的沙司,正是它使得Mono在iPhone中运行成为可能。Mono还允许开发者使用ahead-of-time(AOT)编译,它能将.NET的通用中间语言(CIL)直接在编译中转变成原生码,这意味着应用程序不必要使用运行时编译执行技术(JIT),以在运行时产生原生码。de Icaza提到,开发者还开始使用Unity,基于Mono的开发3D游戏的第三方商业编程框架。目前App Store中大约40款应用程序是基于Unity和Mono。一个Wii上的德国游戏My Animal Center,代码主要是C#,用Unity和Mono开发。除了iPhone和Wii之外,一位开发者正试验性的将Mono运行库移植到Android平台。这一切都展示了开源的价值和内在的适应性。
五、Mono企业级开发平台工具----mono已经拥有完整的应用开发框架、工具集、编译器、调试器等、以及丰富文档资料,已经成为一种全面应用开发工具。mono可帮助独立软件厂商、独立开发者以及企业开发者在跨多种硬件架构(包括大型机)的Linux平台上运行.NET客户端以及服务器应用。 MonoDevelop可帮助开发者在Linux上编写桌面与ASP.NET Web应用,将利用Microsoft Visual Studio开发的.NET应用移植至Linux*和Mac OS X*,并在这三种平台之间保持统一的代码基础。MonoDevelop提供各种工具,帮助开发者简化和优化在Linux平台上开发.NET的流程。MonoDevelop使用MSBuild项目文件增加与Visual Studio. Web项目的互操作性,并与Visual Studio 2008及Visual Web Developer 2008 SP1兼容,为需要在Windows*和Linux上开发并部署web应用的开发者提供更多选项。
一个学习与探讨mono的网站上线公测中,网站运行于Debian+Apache+Mono+Asp.net,欢迎你的意见。http://www.imono.cc