Tôi chưa sử dụng đơn thương mại, nhưng tôi sử dụng riêng, vì tôi làm việc trong một công ty Windows, nhưng riêng tôi là người dùng Linux (vì vậy tôi có thể sử dụng lại những gì tôi làm trong công việc).
Nhìn chung, tôi đồng ý với Miguel de Icaza, người nói:
- 25% ứng dụng .NET hoạt động tốt với mono
- 25% khác có thể được thực hiện để làm việc trong vòng một ngày hoặc ít hơn
- hơn 25% có thể được thực hiện để làm việc trong vòng một tuần
- 25% cuối cùng yêu cầu viết lại hoàn toàn ứng dụng (WinForms / COM)
Mono hoạt động khá tốt, nhưng có một số vấn đề:
- VB.NET chỉ hỗ trợ cho .NET <= 2.0
- Xác thực Windows không được thực hiện
- WPF không được thực hiện
- Hỗ trợ WCF không đầy đủ
- Khung thực thể không được triển khai và không có kế hoạch thực hiện
- "Phần Web ASP.NET" không được triển khai
- Không hỗ trợ COM-interop
- Kết nối Sybase cho phiên bản 15,5 (mới nhất) không hoạt động
- Lỗi và không đầy đủ trong thư viện lớp C # (ví dụ: XML bị lỗi trong đơn âm <2.6)
- Kiểm soát trình duyệt web Linux yêu cầu GTK #
Sau đó, các vấn đề nhỏ:
- Windows Forms hoạt động, nhưng không phải lúc nào cũng được hiển thị đúng
- MonoDevelop không thể thiết kế các mẫu cửa sổ
- MonoDevelop 'bước qua' gỡ lỗi không thực sự hoạt động
- Dịch vụ đơn nhân gặp sự cố sau 5 giờ ...
Hình thành những gì tôi có thể nói:
- Chức năng dịch vụ web xuất sắc
- Nếu bạn chạy WebApplication, nó hoạt động khá tốt (nếu nó không sử dụng WebParts).
- Nếu bạn chạy WindowsForms, nó sẽ luôn trông rất đẹp (ít nhất là như vậy).
- Không có dịch vụ tương đương với Dịch vụ báo cáo của Microsoft (FYIreporting là thứ gần gũi nhất với nó, nhưng nó chậm, lỗi và rất không đầy đủ, cộng với không có hoạt động nào sau hơn một năm)
- Bạn sẽ gặp vấn đề nếu bạn cần tạo tài liệu Word hoặc Excel.
Nếu bạn muốn phát triển .NET trên Linux
- Bạn có thể phát triển ASP.NET ở đó (gỡ lỗi và từng bước hoạt động rất tệ)
- Bạn thực sự không thể phát triển WinForms trên Linux
- Bạn cần sử dụng GTK # thay vì WinForms
Nói cách khác:
- Mono có chỗ trong việc chạy các ứng dụng web và WebService và MailServers.
- Nhưng không thể chạy các ứng dụng WindowsForms, bạn cần viết các ứng dụng với GTK #
- Nó thiếu một giải pháp báo cáo và hỗ trợ định dạng tệp MS (hoặc do đó thư viện làm việc)
Chỉnh sửa (cập nhật 2015):
Bây giờ tôi muốn thêm rằng, 'từng bước' gỡ lỗi hoạt động xuất sắc và bạn có thể sử dụng MonoDevelop để phát triển các ứng dụng web trên Linux, ngay cả với các phụ thuộc nuGet. Vấn đề với các thư viện Excel và Word cũng không còn nữa, và khung thực thể hiện là nguồn mở. Phần còn lại là khá nhiều "như hiện tại" (không biết liệu dịch vụ đơn có được sửa hay không, nhưng tôi sẽ hy vọng như vậy).
Điều cải thiện là giờ đây bạn có thể có các gói hiện tại cho bản phân phối của mình, nghĩa là bạn không cần đợi đến bản phát hành tiếp theo, nói Debian / Ubuntu, cho đến khi bạn có được phiên bản đơn âm mới nhất (mà không phải tự biên dịch chúng ). Đây là một thời gian lớn an toàn hơn.
Ngoài ra, với việc phát hành Roslyn, hỗ trợ VB.NET sẽ tốt hơn rất nhiều trong tương lai gần.