Mono lohnt sich nur für DotNet Projekte die auf unterschiedlichen Plattformen(Linux, MS Windows.. etc.) laufen sollen, anstatt für jede Plattform eine separate Entwicklung vorzunehmen.
Mono hängt der aktuellen Feature des Frameworks verständlicherweise immer hinterher.
Man sollte im Blick behalten, das sich DotNet aus verschiedenen "Komponenten" zusammen setzt.
- die DotNet Runtime mit den JIT Compilern (MSIL nach Maschinencode)
- den Compilern von Quellcode zu MSIL
- der Klassenbibliothek, welche im Framework nicht unbedeutend klein ist
Zu mal lassen sich unter Linux nicht alle Systemaufrufe wie unter Windows durchführen.
Die Threadverwaltung zum Beispiel ist Recht unterschiedlich.
Ausserdem wrappen einige Klassen im DotNet Framework nur Windows API Aufrufe.
Besonders die Windows Forms sind davon betroffen.
Was wohl ganz gut laufen soll ist ASP.NET.
Im Übrigenen Mono läuft auch auf Windows Systemen.