¿Es posible desarrollar y crear aplicaciones Linux con Xamarin con la misma base de código?
Después de unos años con Ubuntu, mi sistema operativo principal ahora es Windows nuevamente. Pero no es imposible que pueda cambiarme a Mac.
En este momento tengo un poco de experiencia con Qt y ninguna experiencia con Xamarin. Con Qt puedes desarrollar en Windows, Linux y Mac y para Windows, Linux, Mac, iOS, Android, Windows Mobile, ... Lo tienen bastante claro.
Dado que Xamarin es gratuito y de código abierto ahora y todavía no tengo mucha experiencia en Qt, estoy considerando probar Xamarin para el desarrollo multiplataforma en lugar de Qt.
No poder lanzar mi software para Linux sería un factor decisivo para mí. Ser capaz de desarrollar en Linux estaría bien, pero es opcional. Pero después de toda mi investigación en Google, solo pude encontrar información y personas que solicitaban apoyo para desarrollar en Linux y no en Linux.
Hasta donde yo sé, esto no debería ser un problema solo con Mono. Pero hasta donde yo sé, Xamarin> Mono y no obtengo todo en Mono que podría obtener en Xamarin.
Tampoco estoy seguro de qué tan bien soportado será Mono en el futuro. Para mí, parece que Xamarin es mucho más importante para Microsoft que el propio Mono.
No estoy seguro de si es posible, ya que Xamarin se basa en Mono, pero ¿es posible que Microsoft en algún momento decida no admitir Mono con compatibilidad .NET de la misma manera que Xamarin, o incluso cancelar Mono como independiente por completo? ?
Así que estoy buscando un marco único para todas las plataformas de escritorio y móviles en las que pueda confiar, y quiero saber si Xamarin y / o Mono y / o Xamarin + Mono podrían ser una alternativa a Qt antes de profundizar en cualquier de esas soluciones.
No, Xamarin no está disponible para Linux. Esta fue una decisión consciente tomada por el equipo de Xamarin hace varios años:
Para aclarar, la gama de productos de Xamarin no está disponible en Linux (Xamarin Studio, Xamarin.iOS y Xamarin.Android), pero MonoDevelop, la base de Xamarin Studio, y Mono, el tiempo de ejecución de .NET multiplataforma, definitivamente lo está.
Puede crear software de escritorio con MonoDevelop. El sitio de MonoDevelop tiene muchas instrucciones para comenzar:
fuente
Parece que existe la posibilidad de que Xamarin Forms funcione en distribuciones de Linux. En este hilo de reddit Miguel de Icaza dice:
Es decir: el hecho de que Forms sea una herramienta de código abierto actualmente abre esta posibilidad.
fuente
Sí, a partir de mediados de 2018, es posible desarrollar aplicaciones GUI multiplataforma destinadas a windows / mac / linux / android / ios utilizando la biblioteca "Xamarin.Forms". Básicamente, tiene un proyecto de biblioteca compartida a partir de código multiplataforma (UI y otras cosas multiplataforma) y un proyecto por plataforma para código específico de plataforma (Xamarin.Forms tiene una implementación de backend para cada plataforma. En Linux, esto está usando GTK ).
Sin embargo, con MonoDevelop solo puede desarrollar / construir el proyecto multiplataforma y el proyecto específico de Linux de la aplicación. Aún necesitará usar Visual Studio o Rider para desarrollar / compilar para las otras plataformas.
Consulte la siguiente respuesta: https://stackoverflow.com/a/53317021/298005
fuente
https://github.com/0xFireball/xamarin-android-linux
Como dijo matthewrdev, Xamarin.Studio, Xamarin.iOS y Xamarin.Android no son compatibles "oficialmente"; sin embargo, Xamarin.iOS usa un emulador virtual de todos modos (y no creo que haya una solución para que Xamarin.iOS se ejecute en Linux), pero para Xamarin Studio (MonoDevelop en Linux o Jetbrain's Riders (cómo ejecutarlo en linux sin soporte oficial también se proporciona en el enlace) Se puede ejecutar en Linux como una alternativa para Xamarin.Studio, y ese enlace que compartí explica cómo instalar Xamarin.Android en Linux, por lo que solo para Xamarin.iOS necesitará migrar o arranque dual o algo así, ¡espero que ayude! (¡Dejé de usar Xamarin yo mismo, sin embargo, este entorno ayuda a desarrollar para Xamarin en Linux!)
fuente