2010-01-19 5 views
6

Todavía no he necesitado escribir ninguna aplicación multiplataforma en C#. Sin embargo, cada vez que vengo a trabajar con rutas, etc., siempre me pregunto qué cosas debería hacer para facilitar mi vida si necesito cruzar la compilación de Mono.¿Cuáles son las buenas reglas generales al escribir aplicaciones multiplataforma en C#?

Entiendo que la GUI podría ser un problema. Me gustaría tratar de emplear buenas prácticas de plataforma cruzada en mi codificación normal de Windows si es posible.

¿Hay algún problema de ADO a tener en cuenta?

¿Qué problemas han encontrado las personas y cómo se resuelven?

Respuesta

4

Ejecute todo a través de MOMA después de haberlo escrito. Identificará para usted cualquier constructo que no sea independiente de la plataforma o no implementado en el tiempo de ejecución Mono.

Además, compila tanto con MSBuild como con el compilador mono .net.

Uso de Path.Combine y Environment.NewLine son un par de cosas en mi cabeza.

Evite construcciones solo de Windows (WMI y similares) que no tengan análogo de linux/unix.

+0

Un gran consejo. Yo uso ambos. Path.Combine solo en los últimos meses sin embargo. ¿Cómo se prueban los caracteres de ruta inválidos de forma multiplataforma? – Nanook

+1

Path.GetInvlidhPathChars - http://msdn.microsoft.com/en-us/library/system.io.path.getinvalidpathchars.aspx – Oded

1

Si crea su aplicación utilizando Mono en un entorno Windows utilizando Gtk# entonces debería funcionar en todas las plataformas, ya que no va a utilizar cualquiera de las bibliotecas .NET que no están disponibles bajo Mono , ni usará ninguna de las bibliotecas Mono/Gtk # que no son compatibles con Windows.

Si usted es un usuario de Visual Studio, eche un vistazo al paquete Mono Tools for VS.

Cuestiones relacionadas