IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Qt Discussion :

Qt vs .NET : que choisir ? [Débat]


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 162
    Par défaut Qt vs .NET : que choisir ?
    Salut,

    Programmant depuis longtemps en .NET (C#), je m'interesse de plus en plus a la plateforme Qt depuis que celle - ci a ete reprise en main par Nokia en license LGPL.

    Et du coup, je me demandais, devant la richesse de l'API Qt (GUI mais aussi threads, bases de données, XML, sockets, smart pointers), quels étaient encore les avantages de développer en C#, étant donné que la portabilité est le maître mot de Qt, ainsi que la puissance, grâce au C++...

    Voilà, tout ceci fait partie de ma réflexion pour un nouveau projet de dev (client lourd), même si je pense pour l'instant ne l'implémenter que sous Windows.

    Je ne sais pas quoi choisir entre Qt et .NET/C#...

    Si vous avez des idées (pros et cons de chaque framework) pour me convaincre de basculer dans l'un ou l'autre monde je suis preneur...

  2. #2
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2008
    Messages
    26 764
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2008
    Messages : 26 764
    Par défaut
    Salut,

    Très certainement, mon point de vue ne sera pas objectif, mais j'essayerai autant que possible de l'être.

    Le gros avantage de Qt est de supporter plusieurs langages (C++ nativement, mais aussi Python, Java...) sans apporter de lourdeur supplémentaire (une machine virtuelle du côté de dotnet).

    En plus, Qt supporte beaucoup de plateformes : Windows, Linux, Mac OS X principalement, mais aussi Symbian, Maemo (dès Qt 4.6) et d'autres UNIX, alors que dotnet doit se limiter à Windows et aux plateformes sur lesquelles Mono a été porté.

    Finalement dans cette partie, Qt supporte beaucoup de compilateurs (pas seulement les quelques-uns de Microsoft et de Mono) : VC, GCC principalement, mais aussi ICC, les compilateurs pour mobiles, les compilateurs plus spécifiques à certaines plateformes (AIX...).

    Qt est plus ancien, a été plus mûri que dotnet (sur le long terme du moins) : plus de 10 années de Qt, dotnet est apparu vers 2002 me semble-t-il.

    D'un niveau fonctionnel, ils sont à peu près à égalité : les deux permettent de créer des GUI complexes, ont aussi d'autres modules très utiles (XML, réseau...).

    Pour le niveau respect des standards, C# a été prévu pour donet, tandis que Qt a dû se baser sur le C++ de l'époque et sur les problèmes de compatibilité entre les compilateurs.

    Qt fournit une méthode très rapide pour la traduction (il suffit de mettre une fonction autour des chaînes à traduire, un programme fourni permet de les extraire et de les stocker dans un fichier à envoyer aux traducteurs ; le fichier de retour, il suffit de le compiler et il est utilisable).

    Par contre, dotnet est disponible depuis très longtemps en français, alors que Qt ne l'est pas encore complètement (même si cela va changer dans un futur assez proche).

    J'espère que tout ceci aura pu t'éclairer !
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  3. #3
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2009
    Messages : 65
    Par défaut
    Choisir entre l'un et l'autre dépend des habitudes et aussi de ce que l'on souhaite faire. Chacun à des avantages et des inconvénients.

    L'avantage que je trouve à Qt par rapport à la plateforme .NET, c'est la portabilité, non seulement sur plusieures plateformes, mais aussi en restant sur Windows uniquement, car il peut être déployé facilement, contrairement aux programmes VB/C# qui nécessitent l'installation du .NET framework (lourd).

    Sur le point de vue des fonctionalités, je ne peux pas trop comparer, je n'ai pas fait de .NET très longtemps (un peu de VB.NET 2005), mais elle restes basiquement pareilles.

    Qt devient interressant dés que l'on veut se séparer de Windows, car malgré Mono et Wine, utiliser .NET revient quand même à condamner la portabilité.

    Après c'est comme on le sent, personnellement je ne condamne pas la plateforme .NET malgré ma préférence pour Qt. C'est une question de repères et de préférences. On peut pas réellement choisir sans avoir testé les deux.

  4. #4
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par Der Drachen Voir le message
    Qt devient interressant dés que l'on veut se séparer de Windows, car malgré Mono et Wine, utiliser .NET revient quand même à condamner la portabilité.
    Un "binaire"(ouai ok, c'est pas vraiment un binaire, mais je fait un raccourcie) mono peut s'exécuter sous windows,linux ou mac (si on utilise les bonne librairie ou mono sur toutes le splateforme).
    Un binding Qt pour .net est en cours : qyoto

    l'ensemble C#+Qt est assez prometteur à mon goût .

    @vandamme, pour te répondre au mieux, il faudrait savoir la raison de vouloir changer de framework. Toute façon, tout trouvera surement un équivalent à ce que propose .net en Qt et inversement.

  5. #5
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 526
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 526
    Par défaut
    Citation Envoyé par vandamme Voir le message
    Je ne sais pas quoi choisir entre Qt et .NET/C#...

    Si vous avez des idées (pros et cons de chaque framework) pour me convaincre de basculer dans l'un ou l'autre monde je suis preneur...
    Le langage C# est plus riche en apparence que le C++ mais le framework .NET est bien plus lourd que Qt
    Sans hésiter une seconde je prendrais Qt qui est vraiment multiplateformes ( je crois que c'est utilisé sur les plateformes pétrolières norvégiennes gage de fiabliité)
    L'architecture de Qt pour le peu que je connaisse est intelligemment faite : ce sont des signaux et des "slots" si je ne me trompe donc question performances il n'yaura pas photos Qt sera bien plus performante avec un langage compilé en natif.
    En plus en C++ tu peux lier à ton exécutable ce dont tu as besoin ; en .NET eh bien tu charges la quasi totalité du framework ( très lourd)..
    si tu fais un programme de compta en .NET à quoi cela sert-il de charger des classes pour le multimédia par exemple ?
    Faut pas perdre de vue que sur une Form en .NET il y a des dizaines de messages et propriétés à gérer + la machine virtuelle cela risque d'alourdir les choses.

  6. #6
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par Mat.M Voir le message
    en .NET eh bien tu charges la quasi totalité du framework ( très lourd)...
    tu es sure?
    Qt sera bien plus performante avec un langage compilé en natif.
    .net finie la création du binaire au premier run. Et va ainsi finir d'optimiser le code pour la machine.

  7. #7
    Membre éclairé

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 162
    Par défaut
    Oui, je suis d'accord avec yan sur les 2 derniers points.
    En particulier, .NET ne charge pas tout le framework si on n'utilise qu'une partie.

  8. #8
    Inactif  

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    534
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 534
    Par défaut
    Salut,

    Je choisirais plutôt Qt pour des raisons de portage de l'application. .Net c'est bien beau sur Windows, mais sur Linux avec Mono cela reste très hasardeux. Sur Mac je ne sais pas. Concernant les performances c'est impossible à priori de savoir entre .Net ou Qt.

  9. #9
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Par défaut
    Citation Envoyé par dj.motte Voir le message
    ... .Net c'est bien beau sur Windows, mais sur Linux avec Mono cela reste très hasardeux. Sur Mac je ne sais pas.
    Euh ... très hasardeux .., Soit cela fait longtemps que tu n'as essayé Mono, soit tu n'as pas eu de chance

    <mode provoc="on">
    .NET/mono est bien plus portable que QT, il supporte IPhone et bientot Android
    </mode>

    Départager l'un ou l'autre n'est pas chose aisée, mais personnellement, je base mon choix sur la richesse de la plateforme. .NET est, à mon sens, bien plus riche en fonctionnalité (surtout avec le Fx 4.0 qui va arriver) que ne peut l'être Qt. Le framework .NET ne vise pas seulement les applications GUI, il prend en charge l'ensemble des types d'applications possible : Web, Windows, Service Windows, Service webs, mobile, etc, etc, etc. Le framework est un ensemble cohérent de classe permettant de manipuler les données, le GUI, la configuration, l'installation, etc, etc, etc.

    A coté de cela, réduire .NET à C# n'est pas correct. Comme QT à ces binding, .NET à ses langages : C#, VB.NET, F#, etc, etc, etc. De plus .NET, même si c'est effectivement une machine virtuelle, est largement optimisé (il est vrai que l'expérience de Java à bien aidé les devs de .NET à ne pas refaire les même erreurs ), ce qui implique que la perte de performance est faible (attention je ne parle pas d'application Haute performance ou temps réel ou il faut le reconnaitre le C(++) demeure maitre). En plus d'une machine virtuelle bien foutue et performance, .NET c'est également un ensemble de fonction permettant de gérer la mémoire, les exceptions et toute ces choses qui font que le C++ peut être/ est un enfer

    Une dernière chose à prendre en compte c'est l'outillage autours. Je ne connais pas bien les debugger et les EDI qui vont autours de QT mais la dernière fois que j'ai utilisé KDevelop, il n'était pas du tout à la hauteur de VS (ou même MonoDevelop), tant au niveau conception graphique des GUI, que par exemple debuggage des applications.

Discussions similaires

  1. Que choisir ? C# , VB.NET, C++, Delphi ? pourquoi ?
    Par Louis-Guillaume Morand dans le forum Général Dotnet
    Réponses: 475
    Dernier message: 08/04/2010, 19h27
  2. Qt vs .NET : que choisir ?
    Par vandamme dans le forum C#
    Réponses: 4
    Dernier message: 16/11/2009, 11h29
  3. mfc ou .net ? que choisir ?
    Par subzero01 dans le forum MFC
    Réponses: 19
    Dernier message: 21/05/2008, 12h06
  4. [VB.Net] Que choisir tableaux ou collections ?
    Par Pasiphae dans le forum VB.NET
    Réponses: 2
    Dernier message: 16/03/2006, 15h35
  5. [D2005] - Que choisir Winform ou VCL.NET ?
    Par RamDevTeam dans le forum Delphi .NET
    Réponses: 2
    Dernier message: 07/02/2006, 05h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo