2011-02-01 12 views
13

Muy bien chicos, estoy escribiendo una aplicación que quiero que sea multiplataforma. Hasta hace poco, he intentado hacer esto en Silverlight con C# porque también funciona con OS X, pero conmigo está bastante oxidado con C#, además de ser nuevo en Silverlight, me ha tocado la cabeza con dolor de cabeza. La mayoría de esto proviene de las restricciones que vienen con una aplicación que se pretende ejecutar en un navegador, problemas que se ejecutan de manera diferente cuando se ejecuta desde mi servidor de desarrollo vs directamente desde un archivo: //, etc.¿Usando Mono para portar una aplicación C# .NET a OS X?

abandone completamente toda la idea de soporte de OS X que tener que reescribir completamente la aplicación para OS X, especialmente dado que no tengo absolutamente experiencia en escribir para ella. Lo que espero poder hacer es escribir una aplicación normal en C# .NET con Visual Studio para Windows y luego fácilmente portarla a OS X con Mono.

¿Qué tan difícil es llevar una aplicación .NET a OS X con Mono? Mi aplicación es bastante sencilla, no hay nada exótico con los formularios ni nada, así que tendría que suponer que sería compatible con la implementación de WinForms de Mono.

¿Hay algún recurso bueno sobre cómo portar una aplicación usando Mono? O, tal vez, ¿me estoy perdiendo todo el punto y simplemente te permite ejecutar aplicaciones .NET en OS X y no necesito molestarme con la migración?

Perdón por mi absoluta ignorancia sobre el tema, solo comencé a considerar hacer esta ruta como hace 10 minutos después de encontrarme con otra restricción molesta en Silverlight.

Voy a ser el primero que admitir que no sé mi cabeza de mi culo sobre este tema, así que sea suave .. :)

+1

Esto podría ayudar: http://www.mono-project.com/MoMA – Nick

+0

Si desea escribir un programa con una interfaz adecuada de Cocoa, también puede buscar en MonoMac http: //www.mono-project. com/MonoMac – Luke

Respuesta

1

Hay varias cosas que debe tener en cuenta.

  1. que tendrá al puerto cualquier uso del código de interfaz de usuario de la plataforma depedendent
  2. no utilizan las llamadas del sistema operativo plataforma dependentent (Win32 API)
  3. no utilizan las bibliotecas "exóticos" (como el flujo de trabajo, por desgracia ef)
  4. En general: las dependencias abstractas a dicho código de distancia, por lo que puede reemplazarlas fácilmente con bibliotecas monoespecíficas. (un patrón aconsejado sería MVVM).

Hay una herramienta llamada MoMA que te ayudará con todo eso. Sin embargo, tome los resultados con un grano de sal. En cualquier caso, solo inténtalo.

proyecto Mono
+0

Las últimas dos frases son inválidas en la mayoría de los casos :) Nunca se sabe algunos de los problemas a menos que ejecute la aplicación en Mono. MoMA es una buena herramienta, pero no es una bala de plata. –

2

Además de lo que ya se ha dicho, teniendo en cuenta que Mono admite un subconjunto de la funcionalidad .NET completa, probablemente preferiría desarrollar en Mono, luego prueba contra el tiempo de ejecución de Microsoft, si el objetivo es correr en ambos. De lo contrario, se corre el riesgo de utilizar inadvertidamente alguna funcionalidad que no está disponible en Mono, y tiene que arrojar una gran cantidad de código fuera de la ventana para cuando realice la creación y prueba multiplataforma.

+0

Su página de comparación está aquí, y puede ser útil: http://go-mono.com/status/ –

Cuestiones relacionadas