La società che lavoro per obiettivi Mono su Linux come ambiente di distribuzione principale. Quindi non esiste un lavoro "aggiuntivo": forniamo l'intero stack, dall'hardware, al sistema operativo (personalizzato e tagliato) alle applicazioni. L'utilizzo di Open Source offre enormi risparmi per noi e per i nostri clienti (e sì, contribuiamo ai progetti OS su cui facciamo affidamento).
L'importante è testare costantemente utilizzando il target effettivo (mi dispiace, Mono su Windows non conta). Certo, gli sviluppatori usano Visual Studio, ma l'integrazione continua (usando CruiseControl.Net, avrete bisogno di Mono 2.4.2 per eseguirlo su Linux) è fatta sia su Windows che Linux, testando tutte le versioni Mono su cui ci aspettiamo di lavorare (ha ottenuto molto più stabile di recente, ma ancora, le regressioni avvengono tra le versioni). È abbastanza facile eseguire parallel Mono versions su un sistema * nix, è anche possibile includere una build di snapshot svn se si preferisce anticipare le regressioni a monte. Se non distribuisci la tua distribuzione, ricorda che la maggior parte dei rivenditori Linux spediscono Mono con patch personalizzate - questo ha causato problemi per noi prima. Inoltre, molte distribuzioni hanno un sacco di ritardi nell'aggiornamento di Mono, e questo è un progetto che avanza rapidamente.
Per il livello di database utilizziamo principalmente "semplice" ADO.NET - Oracle (con dotConnect for Oracle, supportano Mono) e SQLite (Mono viene fornito con un connettore funzionante). Ho anche usato il ADO.NET Driver for MySQL (Connector/NET) ufficiale e anch'esso funziona bene. I mapping ORM sono più complicati, ma NHibernate è utilizzabile (tenere presente che essi non supportano ufficialmente Mono).
Per quanto riguarda il motore di costruzione e test - NAnt e NUnit sono ben noti e ben collaudati. Con la maggior parte delle versioni recenti di Mono xbuild (clone di MSBuild) è diventato effettivamente utilizzabile, ma preparatevi a contribuire con molte patch se decidete di usarlo per scenari più complessi.
Test di scrittura. Molti di loro. Preparati a fornire patch e segnalazioni di errori e, se utilizzi componenti commerciali, assicurati che il fornitore supporti ufficialmente Mono.blog
Sembra che questa domanda dovrebbe essere una wiki della comunità. Non ci sarà una risposta giusta. – mkchandler
D'accordo, potrebbe non esserci una sola risposta giusta, ma dal momento che la distribuzione su Linux ci richiede di assemblare più componenti in un ambiente non nativo, vale la pena di essere ascoltato da quegli sviluppatori che lo hanno effettivamente fatto o sono in procinto di farlo. – keithm
Sono stato tentato di dire "Sorpresa! Non funzionerà!" ma sto solo avendo i miei problemi per implementare un progetto più ampio. Mono è onestamente spettacolare. Ho pensato che avrebbe dato qualche risatina a quelli che stanno ancora cercando di capire gli errori criptici che a volte Mono può vomitare :) – Chazt3n