2010-09-12 9 views
8

Conozco Monotouch y tengo instalados MacOS virtuales y Monodevelop/Monotouch.¿Qué tan fácil es desarrollar una aplicación de iPhone usando MonoTouch en Visual Studio?

Sin embargo, ¿es mejor construir una aplicación de iPhone en Monotouch en Mac OS X o es tan fácil como construir una aplicación de iPhone en Visual Studio y llevarlo al iPhone a través de Monotouch?

¿Hay alguien que haya intentado trasladar el proyecto C# al iPhone? ¿Qué tan diferente fue la construcción de la aplicación en mac os usando monodesarrollo/monotouch?

ps. mis servicios públicos de ayuda favoritos no existe en Mac OS y esa es la razón de esto Q

Respuesta

8

Simplemente no puede desarrollar una aplicación MonoTouch simplemente usando Visual Studio. Tienes que usar las herramientas OSX para construir el código y crear el paquete para el teléfono. No hay forma de evitarlo, y la forma más fácil de hacerlo es usando MonoDevelop.

Lo que nosotros y otros desarrolladores hemos hecho en el pasado es desarrollar algunas de las bibliotecas C# para las aplicaciones que usan Visual Studio, porque aunque MonoDevelop es bastante bueno, aún está lejos de ser tan bueno como VS. El código de refactorización, por ejemplo, es mucho más fácil con herramientas como Resharper, etc.

