La version 2.0 de Mono, implémentation de .Net pour Linux (et quelques Unix), a été rendue publique par son concepteur, Miguel de Icaza. Sponsorisé par Novell, le projet Mono s'est appliqué à se rendre conforme à la version 2.0 de .Net (support de C# 3.0, de Linq...), le framework de développement de Microsoft. Amélioré, pourvu de fonctions de reporting, l'analyseur de code (Moma, Mono migration analyzer) vient même à la rescousse pour simplifier le portage d'une application .Net sur du Linux. Moma sert à quantifier le nombre de changements à opérer sur les programmes. D'après l'équipe de développement de Mono, sur une analyse de 4600 applications .Net, il s'est avéré que 45% pouvaient tourner directement sur Mono 2.0 sans changement. Pour 24%, le nombre de changements était inférieur ou égal à 6. Moonlight, bel exemple d'application .Net (Silverlight) sur Linux L'intérêt de Mono, explique Miguel de Icaza, est de pouvoir développer une application en .Net une fois et la déployer partout (la vieille promesse de Java). Néanmoins, même si Mono présente parfois quelques avancées par rapport au framework .Net, il ne peut être au niveau de toutes les fonctions des évolutions les plus récentes. Ce qui en fait soit un outil d'appoint pour des entreprises ayant capitalisé sur .Net mais désirant déployer certains développements sur Linux, Solaris ou MacOS X, soit un choix initial pour un développement multi-plateforme et multi-langage. Novell cite ainsi un éditeur de jeux qui l'utilise afin de pouvoir viser simultanément « le Web, Windows, OS X, Nintendo Wii et bientôt l'iPhone ». Mono peut également servir de base à d'autres projets de portage : le projet Moonlight l'utilise afin de rendre compatible la technologie d'animation Silverlight de Microsoft avec le monde Linux.