Công ty tôi làm việc cho các mục tiêu Mono trên Linux là môi trường triển khai chính của chúng tôi. Do đó không có công việc "bổ sung" - chúng tôi cung cấp toàn bộ ngăn xếp, từ phần cứng, thông qua hệ điều hành (tùy chỉnh và cắt) cho các ứng dụng. Sử dụng nguồn mở mang lại khoản tiết kiệm rất lớn cho chúng tôi và khách hàng của chúng tôi (và có, chúng tôi đóng góp lại cho các Dự án hệ điều hành mà chúng tôi dựa vào).
Điều quan trọng là liên tục thử nghiệm bằng cách sử dụng mục tiêu thực tế của bạn (xin lỗi, Mono trên Windows không được tính). Chắc chắn, các nhà phát triển sử dụng Visual Studio, nhưng việc tích hợp liên tục (sử dụng CruiseControl.Net, bạn sẽ cần Mono 2.4.2 để chạy nó trên Linux) được thực hiện trên cả Windows và Linux, thử nghiệm tất cả các phiên bản Mono mà chúng tôi mong đợi để làm việc. ổn định hơn gần đây, nhưng vẫn còn, hồi quy xảy ra giữa các phiên bản). Nó khá dễ dàng để chạy parallel Mono versions trên một hệ thống * nix, thậm chí bạn có thể bao gồm một bản dựng svn snapshot nếu bạn muốn bắt các hồi quy ngược dòng sớm. Nếu bạn không tung ra bản phân phối của riêng mình, thì hãy nhớ rằng hầu hết các nhà cung cấp Linux gửi Mono với các bản vá lỗi tùy chỉnh - điều này đã gây ra vấn đề cho chúng tôi trước đây. Ngoài ra, nhiều bản phân phối có rất nhiều sự chậm trễ cập nhật Mono, và đây là một dự án tiến bộ nhanh chóng.
Đối với lớp cơ sở dữ liệu, chúng tôi sử dụng chủ yếu là "đồng bộ" ADO.NET - Oracle (với dotConnect for Oracle, chúng hỗ trợ Mono) và SQLite (Mono có kết nối làm việc). Tôi cũng đã sử dụng chính thức ADO.NET Driver for MySQL (Connector/NET) và nó cũng hoạt động tốt. Ánh xạ ORM phức tạp hơn, nhưng NHibernate có thể sử dụng được (hãy nhớ rằng chúng không hỗ trợ Mono chính thức).
Đối với công cụ xây dựng và thử nghiệm - NAnt và NUnit được biết đến và được kiểm tra kỹ lưỡng. Với hầu hết các phiên bản mới nhất của Mono xbuild (bản sao MSBuild) thực sự có thể sử dụng được, nhưng hãy chuẩn bị cho việc đóng góp khá nhiều bản vá nếu bạn quyết định sử dụng nó cho các kịch bản phức tạp hơn.
Viết kiểm tra. Rất nhiều người trong số họ. Hãy chuẩn bị để đóng góp các bản vá lỗi và các bản báo cáo, và nếu bạn sử dụng các thành phần thương mại - hãy đảm bảo rằng nhà cung cấp chính thức hỗ trợ Mono.Blog
Âm thanh như câu hỏi này phải là một wiki cộng đồng. Sẽ không có một câu trả lời đúng. – mkchandler
Đồng ý, có thể không có một câu trả lời đúng, nhưng kể từ khi triển khai lên Linux yêu cầu chúng tôi tập hợp nhiều thành phần hơn trong môi trường không phải là bản địa, nó đáng nghe từ những nhà phát triển thực sự đã thực hiện hoặc đang trong quá trình thực hiện. – keithm
Tôi đã bị cám dỗ để nói "Ngạc nhiên! Nó sẽ không hoạt động!" nhưng tôi chỉ gặp vấn đề của riêng mình khi triển khai một dự án lớn hơn. Mono thật là ngoạn mục. Chỉ cần nghĩ rằng sẽ cung cấp cho một vài cười khúc khích với những người vẫn đang cố gắng để hiểu những lỗi khó hiểu Mono đôi khi có thể ném lên :) – Chazt3n