Non ho usato mono commercialmente, ma lo uso privatamente, perché lavoro in un'azienda Windows, ma in privato sono un utente Linux (quindi posso riutilizzare quello che faccio al lavoro).
Nel complesso, sono d'accordo con Miguel de Icaza che dice:
- 25 % of .NET applications work out of the box with mono
- another 25% can be made to work within a day or less
- further 25% can be made to work within a week
- The last 25% require a complete rewrite of the application
(WinForms/COM)
Mono funziona abbastanza bene, ma ci sono alcuni problemi:
- VB.NET support only for .NET <= 2.0
- Windows authentication not implemented
- WPF not implemented
- WCF support incomplete
- Entity Framework not implemented and no plans to implement
- "ASP.NET Web Parts" not implemented
- No COM-interop support
- Sybase connection for version 15.5 (latest) doesn't work
- Bugs and incompleteness in the C# class library (e.g. XML was buggy in mono < 2.6)
- The Linux web-browser control requires GTK#
Quindi i problemi minori:
- Windows Forms work, but aren't always rendered properly
- MonoDevelop can't design windows forms
- MonoDevelop 'step through' debugging doesn't really work
- Mono-Service crashes after 5 hours...
Formare quello che posso dire:
- WebServices function excellently
- If you run a WebApplication, it works fairly well (if it doesn't use
WebParts).
- If you run WindowsForms, it won't always look very nice (to say the least).
- There is no working equivalent for Microsoft Reporting Service
(FYIreporting is the closest thing to
it, but it's slow, buggy and very
incomplete, plus no activity since
more than a year)
- You will experience problems if you need to create Word or Excel
documents.
Se vuoi sviluppare .NET su Linux
- You could develop ASP.NET there (debugging & step through works very
badly)
- You can't really develop WinForms on Linux
- You need to use GTK# instead of WinForms
In altre parole:
- Mono has it's place in running web applications and WebServices and
MailServers.
- But it's not viable to run WindowsForms applications, you need to
write applications with GTK#
- It lacks a reporting solution and MS file format support (or working
libraries therefore)
Modifica (aggiornamento 2015):
Volevo aggiungere che ormai il debugging "step through" funziona ottimamente, e puoi usare MonoDevelop per sviluppare applicazioni web su Linux, anche con le dipendenze di nuGet. Il problema con le librerie Excel e Word è sparito, e il framework delle entità ora è open-source. Il resto è praticamente "così com'è" (non so se il mono-servizio è corretto, ma lo spero).
Ciò che è migliorato è che ora puoi avere i pacchetti correnti per la tua distribuzione, il che significa che non devi aspettare la prossima versione di Debian / Ubuntu, fino a quando non ottieni l'ultima versione mono (senza doverli compilare da soli) ). Questo è un tempo molto più sicuro.
Inoltre, con il rilascio di Roslyn, il supporto VB.NET dovrebbe migliorare molto nel prossimo futuro.