La empresa para la que trabajo apunta a Mono en Linux como nuestro entorno de implementación principal. Por lo tanto, no hay un trabajo "adicional": proporcionamos toda la pila, desde el hardware, hasta el sistema operativo (personalizado y recortado) a las aplicaciones. El uso de Open Source ofrece grandes ahorros para nosotros y nuestros clientes (y sí, contribuimos de nuevo a los proyectos de SO en los que confiamos).
Lo importante es probar constantemente con su objetivo real (lo siento, Mono en Windows no cuenta). Claro, los desarrolladores usan Visual Studio, pero la integración continua (utilizando CruiseControl.Net, necesitará Mono 2.4.2 para ejecutarlo en Linux) se realiza tanto en Windows como en Linux, probando todas las versiones Mono en las que esperamos trabajar (obtuvo mucho más estable recientemente, pero aún así, las regresiones ocurren entre lanzamientos). Es bastante fácil ejecutar parallel Mono versions en un sistema * nix, incluso puede incluir una compilación instantánea svn si prefiere detectar las regresiones iniciales antes de tiempo. Si no despliega su propia distribución, recuerde que la mayoría de los proveedores de Linux envían Mono con parches personalizados, esto nos ha causado problemas anteriormente. Además, muchas distribuciones tienen mucha demora para actualizar Mono, y este es un proyecto que avanza rápidamente.
Para la capa de base de datos usamos principalmente ADO.NET "simple" - Oracle (con dotConnect for Oracle, admiten Mono) y SQLite (Mono se envía con un conector de trabajo). También he usado el ADO.NET Driver for MySQL (Connector/NET) oficial y también funciona bien. Las asignaciones de ORM son más complicadas, pero se puede utilizar NHibernate (tenga en cuenta que no admiten Mono oficialmente).
En cuanto al motor de compilación y las pruebas, NAnt y NUnit son bien conocidos y probados. Con la versión más reciente de Mono xbuild (clon de MSBuild) realmente se puede usar, pero prepárate para contribuir con muchos parches si decides usarlo para escenarios más complejos.
Escribir pruebas. Muchos de ellos. Esté preparado para contribuir con parches e informes de errores, y si usa componentes comerciales, asegúrese de que el proveedor sea compatible oficialmente con Mono.el blog
Parece que esta pregunta debería ser una wiki de la comunidad. No va a haber una respuesta correcta. – mkchandler
De acuerdo, puede que no haya una sola respuesta correcta, pero como la implementación en Linux requiere que ensamblemos más componentes en un entorno no nativo, vale la pena saber de los desarrolladores que lo han hecho o están en proceso de hacerlo. – keithm
Estuve tentado de decir "¡Sorpresa! ¡No funcionará!" pero solo tengo mis propios problemas para implementar un proyecto más grande. Mono es honestamente espectacular. Solo pensé que eso daría algunas risas a aquellos que aún están tratando de entender los crípticos errores que a veces Mono puede vomitar :) – Chazt3n