Saya belum pernah menggunakan mono secara komersial, tetapi saya menggunakannya secara pribadi, karena saya bekerja di perusahaan Windows, tetapi secara pribadi adalah pengguna Linux (jadi saya dapat menggunakan kembali apa yang saya lakukan di tempat kerja).
Secara keseluruhan, saya setuju dengan Miguel de Icaza yang mengatakan:
- 25% dari aplikasi .NET bekerja di luar kotak dengan mono
- 25% lainnya dapat dibuat untuk bekerja dalam satu hari atau kurang
- selanjutnya 25% dapat dibuat untuk bekerja dalam seminggu
- 25% terakhir membutuhkan penulisan ulang lengkap dari aplikasi (WinForms / COM)
Mono bekerja cukup baik, tetapi ada beberapa masalah:
- Dukungan VB.NET hanya untuk .NET <= 2.0
- Otentikasi Windows tidak diterapkan
- WPF tidak diterapkan
- Dukungan WCF tidak lengkap
- Kerangka Entitas tidak diterapkan dan tidak ada rencana untuk diterapkan
- "Komponen Web ASP.NET" tidak diterapkan
- Tidak ada dukungan COM-interop
- Koneksi Sybase untuk versi 15.5 (terbaru) tidak berfungsi
- Bug dan ketidaklengkapan di pustaka kelas C # (mis. XML bermasalah di mono <2.6)
- Kontrol browser web Linux memerlukan GTK #
Maka masalah kecil:
- Formulir Windows berfungsi, tetapi tidak selalu disajikan dengan benar
- MonoDevelop tidak dapat mendesain formulir windows
- Debugging 'step through' MonoDevelop tidak benar-benar berfungsi
- Mono-Service mogok setelah 5 jam ...
Bentuk apa yang bisa saya katakan:
- Fungsi WebServices sangat baik
- Jika Anda menjalankan Aplikasi Web, itu berfungsi dengan baik (jika tidak menggunakan WebParts).
- Jika Anda menjalankan WindowsForms, itu tidak akan selalu terlihat sangat bagus (untuk sedikitnya).
- Tidak ada kerjaan yang setara untuk Layanan Pelaporan Microsoft (Pelaporan FY adalah hal yang paling dekat dengannya, tetapi lambat, bermasalah, dan sangat tidak lengkap, ditambah tidak ada aktivitas sejak lebih dari setahun)
- Anda akan mengalami masalah jika Anda perlu membuat dokumen Word atau Excel.
Jika Anda ingin mengembangkan .NET di Linux
- Anda dapat mengembangkan ASP.NET di sana (debugging & langkah demi langkah bekerja sangat buruk)
- Anda tidak dapat benar-benar mengembangkan WinForms di Linux
- Anda perlu menggunakan GTK # alih-alih WinForms
Dengan kata lain:
- Mono memiliki tempatnya dalam menjalankan aplikasi web dan WebServices dan MailServers.
- Tapi itu tidak layak untuk menjalankan aplikasi WindowsForms, Anda perlu menulis aplikasi dengan GTK #
- Itu tidak memiliki solusi pelaporan dan dukungan format file MS (atau perpustakaan kerja karena itu)
Sunting (pembaruan 2015):
Saya ingin menambahkan bahwa sekarang, proses debug 'step through' bekerja dengan sangat baik, dan Anda dapat menggunakan MonoDevelop untuk mengembangkan aplikasi web di Linux, bahkan dengan dependensi nuGet. Masalah dengan pustaka Excel dan Word juga hilang, dan kerangka kerja entitas sekarang open-source. Sisanya cukup "sebagaimana adanya" (tidak tahu apakah layanan tunggal sudah diperbaiki, tapi saya harap begitu).
Apa yang telah ditingkatkan juga adalah bahwa Anda sekarang dapat memiliki paket saat ini untuk distro Anda, artinya Anda tidak perlu menunggu sampai rilis berikutnya, katakanlah Debian / Ubuntu, sampai Anda mendapatkan versi mono terbaru (tanpa harus mengkompilasi sendiri ). Ini adalah waktu yang lebih aman.
Juga, dengan rilis Roslyn, dukungan VB.NET akan menjadi jauh lebih baik dalam waktu dekat.