Création d'une application multi-plateforme C # / Winform - devrais-je utiliser AIR, Mono ou autre chose?

StackOverflow https://stackoverflow.com/questions/72580

  •  09-06-2019
  •  | 
  •  

Question

J'ai une application écrite en C # / WinForms ( ma petite application ). Pour le rendre multi-plateforme, je pense le refaire dans Adobe AIR. Existe-t-il des arguments en faveur de WinForm en tant qu'application multiplate-forme? Existe-t-il un avenir multi-plateforme pour Winforms (par exemple, Mono, etc.)? Suggestions pour le développement d’UI multi-plateformes?

Par multiplateforme, je veux dire, actuellement, Mac OSX, Windows et Linux.

Cette question a été à nouveau et répondue avec un meilleur succès .

Était-ce utile?

La solution

  

Je pense le refaire dans Adobe AIR

N'ayant pas passé beaucoup de temps avec AIR, mon opinion personnelle est qu'il est préférable de créer une application Web sur le bureau et de lui fournir un shell ou d'exécuter votre projet flash / flex existant sur le bureau.

Au fait, si vous ne connaissez pas ActionScript, je veux dire ses détails, ses bizarreries, etc., n'oubliez pas de prendre en compte le temps qu'il faudra pour rechercher des réponses sur Google.

  

Existe-t-il des arguments en faveur de WinForms en tant qu'application multiplate-forme?   Existe-t-il un avenir multi-plateforme pour Winforms (par exemple, Mono, etc.)?

Il est toujours difficile de prédire ce qui va se passer, mais je connais au moins un projet (Plastic SCM) qui utilise Mono Winforms sur Win, Mac et Linux. C’est donc certainement faisable. Cependant, ils disent qu'ils ont construit la plupart de leurs contrôles à partir de la base (et affirment vouloir les publier en tant que source ouverte, mais sans savoir si ou quand), vous devrez donc faire quelques efforts pour rendre les choses plus jolies que ce soit. ;.

J'ai joué avec Winforms sur des plates-formes autres que Windows et, malheureusement, ce n'est pas exactement "mature". (surtout sur Mac). Donc, ce que vous obtenez hors de la boîte peut être ou ne pas être suffisant pour vos besoins.

Si vous décidez qu'une application de bureau n'est pas le meilleur moyen de fournir une solution multiplate-forme, vous pouvez toujours utiliser votre logique métier en C # et créer une application Web complète avec ASP.NET ou Silverlight. de nombreuses autres options existent avec C #.

Autres conseils

En ce qui concerne mon expérience dans les actionscripting Flex / AIR / Flash, l’environnement de développement Adobe AIR et les jeux d’outils de codage / débogage sont bien inférieurs aux kits Visual Studio et .NET SDK. Les jeux d’outils de l’interface utilisateur sont toutefois supérieurs.

Mais comme vous avez déjà un code C # fonctionnel , son portage vers ActionScript peut nécessiter une refonte, car ActionScript utilise un mode de pensée / programmation différent, ils utilisent par conséquent des types de données primitifs différents. ils utilisent simplement un numéro au lieu de int float double , etc., et les outils de débogage manquent cruellement par rapport à VS IMO.

Et j’ai entendu dire que Mono's GtkSharp était une plate-forme décente.

Mais si les problèmes d’outillage de codage / débogage ne vous dérangent pas, alors AIR est une excellente plateforme. J'aime la façon dont Adobe intègre l'expérience Flash, par exemple. vous pouvez démarrer une installation de l'application AIR en cliquant sur un bouton dans un clip flash, ce type d'intégration.

Les formats WinForm sont entièrement pris en charge par Mono, ils sont donc multi-plateformes.

Pourquoi voudriez-vous aller avec Air?

Utilisez GTK # , et vous disposez d'un moteur de formulaires multiplateforme et conservez-le votre code C #.

Eh bien, je pense que Microsoft Silverlight constitue l'unique solution fiable en C # multi-plateforme, mais ne l'est pas. vraiment WinForms, et basé sur un navigateur. Autre que cela, oui Mono est une chance.

Si vous souhaitez utiliser .net Framework, Microsoft Silverlight est un bon choix (le seul?). Le navigateur fait un bon travail en tant que shell, mais vous pouvez également écrire votre propre shell d'application. Par exemple, Scott Handelman mentionne le NY Times Reader écrit en Silverlight et hostet sur Cocoa sur un Mac.

Je ne pense pas qu'il y ait un avenir pour WinForm. Depuis, cela semble avoir été une solution provisoire même dans le monde MSFT (une très fine enveloppe autour de Win32). Et pratiquement aucune modification ne semble avoir été apportée à System.Windows.Forms dans les versions .NET 3.0 et 3.5

</speculation>

J'utiliserais Java ou Air.

Je pense que tant que vous vous assurez que le code de la logique commerciale que vous écrivez est multiplate-forme (l'utilisation de barres obliques inverses dans les chemins ne fonctionne que sous Windows - les barres obliques fonctionnent sur tous les systèmes d'exploitation), Mono ne devrait pas rencontrer de problèmes majeurs. exécuter un programme WinForms non modifié. Assurez-vous simplement de tester les problèmes graphiques.

J'ai posé une question similaire la semaine dernière. J'utilise Mono depuis le début et je n'ai eu aucun problème à exécuter les applications que j'ai compilées en IL pour une exécution sur SuSE Linux (je tourne habituellement sous KDE) ou sous Windows. Cependant, je n'ai pas encore testé mac. il sur. Je serai bientôt, cependant, probablement dans quelques semaines. Mais tous les développements dans Mono ont été très bons pour créer une application qui fonctionnera sur plusieurs plates-formes.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top