web-dev-qa-db-fra.com

Choisir entre QT / C ++ et .NET / C #

J'ai un projet de bureau que je travaille depuis quelques mois que je veux exécuter sur Windows et Mac. Lorsque j'ai commencé le projet, j'ai commencé à l'écrire à Qt 4.8 en C++. Le développement est parti et la demande fonctionne assez bien sur Windows et Mac comme je l'ai espéré. Je dirais que c'est environ 40% complet à ce stade.

Pour une petite information de base, l'application est une variation d'un client de messagerie.

Mais je pense à abandonner ce que j'ai fait jusqu'à présent dans C++/QT et en achetant une licence pour Xamarin Studio et en écriture de l'application en C #.

Il y a quelques raisons pour lesquelles je considère fortement cela:

  • Je souhaite également libérer des versions mobiles de cette application et avec C # Un grand nombre de backend Code pourrait être réutilisé sur toutes les plateformes.

  • Je veux publier cette application sur les magasins Apple et Windows. Je sais que vous publiez des applications QT sur la boutique Apple mais je n'ai pas lu ou j'ai été en mesure de trouver quoi que ce soit à propos de quiconque publie des applications QT dans Windows Store. À ne pas mentionner, Qt 4.8 n'a pas de support intégré à la métro UI (je devrais utiliser QT 5.0, ce qui signifie de réécrire de toute façon une grande partie du code).

  • Après avoir travaillé dans C # et C++ pendant de nombreuses années, je suis "plus heureux" en développement en C #.

Cependant, j'ai quelques raisons le cours du séjour:

  • Comme je l'ai mentionné ci-dessus, je suis terminé environ 40% dans la première incarnation de ce projet.

  • Une grande partie de mon programme repose sur Lua, pour laquelle je suis capable d'utiliser les bibliothèques de Lua natif assez facilement en C++, et je ne suis pas sûr de la manière dont les implémentations Lua que j'ai vues pour le travail mono/c #.

  • Entretien de deux indicateurs d'interface utilisateur distincts pour l'application Desktop (par conséquent, dans qt je peux #include <QtCore> Sur Windows et Mac, mais en C #, je devrais avoir à using System.Windows.Forms Sur Windows et "en utilisant Monomac". Mac)

Honnêtement, à ce stade, je suis enclin à recommencer à C #, en utilisant ce que j'ai en C++ comme guide et retarder ma libération pendant environ un mois (environ combien de temps cela m'améliorera pour atténuer d'autres responsabilités dans ma vie. ).

Je cherchais des commentaires de personnes qui ont été dans une situation similaire. Et je suis particulièrement intéressé à entendre que quiconque a utilisé C # pour publier des applications sur les magasins Windows et Mac.

Qu'est-ce que tu penses?

5
Addy

Je ne pense pas que la réécriture de Scratch est une bonne idée en général, mais pour aborder quelques points techniques que vous avez mentionnés:

Je souhaite également libérer des versions mobiles de cette application et avec C # Un grand nombre de backend Code pourrait être réutilisé sur toutes les plateformes.

Il n'y a pas vraiment de raison particulière pourquoi vous ne pouviez pas réutiliser votre code C++ pour les plates-formes mobiles. Ce n'est certainement pas une situation idéale pour les aficionados C++, mais c'est réalisable.

Une grande partie de mon programme repose sur Lua, pour laquelle je suis capable d'utiliser les bibliothèques de Lua natif assez facilement en C++, et je ne suis pas sûr de la manière dont les implémentations Lua que j'ai vues pour le travail mono/c #.

Les scripts dans la framework .NET en général sont un .. peu délicat. Afin de recharger des scripts, vous devrez gérer une ou plusieurs appdomaines spécifiquement pour les scripts . Si vous avez l'intention de modifier fréquemment des scripts, comme cela serait impliqué par certains cas d'utilisation pour les scripts, il s'agit d'un facteur important à considérer.

En outre, la dernière fois que j'ai vérifié (bien que cela puisse avoir facilement changé depuis), les liaisons Lua pour .Net étaient vraiment maladroites à utiliser à cause du patrimoine C. Certains projets DLR Lua peuvent être meilleurs que les bibliothèques que je tentais d'utiliser à l'heure. Je ne peux pas publier plus de 2 liens sinon je voudrais un lien avec un couple, mais vous pouvez utiliser votre moteur de recherche préféré.

4
Joel