Question

Je développais actuellement une application de bureau en C # en mono et des tests sous SuSE et Windows. Le concept importe peu, mais il s’agit d’un "lint". programme qui analysera un site Web et renverra d'éventuels problèmes de sécurité et / ou de compatibilité entre navigateurs. Cependant, je souhaite pouvoir proposer des fichiers binaires pour plusieurs plates-formes. Devrais-je rester avec Mono ou existe-t-il une autre plate-forme qui me donnerait une meilleure disponibilité des plates-formes, telles que Mac, Windows, Linux et autres (éventuellement des plates-formes mobiles), et faciliterait le portage?

Était-ce utile?

La solution

C # et Mono sont probablement suffisamment multi-plateformes pour la plupart des environnements de bureau. Le truc sera la " plate-forme mobile " exigence.

Les systèmes d’exploitation mobiles sont extrêmement diversifiés et il n’ya pas grand chose à faire pour généraliser. Certains ont Java, comme le Blackberry. C # peut vous amener sur les plates-formes Windows Mobile. Les iPhones font leur propre chose. Vous devez choisir une plate-forme et la cibler. Cela peut finir par informer votre choix de plate-forme de bureau.

Autres conseils

Eh bien, votre meilleur pari est toujours d'utiliser un langage qui existe réellement sur toutes les plateformes. Cela signifie généralement Java, même si Perl a des variantes pour les plates-formes mobiles (en fonction de la plate-forme mobile en question).

Je fais l'essentiel de mon travail multiplate-forme en C et en Perl, mais il y a des problèmes de tête avec C (beaucoup de # ifdef's), et perl peut ne pas être sur une plate-forme mobile qui vous tient à cœur (pour le moment). Vous devrez évaluer les langages / compilateurs / interprètes communs à toutes les plates-formes que vous souhaitez cibler, puis choisir dans cette liste. Sans connaître la liste complète de ces plates-formes, nous aurons du mal à vous dire quoi utiliser, même si Java a suffisamment de buzz pour être un bon candidat.

Si vous connaissez le C ++, Qt couvrira de nombreuses plates-formes.

Il suffit de vous en tenir au Mono, assurez-vous que l'inspecteur de code Gendarme (FxCop pour Mono) vérifie votre code pour les problèmes de portabilité et tout devrait bien se passer.

Java fonctionnera sous Windows, Linux et Mac. Devrait être facile à faire la transition de C # - utilisez Apache HTTPClient pour récupérer le contenu Web que vous analysez, et le code d'analyse devrait être plus ou moins le même. Cependant, l’inconvénient est que l’utilisateur doit avoir le runtime Java installé.

Python est une autre option. Vous pouvez créer des exécutables autonomes pour Windows. Il est fourni avec la plupart des distributions Linux par défaut, ainsi que Mac OS X (citation nécessaire;)). C'est beaucoup moins compliqué pour les utilisateurs Windows (la langue est compilée dans l'exécutable, aucun autre téléchargement n'est requis).

Si mono fonctionne sous Mac OS X, alors c'est sûrement aussi une bonne plate-forme?

Cela dépend vraiment de ce que vous voulez faire. Pour le développement Web, si HTML / JavaScript est suffisant, respectez-le. Si vous avez besoin de fonctionnalités plus avancées, j'utiliserais ASP.NET avec Mono (ce que vous avez probablement fait), car vous le savez déjà. (Vous pouvez utiliser Visual Studio ici.)

Une autre option pourrait être (puisque vous êtes un développeur C #) d’utiliser Silverlight. Cela couvre les plates-formes Windows et Mac et, espérons-le, Moonlight couvrira la plate-forme Linxu ultérieurement. (Vous pouvez utiliser Visual Studio et Expression Blend ici.)

Si vous avez besoin d'une application de bureau, Java est probablement le plus simple, car vous connaissez déjà C #. Mais si vous connaissez le C / C ++, essayez d’examiner wxWidgets , par exemple.

Pourquoi vous limiter au traditionnel C # / Java? Découvrez Adobe AIR et Microsoft SilverLight

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