Я не використовував монокомерційно, але використовую приватно, бо працюю в компанії Windows, але приватно я є користувачем Linux (тому я можу повторно використовувати те, що роблю на роботі).
В цілому я згоден з Мігелем де Іказа, який говорить:
- 25% додатків .NET працює з коробки з моно
- ще 25% можуть змусити працювати протягом дня або менше
- ще 25% можуть працювати на протязі тижня
- Останні 25% потребують повного перезапису програми (WinForms / COM)
Моно працює досить добре, але є деякі проблеми:
- Підтримка VB.NET лише для .NET <= 2.0
- Автентифікація Windows не реалізована
- WPF не реалізовано
- Підтримка WCF неповна
- Entity Framework не впроваджений і не планується впроваджувати
- "Веб-частини ASP.NET" не реалізовані
- Немає підтримки COM-interop
- Підключення Sybase для версії 15.5 (остання) не працює
- Помилки та неповнота в бібліотеці класів C # (наприклад, XML був помилковим у моно <2,6)
- Для керування веб-браузером Linux потрібен GTK #
Тоді незначні проблеми:
- Форми Windows працюють, але не завжди відображаються належним чином
- MonoDevelop не може розробляти форми Windows
- MonoDevelop "крок через" налагодження насправді не працює
- Моно-сервіс виходить з ладу через 5 годин ...
Сформуйте, що я можу сказати:
- WebServices чудово функціонують
- Якщо ви запускаєте WebApplication, він працює досить добре (якщо він не використовує WebParts).
- Якщо ви запускаєте WindowsForms, це не завжди буде виглядати дуже приємно (якщо не менше).
- Не існує жодного робочого еквівалента для Microsoft Reporting Service (FYIreporting - це найближче для нього, але це повільно, глючно і дуже неповно, плюс ніякої активності більше ніж рік)
- У вас виникнуть проблеми, якщо вам потрібно створити документи Word або Excel.
Якщо ви хочете розвивати .NET в Linux
- Ви можете там розробити ASP.NET (налагодження та крок через роботи дуже погано)
- Ви не можете реально розробляти WinForms в Linux
- Вам потрібно використовувати GTK # замість WinForms
Іншими словами:
- Mono має своє місце у запуску веб-додатків та веб-сервісів та поштових серверів.
- Але запустити програми WindowsForms нецілком, потрібно писати програми за допомогою GTK #
- Не вистачає рішення для звітності та підтримки формату файлів MS (або робочих бібліотек, отже)
Редагування (оновлення 2015 р.):
Я хотів додати, що на сьогоднішній день налагодження «крок крізь» працює чудово, і ви можете використовувати MonoDevelop для розробки веб-додатків на Linux, навіть із nuGet залежностями. Проблема з бібліотеками Excel і Word також відсутня, і сутність-фреймворк тепер є відкритим кодом. Решта в значній мірі "як є" (не знаю, чи встановлено моносервіс, але я би сподівався на це).
Також покращилось те, що тепер ви можете мати поточні пакети для вашого дистрибутива, тобто вам не потрібно чекати наступного випуску, скажімо, Debian / Ubuntu, поки ви не отримаєте останню моно-версію (без необхідності їх складання самостійно ). Це головне безпечніше в часі.
Крім того, з виходом Roslyn, підтримка VB.NET повинна найближчим часом стати набагато кращою.