Kami menggunakannya di perusahaan besar tempat saya bekerja. Kami tidak merencanakannya sejak awal proyek tetapi hanya berhasil seperti itu.
Kami memiliki proyek internal yang kami kembangkan di .NET, begitu kami masuk ke UAT, pemilik bisnis ingin membuka aplikasi hingga beberapa pelanggan dan juga staf internal. Sebagian besar server eksternal (DMZ) kami berbasis Linux dan server Windows yang ada di DMZ tidak cocok (terlalu dekat dengan kapasitas). Alih-alih membeli perangkat keras baru, seseorang menyarankan untuk menjalankan aplikasi di Mono. Kami menghabiskan beberapa hari melakukan pengujian kami sendiri dan kemudian merilis aplikasi ke QA, lalu UAT. Kami tidak punya masalah.
Jika kami telah diberikan persyaratan pada awal proyek, kami mungkin tidak memilih untuk menulisnya di .NET, tetapi ini adalah salah satu hasil yang bagus untuk perubahan persyaratan yang sangat, sangat terlambat. Sekarang kami cukup yakin bahwa jika muncul lagi kami dapat berhasil digunakan untuk Mono (walaupun saya pikir pada akhirnya kami harus men-tweak beberapa kode, saya pikir kami beruntung).
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:
Mono bekerja cukup baik, tetapi ada beberapa masalah:
Maka masalah kecil:
Bentuk apa yang bisa saya katakan:
Jika Anda ingin mengembangkan .NET di Linux
Dengan kata lain:
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.
sumber
Perusahaan saya mengembangkan aplikasi desktop sebagian besar-.NET dan merilis versi Linux yang berjalan di Mono, jadi saya akan mengatakan ya, pasti ada tempat bagi Mono dalam solusi berbasis perusahaan untuk Windows.
Kami mengemas Mono dengan pemasangan aplikasi kami, tidak mengharuskan pengguna untuk menginstalnya secara terpisah (dan kami juga mengontrol versi ini).
sumber
Saya pikir perhatian utama banyak perusahaan akan miliki adalah masalah lisensi antara Mono dan Microsoft. Pemahaman saya adalah bahwa sementara Microsoft secara resmi setuju bahwa Mono dapat menggunakan teknologi inti .NET, tetapi di luar itu, termasuk tentang hal-hal yang sangat umum digunakan, lebih merupakan wilayah abu-abu secara hukum dengan Microsoft menyatakan tidak ada posisi yang kuat di satu sisi atau lain.
Itu jelas membuka kemungkinan bahwa di telepon mereka akan menuntut biaya lisensi atau hanya menuntut pelanggaran paten. Tidak mungkin keduanya akan terjadi dari cara mereka berperilaku sekarang, tetapi sebagian besar perusahaan tidak menyukai ketidakpastian semacam itu, terutama tidak ketika datang dengan potensi kewajiban dan biaya yang melekat.
sumber
Saya tidak berpikir ada banyak ruang untuk Mono di sana:
Java sudah menjadi platform di Linux, dengan komunitas besar dan berlimpahnya perpustakaan dan alat berkualitas perusahaan, baik komersial maupun open-source. Saya tidak melihat alasan untuk memilih Mono dari Jawa ketika memulai proyek baru yang menargetkan Linux (atau Mac), kecuali ada keadaan tertentu (lihat jawaban Walter).
sumber
Sebelum menggunakan mono, kita harus memastikan tidak ada hardcoded '\' untuk string path (gunakan Path.Combine ()) atau awalan "COM" (cukup terima string daripada integer) karena port serial ada dalam program.
Apa yang bekerja dengan baik:
Masalah yang ditemui:
Lebih baik menggunakan mono secara internal (seperti sistem ERP) sebagai lingkungan yang terkontrol.
sumber
Mono adalah alternatif yang bagus jika Anda sudah memiliki kode .NET yang perlu dijalankan di lingkungan lintas platform. Mono digunakan cukup luas di dunia bisnis khusus untuk menyelesaikan masalah ini.
Saya akan membantah menggunakan keberadaan Mono sebagai alasan untuk memulai proyek dengan .NET yang Anda tahu harus cross-platform. Alasan untuk ini adalah jurang antara state-of-the-art dengan .NET versus kecepatan pengembangan Mono.
Di sisi lain, jika Anda tidak berniat untuk menggunakan Mono dalam proyek masa depan, saya akan memperingatkan Anda untuk menargetkan kerangka Mono dan berjalan di NET sebagai alternatif sekunder karena Mono sebagian besar merupakan bagian dari fungsionalitas NET penuh.
sumber