c# windows-phone-7 mono xamarin.ios xamarin.android

Cómo factorizar la definición de proyectos C#(csproj) entre plataformas(MonoTouch/-Droid/WP7)



windows-phone-7 xamarin.ios (3)

Estoy planeando desarrollar una aplicación distribuida con una parte móvil (MonoTouch / MonoDroid / WP7), una parte de escritorio (WPF) y la parte web (ASP / Silverlight) ...

Por supuesto, se comparte un buen código en más de una plataforma. Hasta ahora, para crear 1 proyecto por 1 plataforma, tomé el camino del autoestopista, tengo el csproj de WPF, creemos uno de Silverlight y coloquemos el archivo cs en él. Luego hago lo mismo con MonoTouch. Entonces para MonoDroid. Entonces para WP7. ¿Es posible factorizar el contenido del csproj de alguna manera? ¿Y cómo optimizar la creación del proyecto?

No discutiría el hecho de que se requiere 1 proyecto por plataforma. Lo que estoy soñando es una descripción de qué archivo para qué plataforma en UN archivo. Entonces ese archivo está incluido en cada csproj ...

Saludos, Patrick


¿No tendría sentido colocar un código común en un proyecto de biblioteca de clase al que luego hace referencia de cada uno de los otros?



Si desea compartir el código entre varios dispositivos, le sugiero que consulte el patrón MVC , usando algo como MonoCross .

Como ChrisDB sugirió tratar de compartir en un proyecto de nivel, no a nivel de archivo. Hacer el intercambio a nivel de proyecto será mucho más fácil ya que:

  • muchas herramientas (por ejemplo, MonoTouch con integración MonoDevelop / XCode) usarán varios archivos para la interfaz de usuario (muchos de ellos autogenerados) y no querrá perder la ayuda de IDE para cada plataforma;
  • su IDE (VS.NET o MonoDevelop) podrá mantener diferentes opciones para cada proyecto (por ejemplo, definir o personalizar opciones de proyecto, por ejemplo, MonoTouch);

También es posible que desee comprobar en qué restricciones debo tener en cuenta para maximizar la portabilidad del código Mono? pregunta / respuestas, ya que es un poco similar, pero no idéntico, a su solicitud actual.