Rotor
Rotor, também conhecido como "Shared Source Common Language Infrastructure", é o código fonte das implementações submetidas ao ECMA, como o C# e parte do Framework .NET. É importante entender que grande parte da plataforma .Net não foi submetida ao ECMA, como os seguintes recursos:
ASP.NET
ADO.NET
Soap Web Clients
Soap Web Servers
Xslt/XPath
System.Windows.Forms
System.EnterpriseServices
Para auxiliar no desenvolvimento, o rotor disponibiliza algumas ferramentas para como compiladores, debuggers, assemblers disassemblers e outros utilitários.
O rotor só é compatível para os sistemas operacionais FreeBSD, MacOS e Windows XP. Até o momento, só existe uma versão do rotor, que é a class libraries compatível com a versão 1.0 das especificações submetidas ao ECMA. Sabendo-se que ambas as especificações (Class Libraries e C#) foram modificadas - é bem possível crer em uma versão 2.0 do rotor.
Maiores informações sobre o rotor em: http://msdn.microsoft.com/net/sscli
DotGnu
O objetivo principal deste projeto é a criação de ferramentas open source que possibilitem a execução de aplicativos .Net.
Inicialmente, a plataforma para utilizar o dotgnu seria Gnu/Linux, no entanto o dotgnu já está funcionando em Windows, FreeBSD, NetBSD, MacOS, Solaris entre outros. Este projeto não se restringe a arquiteturas de computador, sendo suportado hoje em: x86, PPC, ARM, Sparc, s390, Alpha, ia-64, and PARISC.
O foco principal do projeto é portabilidade, permitindo assim que um aplicativo criado no sistema operacional Windows possa ser executado em qualquer outro que contenha o dotgnu instalado.
Este projeto já possui uma implementação do namespace System.Windows.Forms, possibilitando assim a execução de aplicativos Windows Forms. Além disso possui outros namespaces não padronizados no ECMA como System.Drawing e System.Graphics. Abaixo uma imagem ilustra uma aplicação windowsform rodando sobre o sistema operacional Gnu/linux:
Outra informação muito interessante é que já é possível desenvolver e executar webservices com o DotGnu. Hoje já estão disponíveis diversas ferramentas para desenvolvimento como: compiladores, assemblers ou disassemblers, utilitários de para mensurar performance entre outras.
Maiores informações sobre o dotgnu em: http://www.dotgnu.org
Mono
O projeto Mono foi criado por Miguel de Icaza e tem inicialmente por objetivo o mesmo que os projetos acima, portabilizar aplicativos .Net em sistemas operacionais Unix-like, facilitando e impulsionando o desenvolvimento de aplicativos visuais em sistemas operacionais Unix-like.
Voltando um pouco na história, lembramos que o windows em seu surgimento, não era muito utilizado entre os usuários finais, até o dia em que a Microsoft lançou o Visual Basic 1. Foi a partir deste momento (marco histórico) que o windows começou a ser mais utilizado.
O Windows hoje é líder de mercado em desktop, pois é o sistema operacional que possui muitos programas e de mais fácil utilização. Tendo isso em mente, Miguel de Icaza criou este projeto para facilitar o desenvolvimento.
Fazendo isso, automaticamente todos os programas desenvolvidos sobre a plataforma .Net passam a serem híbridos, podendo ser executados em qualquer ambiente que possua um framework .NET instalado.
Status do Mono
A versão atual do Mono já é compatível com a versão 1.0 e 1.1 do .NET framework. Também já possui um servidor web para aplicativos asp.net, entretanto ainda não possui nada funcional quanto a windowsforms. As próximas versões do mono seguem o seguinte cronograma: