web-dev-qa-db-fra.com

Développer avec Xamarin pour Linux

Est-il possible de développer et de construire des applications Linux avec Xamarin avec la même base de code?
Après quelques années avec Ubuntu, mon système d'exploitation principal est maintenant Windows. Mais ce n'est pas impossible, que je puisse passer à Mac.

J'ai maintenant un peu d'expérience avec Qt et aucune expérience avec Xamarin. Avec Qt, vous pouvez développer sous Windows, Linux et Mac et pour Windows, Linux, Mac, iOS, Android, Windows Mobile, ... Ils sont très clairs à ce sujet. Puisque Xamarin est gratuit et open source maintenant et que je n’ai toujours pas beaucoup d’expérience dans Qt, j’envisage d’essayer Xamarin pour le développement de plates-formes croisées au lieu de Qt.

Ne pas être capable de publier mon logiciel pour Linux serait un dealbreaker pour moi. Pouvoir développer sous Linux serait bien, mais est facultatif. Mais après toutes mes recherches sur Google, je ne trouvais que des informations et des personnes demandant une assistance pour développer sous Linux et non pour Linux.

Autant que je sache, cela ne devrait pas être un problème avec Mono seul. Mais autant que je sache, Xamarin> Mono et moi, je n'ai pas tout en Mono, je pourrais le faire en Xamarin. Je ne sais pas non plus dans quelle mesure Mono bénéficiera d’un soutien dans l’avenir. Pour moi, il semble que Xamarin soit beaucoup plus important pour Microsoft que Mono lui-même. Je ne sais pas si c'est même possible, car Xamarin est basé sur Mono, mais est-il possible que Microsoft décide à un moment donné de ne pas prendre en charge Mono avec une compatibilité .NET de la même manière que Xamarin ou même d'annuler Mono de manière totalement autonome?

Je recherche donc un cadre unique pour toutes les plates-formes de bureau et mobiles sur lesquelles je peux compter et je veux savoir si Xamarin et/ou Mono et/ou Xamarin + Mono pourraient constituer une alternative à Qt avant d’approfondir ces deux solutions.

63
JuSchu

Non, Xamarin n'est pas disponible pour Linux. C’était une décision consciente prise par l’équipe Xamarin il ya plusieurs années:

Miguel de Icaza 2011-08-04 11:52:37 UTC

Nous sommes confrontés à un problème de QA ici.

Le problème de la prise en charge de Linux est que nous aurions besoin de créer un emballage Mono autonome pour tous les bits que nous expédions, car la plupart des distributions Linux sont légèrement inacceptables en ce qui concerne Mono.

Cela signifie également que si nous annonçons "Linux", nous aurions besoin de procéder à l'assurance qualité à une douzaine de combinaisons différentes en raison de différentes distributions Linux et d'éditions différentes de chaque distribution.

Peut-être pourrions-nous prendre en charge une seule distribution et une seule version, ce qui est plus proche de ce que nous devons faire aujourd'hui sur Windows/Mac.

Pour clarifier, la gamme de produits Xamarin n'est pas disponible sous Linux (Xamarin Studio, Xamarin.iOS et Xamarin.Android), mais MonoDevelop, la base de Xamarin Studio, et Mono, le moteur d'exécution multiplate-forme .NET, le sont certainement.

Vous pouvez créer un logiciel de bureau à l'aide de MonoDevelop. Le site MonoDevelop contient de nombreuses instructions pour commencer:

44
matthewrdev

Juste au cas où quelqu'un d'autre se retrouverait face à ce problème: la situation a changé. Avec Xamarin.Forms 3.0, Gtk # est supporté (en tant qu'aperçu, en ce moment). Par conséquent, la prise en charge complète de l’interface graphique Linux est activée.

https://docs.Microsoft.com/en-us/xamarin/xamarin-forms/platform/gtk?tabs=vswin

Ainsi, Xamarin couvre maintenant:

  • Android
  • iOS
  • Windows Mobile
  • Applications de bureau Windows
  • Applications de bureau Linux Gtk

La seule chose qui reste à souhaiter: la plate-forme cible JS/HTML5 Web App, dans le cadre de Xamarin :)

32
hardyVeles

Il semble que Xamarin Forms ait une chance de fonctionner sur les distributions Linux. Dans ce fil reddit Miguel de Icaza dit:

Certains membres de notre équipe se développent réellement sous Linux. La raison pour laquelle nous n'avons jamais publié les outils Linux est parce que nous facturions beaucoup d'argent et que les gens s'attendent à juste titre à ce que le logiciel soit entièrement pris en charge. Nous en avions assez pour satisfaire nos utilisateurs Mac et Windows, et l'ajout d'un nombre inconnu de distributions Linux semblait être une tâche difficile. Maintenant que nous sommes en train de chercher les SDK et que je ne me sentirai plus mal si quelque chose ne fonctionne pas sous une configuration Linux particulière, je serai heureux de publier les versions de Linux.

C'est-à-dire que le fait que Forms soit un outil open source ouvre actuellement cette possibilité.

8
Bruno Peres

https://github.com/0xFireball/xamarin-Android-linux

Comme l'a dit matthewrdev, Xamarin.Studio, Xamarin.iOS et Xamarin.Android ne sont pas "officiellement" pris en charge; Cependant, Xamarin.iOS utilise quand même un émulateur virtuel (et je ne pense pas que Xamarin.iOS puisse fonctionner sous Linux), mais pour Xamarin Studio (MonoDevelop sous Linux ou les pilotes Riders de Jetbrain (comment l’exécuter sur Linux). Le lien peut également fonctionner sous Linux comme alt pour Xamarin.Studio. Ce lien que j'ai partagé explique comment installer Xamarin.Android sur Linux. Il vous faudra donc migrer ou utiliser Xamarin.iOS. dual boot ou qc, j’espère que cela aide! (j’ai arrêté d’utiliser Xamarin my-self, cependant, cet environnement facilite le développement de Xamarin sous Linux!)

4
Youssef Mohammed

Oui, à partir de la mi-2018, il est possible de développer des applications d'interface graphique multi-plateformes qui ciblent Windows/Mac/Linux/Android/iOS à l'aide de la bibliothèque "Xamarin.Forms". En gros, vous avez un projet de bibliothèque partagée à partir de code multiplateforme (interface utilisateur et autres éléments multiplateformes) et un projet par plate-forme pour le code spécifique à la plate-forme (Xamarin.Forms a une implémentation dorsale pour chaque plate-forme. Sous Linux, cela utilise GTK ).

Cependant, avec MonoDevelop, vous ne pouvez développer/construire que le projet multiplate-forme et le projet spécifique à Linux de l'application. Vous devrez toujours utiliser Visual Studio ou Rider pour développer/construire pour les autres plates-formes.

Voir la réponse suivante: https://stackoverflow.com/a/53317021/298005

2
Gabriel Cuvillier