Mono 3.0 has been released with a complete C# 5.0 compiler with asynchronous programming support, improved garbage collection and the incorporation of Microsoft's open-source framework for Web development.
Announcing Mono 3.0 on his blog, Miguel de Icaza writes:
After a year and a half, we have finally released Mono 3.0.
He also says the project is:
"moving to a more nimble release process with Mono 3.0. We are trying to reduce our inventory of pending work and get new features to everyone faster. This means that our "master" branch will remain stable from now on, and that large projects will instead be developed in branches that are regularly landed into our master branch"
This third major revision of Mono, the open source, cross-platform, implementation of the .NET framework, adds support for features added in .NET 5, in particular asynchronous programming which improves an applications ability to respond to input during long-running tasks. The .NET 4.5 Async API profile is now the default for the compiler, but it can support all .NET API profiles for compilation.
It also incorporates the assemblies from Microsoft's open-sourced ASP.NET framework for Web development with Mono's implementation of JSON now being replaced by Microsoft's. ASP.NET's Web Pages, MVC 4, Entity Framework object-relational mapping, and the "Razor" view engine are now all included. Obviously using the same assemblies as the "real thing" reduces the possiblity of any differences.
There are also performance and scalability improvements to garbage collection and runtime optimizations and enhancements to the capabilities of Mono on Mac OS X and iOS, including the prospect of having F# 3.0 bundled with them. See the Release Notes for more details.
There is the wider issue of the place of Mono in the new landscape being created by Microsoft. There is a very real sense in which Mono carries the enthusiasm for .NET which Microsoft seems to have lost. However Mono isn't the real thing and many programmers are unsure of it. Certainly there is little point in switching to Mono under Windows unless you really need the open source or cross platform aspects.
However what about Mono 4?
Even with limited resources the Mono team might well run out of Microsoft sourced innovations to incorporate into the new framework. Will Mono then become the front runner in .NET development?