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

Windows Forms Discussion :

Performances réelles de VB.Net?


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2004
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 123
    Par défaut Performances réelles de VB.Net?
    Bonjour

    Puisque .Net est clairement le nouvel environnement de développement pour les applis avec les outils MS, il faut que je me décide d'un outil pour les années à venir pour développer des applis Windows.

    Comme ce sont à ma connaissance les meilleurs compromis en terme de productivité et de choix de composants, j'hésite entre DelphiWin32 et VB.Net. Je connais un peu le C++, mais les quelques essais que j'ai fait... m'ont fait retourner à Delphi et VB Classic

    Les applis seront des programmes classiques de gestion, donc besoin de quelques composants du style DBgrid, agenda pour gestion de RV, etc. Rien que du classique.

    Le truc qui me fait hésiter, c'est que les quelques applis .Net que j'ai utilisées jusqu'ici sont assez lentes. J'ai également peur des dépendances à déployer/maintenir, là où un programme en Delphi peut se résumer à un seul EXE qu'on lâche sur le Bureau si on veut. Notre clientèle n'a aucune compétence en informatique et en général personne pour les aider.

    D'après votre expérience, une appli classique de gestion sur une machine "normale" (cad pas la toute dernière bête de course, mais pas un vieux coucou d'il y a dix ans non plus) est-elle significativement plus lente en VB.Net qu'en Win32 (Delphi ou VB Classic), ou est-ce tout à fait supportable une fois l'appli lancée? Si c'est assez lent à fonctionnalité égale, existe-t-il des outils pour augmenter les perfs (précompilation, par exemple)?

    Merci pour toute info.

  2. #2
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Citation Envoyé par fredtheman Voir le message
    Bonjour

    Puisque .Net est clairement le nouvel environnement de développement pour les applis avec les outils MS, il faut que je me décide d'un outil pour les années à venir pour développer des applis Windows.

    Comme ce sont à ma connaissance les meilleurs compromis en terme de productivité et de choix de composants, j'hésite entre DelphiWin32 et VB.Net. Je connais un peu le C++, mais les quelques essais que j'ai fait... m'ont fait retourner à Delphi et VB Classic

    Les applis seront des programmes classiques de gestion, donc besoin de quelques composants du style DBgrid, agenda pour gestion de RV, etc. Rien que du classique.

    Le truc qui me fait hésiter, c'est que les quelques applis .Net que j'ai utilisées jusqu'ici sont assez lentes. J'ai également peur des dépendances à déployer/maintenir, là où un programme en Delphi peut se résumer à un seul EXE qu'on lâche sur le Bureau si on veut. Notre clientèle n'a aucune compétence en informatique et en général personne pour les aider.

    D'après votre expérience, une appli classique de gestion sur une machine "normale" (cad pas la toute dernière bête de course, mais pas un vieux coucou d'il y a dix ans non plus) est-elle significativement plus lente en VB.Net qu'en Win32 (Delphi ou VB Classic), ou est-ce tout à fait supportable une fois l'appli lancée? Si c'est assez lent à fonctionnalité égale, existe-t-il des outils pour augmenter les perfs (précompilation, par exemple)?

    Merci pour toute info.
    Si un programme est lent, c'est qu'il est mal codé la plupart du temps.
    Oui il est possible de précompiler.
    Non le déploiement n'est pas un problème (ClickOnce, MSI, etc), et s'il n'y a personne pour aider ta clientèle : sauf ton respect, c'est que tu ne fais pas ton boulot
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2004
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 123
    Par défaut
    Citation Envoyé par SaumonAgile Voir le message
    Si un programme est lent, c'est qu'il est mal codé la plupart du temps.
    Non. .Net rajoute une sacré couche par rapport à un programme compilé directement pour le CPU, que ce soit en Delphi ou en C++. Même problème avec Java, Python, etc.

    Citation Envoyé par SaumonAgile Voir le message
    Oui il est possible de précompiler.
    Et d'avoir des performances similaires ou supportables par rapport à une appli compilée nativement?

    Citation Envoyé par SaumonAgile Voir le message
    s'il n'y a personne pour aider ta clientèle : sauf ton respect, c'est que tu ne fais pas ton boulot
    Tu n'as pas les éléments pour juger.

    En l'occurence, nous faisons très bien notre travail, mais la clientèle 1) est à distance, 2) ne sait quasiment pas faire la différence entre une souris et un mulot et ne veut pas apprendre, 3) vu le prix de vente, pas possible d'y aller physiquement sans bouffer toute la marge, 4) vu le prix, impossible de passer du temps à leur tenir la main avec VNC et pas envie non plus de passer nos journées à ça, et 5) la clientèle ne possède pas forcément des bécanes très puissantes.

    La facilité de déploiement/maintenance et les performances sont donc des critères fondamentaux pour nous.

    Quelqu'un a-t-il une expérience sérieuse dans le développement d'applis en Win32 puis en .Net et pourrait me donner son retour d'expérience sur ces deux points, afin de faire un choix raisonné?

    Merci.

  4. #4
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Citation Envoyé par fredtheman Voir le message
    Non. .Net rajoute une sacré couche par rapport à un programme compilé directement pour le CPU, que ce soit en Delphi ou en C++. Même problème avec Java, Python, etc.
    En fait, le code est compilé à la volée, une fois un code exécuté la première fois, il est aussi rapide qu'un autre.
    Citation Envoyé par fredtheman Voir le message
    Et d'avoir des performances similaires ou supportables par rapport à une appli compilée nativement?
    Cette étape de précompilation effectuée lors du déploiement évite la compilation à la volée citée précédemment, tu as donc du code compilé en natif.
    Citation Envoyé par fredtheman Voir le message
    Tu n'as pas les éléments pour juger.
    Il y avait un pour te signifier que c'est de l'humour...

    Citation Envoyé par fredtheman Voir le message
    La facilité de déploiement/maintenance et les performances sont donc des critères fondamentaux pour nous.

    Quelqu'un a-t-il une expérience sérieuse dans le développement d'applis en Win32 puis en .Net et pourrait me donner son retour d'expérience sur ces deux points, afin de faire un choix raisonné?

    Merci.
    J'ai bossé dans les deux mondes. J'ai vu des applis C++ tellement mal codées que ça en devenait unitilisable. Toutes les applis .NET que j'ai pu créer sont parfaitement performantes. C++ est vieillissant, .NET arrive à maturité et les outils pour le développement suivent cet état de fait.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  5. #5
    Membre Expert
    Avatar de olsimare
    Inscrit en
    Décembre 2006
    Messages
    1 184
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 184
    Par défaut
    Bonjour.

    Citation Envoyé par fredtheman Voir le message
    Les applis seront des programmes classiques de gestion, donc besoin de quelques composants du style DBgrid, agenda pour gestion de RV, etc. Rien que du classique.

    Le truc qui me fait hésiter, c'est que les quelques applis .Net que j'ai utilisées jusqu'ici sont assez lentes. J'ai également peur des dépendances à déployer/maintenir, là où un programme en Delphi peut se résumer à un seul EXE qu'on lâche sur le Bureau si on veut. Notre clientèle n'a aucune compétence en informatique et en général personne pour les aider.
    Pour la lenteur, je suis assez d'accord avec Saumon... ça tient plus de la conception et du dev avec les capacités de PC actuels.

    Quand tu dis que tu veux résumer le déploiement à un .exe, c'est aussi possible en VB.Net. Le tout est que tes clients disposent au moins de la version du Framework que tu utilises. Dans le cas contraire, un kit de déploiement n'est pas trop compliqué à créer.

    D'autre part, si tu regardes ce que fait Microsoft pour un nombre incommensurables de client avec ses applis, c'est un faux probléme.

    Cdt.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2004
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 123
    Par défaut
    Citation Envoyé par olsimare Voir le message
    Pour la lenteur, je suis assez d'accord avec Saumon... ça tient plus de la conception et du dev avec les capacités de PC actuels.
    Bon à savoir. Donc, selon ton expérience, à fonctionnalités équivalentes, une appli .Net ne sera pas beaucoup plus lente qu'une appli directement compilée en binaire? Il y a quand même le chargement de .Net, mais d'après ce que j'ai vu, une fois chargé en RAM, ça ne joue plus beaucoup.

    Citation Envoyé par olsimare Voir le message
    Quand tu dis que tu veux résumer le déploiement à un .exe, c'est aussi possible en VB.Net. Le tout est que tes clients disposent au moins de la version du Framework que tu utilises. Dans le cas contraire, un kit de déploiement n'est pas trop compliqué à créer.
    En plus du framework, on utilisera quelques widgets tierce-parties comme un grid, un agenda, un connecteur vers un RDBMS (PostgreSQL ou autre). Le déploiement ne peut pas être pire que les OCX avec VB Classic

    Citation Envoyé par olsimare Voir le message
    D'autre part, si tu regardes ce que fait Microsoft pour un nombre incommensurables de client avec ses applis, c'est un faux probléme.
    Quelles applis MS a-t-il (ré)écrit en .Net? Sauf erreur, les trucs majeurs comme Office sont encore en natif.

    Si vous me dites que les perfs sont similaires et que le déploiement n'est pas difficile une fois le framework installé, je vais télécharger VS2005 et regarder.

    Merci.

  7. #7
    Membre éprouvé Avatar de Nikoui
    Inscrit en
    Décembre 2007
    Messages
    119
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Décembre 2007
    Messages : 119
    Par défaut
    J'apporte mon grain de sel

    Concernant les performances de .Net, elle sont très bonne et si différence il y a avec du C++ (ou du Delphi) elle sera insignifiante. A une seule exception : les IHM. En fait, un peu comme en Java, si tu fais des IHM "complexes" (beaucoup de contrôles, de tabs, de UserControl) et que tu rajoutes à tout ça de la transparence, de dégradés et trucs "pour faire beau", alors tu risques de te retrouver avec une IHM pas toujours très réactive, avec des problèmes de refresh pas très beaux par exemple...

    Par contre, si tu fais une application au look "normal" (pas de dégradé et de tranparence dans tous les controles) alors fonce sur .Net et n'ai aucune crainte quand aux performances.

    (quand aux problèmes de déploiements, comme dit plus haut des tas de solutions existent donc ça ne devrait pas être un problème)

  8. #8
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    (je donne mon avis aussi, comme ca il en aura un de plus )

    .net est facile à déployer, il suffit que le framework soit installé mais après on pose l'exe où on veut et ca marche
    s'il y a des dll, ils faut les poser à coté de l'exe, pas de vérification de version par défaut, donc on peut modifier juste une dll et ca continue de fonctionner sans tout recompiler
    pas de registration chiante comme à l'époque de COM

    pour ce qui est de la rapidité de développement, .net est très efficace, il contient énormément de classes
    cela prend du temps pour les trouver et les connaitre, mais une fois qu'on commence à maitriser, on gagne un temps fou
    et on remplace des centaines de lignes de code par 2 ou 3 un peu partout
    car il y a beaucoup de classes que je qualifie de haut niveau, des choses très précises déjà codé par microsoft en fait, donc il faut jamais se lancer dans un algo sans avoir chercher si ca existe pas deja

    pour ce qui est des performances pures, .net est très puissant, des calculs en mémoire sur des tas de données sont d'une rapidité étonnante
    de toute facon, sur les pc d'aujourd'hui développer en C++ apporte que quelques maigres pourcent, utile à mon avis pour les grosses applis de calculs

    un des points négatif par contre est en effet l'interface graphique, pourtant d'une rapidité à créer (ancrage et autres plus que pratiques), mais avec des performances déplorables.
    les windows forms (du framework 2) utilisent GDI+ qui n'utilise pas la carte graphique (ne meme pas penser à mettre de la transparence !)
    les wpf forms (du framework 3.5) utilisent directX 10
    à priori les wpf forms seraient donc plus percutantes, à voir dans les faits ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

Discussions similaires

  1. [11g] Performance Oracle et ODP.NET
    Par Challenger72 dans le forum Oracle
    Réponses: 4
    Dernier message: 16/01/2014, 14h54
  2. Performances réelles de GWT ?
    Par rolintoucour dans le forum GWT et Vaadin
    Réponses: 4
    Dernier message: 30/05/2013, 18h32
  3. Performance des Regex en .NET
    Par Eric80 dans le forum Framework .NET
    Réponses: 10
    Dernier message: 07/07/2010, 14h55
  4. Réponses: 2
    Dernier message: 16/10/2008, 10h48
  5. [VB.NET] With...End With et performances ?
    Par Dnx dans le forum Windows Forms
    Réponses: 9
    Dernier message: 06/04/2005, 12h37

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