Al desarrollar la aplicación en Visual Studio, hay muchas cosas con las que tendrá que lidiar; por ejemplo:

  • Simplemente no se puede ejecutar una versión de Visual Studio: VS no sabe cómo construir el tipo de proyecto necesario para el iPhone, y que no tiene todas las bibliotecas que existen en el IOS SDK.
  • no hay un editor visual para crear los archivos XIB que probablemente quiera crear para su aplicación.
  • Tendrá que hacer un montón de trabajo extra aquí y allá para conseguir que VS incluso abra la solución (como copiar archivos de lib de OSX a Windows, crear proyectos separados, etc.) (aunque creo que las herramientas de Novell Mono para VS puede ayudar un poco en este caso

Así que aquí es lo que he estado haciendo durante los últimos 6 meses:.

  • hueco por la aplicación en diferentes proyectos para la lógica de negocio y la lógica de interfaz de usuario
  • Debería poder construir, compilar e incluso probar la lógica comercial de VS. Solo recuerde n Para utilizar cualquier biblioteca de UI o bibliotecas externas no disponibles en MonoTouch
  • Use MonoDevelop para compilar la parte del código de la UI de la aplicación. Poder ejecutar rápidamente la aplicación para probar ayuda mucho.
  • De vez en cuando, si cree que necesita una gran limpieza, abra el código en Visual Studio y realice las refactorizaciones; aunque no podrá construir nada, el verificador de código en VS lo ayudará a asegurarse de que el código siga siendo válido.

espero que ayude!

+0

Eso es prácticamente nuestro ciclo de vida también. Nuestra aplicación principal está integrada en VS, sin embargo, se divide en varios conjuntos. Los servicios principales se crean como DLL y/o servicios web que son consumidos por muchos front ends. Nuestro front-end web si está construido con ASP.NET MVC en VS, sin embargo, los clientes de iPhone/iPad están integrados en MonoDevelop en OS X. Ser capaz de reutilizar los mismos componentes centrales en todas las plataformas es increíble, pero no se puede superar el VS IDE (todavía). –

+0

¡Suena como un * tremendo * montón de trabajo! ¿Están seguros de que no vale la pena absorber el dolor y desarrollarse en Xcode? ... – h4xxr

+0

Sí. No necesita hacer nada de esto, si no lo desea. Yo diría que MonoDevelop ya es mejor que XCode de todos modos. –

0

Creo que algunos de los problemas que van a tener el uso de Visual Studio está

  • no será la de diseñar con el nativo de la interfaz de usuario controla
  • el emulador utilizado para el ensayo será diferente
  • puede terminar mediante llamadas a la API que no están disponibles en las bibliotecas MonoTouch

que se pegaba w usando MonoDevelop en la Mac.

+0

¿Tiene experiencia con esto? – sandalone

+0

@askmo: Sin experiencia, pero estoy bastante seguro de que MonoTouch no tiene el 100% de paridad con .NET Framework, por lo que sería posible usar llamadas que no están disponibles. Además, no sé cuán "buena" será la experiencia al usar un emulador diferente y desarrollar controles de interfaz de usuario que no se verán como en la aplicación final. –

+0

mencionas un emulador diferente. No creo que existan emuladores/simuladores de desarrollo de iPhone en Windows que puedan tener implementados paquetes de aplicaciones. –

2

Los MonoTouch home site estados:

Tenga en cuenta que MonoTouch requiere un Mac, iPhone SDK de Apple y que programa para probar y desplegar su software en un dispositivo y debe ser parte de desarrolladores de iPhone de Apple redistribuye tu código.

0

Ya que necesita el iPhone SDK de Apple (que solo está disponible para OS X) instalado para desarrollar con MonoTouch, estará limitado a desarrollarlo en una Mac.

MonoDevelop es un IDE bastante bueno, y su integración con Interface Builder y el simulador de iPhone/iPad hace que desarrollar para iPhone con MonoTouch sea una experiencia bastante agradable.

10

Como se mencionó, para compilar sus aplicaciones y cargarlas para el uso de la tienda de aplicaciones, o depurar usando el simulador, necesitará usar MonoDevelop en una Mac.

Sin embargo, es posible escribir una gran parte del código en Visual Studio 2008 o 2010.

He escrito 6 aplicaciones MonoTouch que se venden mal en la AppStore, utilizando principalmente Visual Studio. La razón por la que uso Windows y VS2010 es que soy mucho más lento con el teclado de Mac, tengo mi configuración de Visual Studio para la velocidad y una PC que es aproximadamente el doble de la potencia de procesamiento.

He aquí algunos aspectos críticos y sugerencias:

  • Copiar los archivos DLL MonoTouch desde su Mac en Windows (busque "monotouch.dll" en Mac), se adhieren todos los archivos DLL en un lugar estático y hacer referencia a ellos en tu proyecto Luego debe compilarse en VS.
  • Asegúrate de tener 2 archivos de proyecto - un MonoDevelop y uno de Visual Studio. Traté de convertir manualmente y también escribí un convertidor para ir entre los dos, pero se rompe tan a menudo que es más fácil simplemente mantener dos archivos.
  • También puede convertir la documentación Mono XML (está en un formato diferente al formato de documentación XML de Microsoft .NET) para Visual Studio intellisense. El siguiente enlace tiene una descarga para la documentación XML que generé para Monotouch 2.1.
  • Evite utilizar una unidad compartida para el desarrollo. Esto hace que la compilación en Mac sea muy lenta: siga copiando los archivos usando un dispositivo USB o use un sitio de control de fuente en línea como bitbucket.org
  • Encontré que era bastante rápido con un solo teclado, monitor y mouse y un KVM cambiar entre PC y Mac.
  • Para el diseño (ya sea XIB o C#) tendrá que usar su Mac, o escribir los huesos en VS primero.

He escrito una buena cantidad en el proceso here.

+0

Marqué la respuesta de Eduardo como respuesta porque no puedo marcar ambas. Sin embargo, tu respuesta también es responder a mi pregunta, pero Eduardo responde más cosas. Espero que no te moleste. PD. wish stackoverflow permite marcar 2 respuestas como respuestas – sandalone

+0

Llego tarde a la fiesta, así que no hay problema –

+0

Cosas muy útiles. ¡Muchas gracias por compartir! –

5

Esto realmente ha cambiado con la nueva versión de MonoTouch renombrada como Xamarin.iOS que ofrece tight Visual Studio integration. Usted todavía necesita una Mac para construir y probar, pero puede trabajar desde VS sin mucho obstáculo.

Incluso conectado al depurador:

Xamarin.iOS integrated with Visual Studio

En esta captura de pantalla, VS y OS X se ejecutan en el mismo equipo, pero no tiene que, dado que hay una conexión de red local entre ellos.

Leer más here:

Xamarin IOS para Visual Studio permite a las aplicaciones de iOS a ser escritos y probados en ordenadores Windows, Mac con una red que proporciona el servicio de construcción y despliegue.

desarrollo para iOS dentro de Visual Studio proporciona una serie de beneficios:

  • Creación de una única solución multiplataforma para aplicaciones de iOS, Android y Windows.
  • Utilizando las herramientas de Visual Studio (como Resharper y Team Foundation Server) para todos sus proyectos multiplataforma, incluido el código fuente de iOS.
  • Utilizando el editor de código familiar (para desarrolladores de Visual Studio existentes), accesos directos de teclado, etc.
  • Xamarin.iOS para Visual Studio admite configuraciones donde Visual Studio se ejecuta dentro de una máquina virtual Windows en una Mac (por ejemplo, usando Parallels o VMWare).

Tenga en cuenta que la integración de Visual Studio está disponible en la edición de negocios que es $999 per license.
(La licencia es perpetua por persona, pero solo obtiene actualizaciones gratuitas durante un año.)

Cuestiones relacionadas