Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Débat : que choisir, Qt ou Microsoft .NET ?
C++ ou C# ? Le C# garde-t-il des avantages ?

Le , par vandamme

0PARTAGES

0  0 
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...

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de dourouc05
Responsable Qt & Livres https://www.developpez.com
Le 15/11/2009 à 21:05
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 !
0  0 
Avatar de Der Drachen
Membre régulier https://www.developpez.com
Le 15/11/2009 à 21:59
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.
0  0 
Avatar de yan
Rédacteur https://www.developpez.com
Le 17/11/2009 à 14:39
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.
0  0 
Avatar de Mat.M
Expert éminent sénior https://www.developpez.com
Le 17/11/2009 à 15:51
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.
0  0 
Avatar de yan
Rédacteur https://www.developpez.com
Le 17/11/2009 à 22:25
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.
0  0 
Avatar de vandamme
Membre confirmé https://www.developpez.com
Le 18/11/2009 à 0:40
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.
0  0 
Avatar de dj.motte
Inactif https://www.developpez.com
Le 19/11/2009 à 14:50
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.
0  0 
Avatar de dev01
Rédacteur https://www.developpez.com
Le 23/11/2009 à 19:06
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.
0  0 
Avatar de vandamme
Membre confirmé https://www.developpez.com
Le 23/11/2009 à 20:07
Citation Envoyé par dev01 Voir le message


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.
Oui, sauf que les choses ont depuis beaucoup evolue avec un QT creator (multiplateforme en plus) qui est tres prometteur. Plus rien a voir avec KDevelop ou autre MonoDevelop, il se rapproche "dangereusement" je dirais d'un VS.
0  0 
Avatar de Alp
Expert éminent sénior https://www.developpez.com
Le 23/11/2009 à 20:20
Citation Envoyé par dev01 Voir le message
Euh ... très hasardeux .., Soit cela fait longtemps que tu n'as essayé Mono, soit tu n'as pas eu de chance
Dixit celui qui ne connait pas le status de Qt depuis les 5 dernières années.

Citation Envoyé par dev01 Voir le message
<mode provoc="on">
.NET/mono est bien plus portable que QT, il supporte IPhone et bientot Android
</mode>
Qt est PLEINEMENT SUPPORTÉ (sans restriction aucune) sur Linux, Mac OS, Windows, Symbian OS, l'OS actuel des Nokia et de manière non encore officielle iPhone et Android, et d'autres encore.

Merci.
0  0