begin process at 2008 07 06 19:54:46
1 205 742 membres
305 nouveaux aujourd'hui
14 119 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CREER UNE APPLICATION MULTILINGUE TRES FACILEMENT + EDITEUR DE LANGUE (V2, CLASSE)


Information sur la source



Description

Salut, alors voilà une classe *.cls et un éditeur de langue (avec une option Google ^^) qui permettent de gérer plusieurs langues dans un projet. Leur utilisation est vraiment ULTRA simple.



Mon code est déjà présent sur ce site, mais c'est une version USERCONTROL.
M'étant aperçu d'un bug avec un gros projet (mon UserControl a changé la langue dans l'IDE !!), j'ai décidé de refaire une version AVEC UNE CLASSE.

Plus léger, donc, et ne nécessite qu'une ligne de code de plus.
J'ai en mêem temps légèrement retouché le code (changé la syntaxe + allégé l'éditeur de langue).

Si vous pensez que cela ne justifie pas une deuxième source, faites moi signe et je supprimerai une des deux...
Mais bon, c'est aussi pour l'éditeur de langue que je poste (il n'était qu'une MAJ de la précédente source).




POUR COMPRENDRE LE FONCTIONNEMENT, MERCI DE TOUT LIRE. DE PLUS, UN EXEMPLE TRES DETAILLE EST DONNE DANS LE FICHIER *.ZIP.

Tout d'abord, pourquoi ce code ?
==> parce que j'ai déjà un projet assez lourd, c'est à dire beaucoup de form, de controles, de menus (là c'est affreux !), de listbox pleines de string rentrée directement dans l'IDE...etc
Donc créer un fichier *.ini (moi même) qui contient les Captions, Text, Item, Tooltip... de tous mes controles/form/menus aurait été du suicide ! D'où l'idée de créer un code qui permettrait d'automatiser cela. Peut être que çà existe déjà, aucune idée, mais de toutes façons je voulais tout coder moi même ;)
Le principe du code est bien sur basé sur les fichiers *.ini.


Le but ?
==> Ce code permet de changer automatiquement toutes les propriétés Caption, Text, ToolTipText des composants standarts (label, commandbutton, textbox, optionbutton, checkbox, form, menus, frame, tab, listview... mais aussi combobox et listbox ==> sauvegarde des items si l'on le souhaite, voir exemple dans zip pour comprendre). De plus, les composants indexés sont supportés.
Donc en gros, un appel à une méthode de la classe se charge d'accéder au fichier *.ini et de changer toutes les propriétés.
Evidemment, il est également aussi possible de stocker des string dans le fichier *.ini, et de les rappeler par la suite (traduites), par exemple pour afficher un msgbox.


Ensuite, comment s'en servir ?
==> c'est une classe à ajouter à votre projet.

Ses propriétés sont :

-LangFolder (c'est le dossier qui contiendra les fichiers de langue)
-Language , c'est une string qui conient le nom de la langue (si Usercontrol.Language="French", il faut qu'il existe un fichier French.ini dans le dossier LangFolder)

Ses méthodes sont :

-AddSimpleStringToFile : permet d'ajouter une string (désignée par un ID string) au fichier *.ini. A n'utiliser que dans l'IDE (pas très utile)
-GetString : permet de récupérer une string à partir de son ID (string)
-LoadControlsCaption : permet d'appliquer à la form qui contient le UserControl la traduction ; affecte à chacun des composants supportés les traductions des propriétés supportées
-WriteIniFileFormIDEform : voilà ce qui fait gagner du temps, cette fonction créé le fichier *.ini de la langue dans laquelle la form est conçue. Donc si vous avez une form déjà pleine de controles/menus..., alors vous avez juste à appeler cette fonction pour créer automatiquement le fichier *.ini avec toutes les sections nécessaires.
-ActiveLang ==> permet de lancer l'activation du changement de langue. Prend en paramètre la form qui a besoin d'être traduite.

Un event également :

-LanguageChanged (donc déclarer la classe en WithEvents pour en profiter...)



Rien compris ? ==> ok, c'est pour çà qu'il y a un exemple ultra-commenté dans le fichier *.zip ;)







EDITEUR DE LANGUE

Ce projet inclut également un éditeur de langue pour permettre de créer tranquillement des fichiers de langue sans mettre la main dans les fichiers *.ini ;)

Cet éditeur est lui même traduit en 2 langues (anglais + français) pour être distribué tel quel et être compris par le plus grand nombre.

Cet éditeur inclut une fonctionnalité qui permet de créer un fichier de langue A PARTIR DE LA TRADUCTION GOOGLE, en 3 coups de souris (mais ne marche pas avec l'espagnol à cause du '&').
Si google est capricieux avec la traduction (si le résultat de la traduction est identique au texte à traduire), relancez là plusieurs fois en rechoisissant le type de traduction (par ex. de Eng --> Ita) il çà finira par marcher.

Fonctionnement :
1) Choisir un modèle, c'est à dire un fichier de langue déjà existant (l'anglais étant le mieux)
2) Créer votre fichier de langue en traduisant dans la colonne de gauche les textes de droite (ou alors ouvrez un fichier de langue existant à modifier)
3) Sauvegarder votre nouveau fichier de langue

Vous pouvez également 'Copier le modèle dans le presse papier', coller dans google traduction, copier le résultat traduit, et 'Insérer depuis le presse papier' pour récupérer une version traduite par google.


Il est (très fortement) conseillé de faire une traduction depuis le modèle anglais (meilleurs résultats sous google).





-------------------------------
CONTROLES SUPPORTES
-------------------------------
Label (caption), TextBox (text), OptionButton (caption), CheckBox (caption), CommandButton (Capion), Frame (caption), ListBox (les items contenus dans la listbox), Combobox (idem que listbox), Menu (caption), Form (caption), TabStrip (Caption des Tabs), ListView (ColumnHeader).
Et aussi, la propriété ToolTipText de chaque controle.
Egalement, sont supportés tous les composants indexés.


-------------------------------
FONCTIONNEMENT DU CODE
-------------------------------
APIs de lecture/écriture dans les fichiers *.ini, et TypeOf [controle] pour tester chaque type de controle.
On error resume next barbare, je sais, mais c'est beaucoup plus simple comme çà (sinon énooooormément d'erreurs à gérer).


-------------------------------
COMMENTAIRES
-------------------------------
Je suis content du résultat (je ne me prononce pas sur le code, mais sur le résultat final) ==> je trouve que c'est très très simple de faire une traduction de son programme avec mon usercontrol ! ;)

De même, ayant utilisé la version UserControl depuis un moment sur un gros projet (45 form, fichier *.ini de 100Ko), je peux dire que çà ne rame pas du tout !




Bugs, commentaires, n'héistez pas ! Et notez aussi (çà prend 2s ^^).

Source

  • 'code à ajouter dans le form_load :
  • 'on instancie la classe
  • Set Lang = New clsLang
  • 'active le changement de langue
  • 'Ce code est obligatoire !!
  • Call Lang.ActiveLang(Me)
  • 'ne pas oublier de libérer dans le form_unload
  • Private Sub Form_Unload(Cancel As Integer)
  • Set Lang = Nothing
  • End Sub
  • 'ajout d'une string en brut dans le fichier *.ini
  • 'Bon, il est plutot conseillé d'éditer le fichier *.ini hors du code ^^
  • Lang.AddSimpleStringToFile "MonMotCle", "Salut tout le monde !"
  • 'switch basique de langue
  • If Lang.Language = "French" Then
  • Lang.Language = "English"
  • Else
  • Lang.Language = "French"
  • End If
  • 'récupéraion d'une valeur traduite
  • 'MonMotCle désigne un identifiant unique qui détermine ma string.
  • MsgBox Lang.GetString("_MonMotCle")
  • 'création automatique de la version francaise (ou du moins de la version de l'IDE)
  • Lang.WriteIniFileFormIDEform
'code à ajouter dans le form_load :

    'on instancie la classe
    Set Lang = New clsLang
    
    'active le changement de langue
    'Ce code est obligatoire !!
    Call Lang.ActiveLang(Me)

'ne pas oublier de libérer dans le form_unload
Private Sub Form_Unload(Cancel As Integer)
    Set Lang = Nothing
End Sub


'ajout d'une string en brut dans le fichier *.ini
'Bon, il est plutot conseillé d'éditer le fichier *.ini hors du code ^^
Lang.AddSimpleStringToFile "MonMotCle", "Salut tout le monde !"


'switch basique de langue
If Lang.Language = "French" Then
    Lang.Language = "English"
Else
    Lang.Language = "French"
End If


'récupéraion d'une valeur traduite
'MonMotCle désigne un identifiant unique qui détermine ma string.
MsgBox Lang.GetString("_MonMotCle")


'création automatique de la version francaise (ou du moins de la version de l'IDE)
Lang.WriteIniFileFormIDEform

Conclusion

Mon code est déjà présent sur ce site, mais c'est une version USERCONTROL.
M'étant aperçu d'un bug avec un gros projet (mon UserControl a changé la langue dans l'IDE !!), j'ai décidé de refaire une version AVEC UNE CLASSE.

Plus léger, donc, et ne nécessite qu'une ligne de code de plus.
J'ai en mêem temps légèrement retouché le code (changé la syntaxe + allégé l'éditeur de langue).

Si vous pensez que cela ne justifie pas une deuxième source, faites moi signe et je supprimerai une des deux...
Mais bon, c'est aussi pour l'éditeur de langue que je poste (il n'était qu'une MAJ de la précédente source).



@+
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

  • signaler à un administrateur
    Commentaire de loloof64 le 30/04/2007 18:43:33

    Une mauvaise et une bonne nouvelle
    1) Ce n'est pas une source .net, donc je ne téléchargerais pas le fichier. Cela coute 0€, j'ai mis un modeste tuto mais utile sur le site ... à toi de faire le reste si l'envie t'en prends (je te lance une autre perche ... vois-tu laquelle ? CS... )
    2) Braaavvvvooo pour ta présentation organisée et exhaustive ... Puisse Codes-Sources rajouté le formatage pour toi puisse égayer tes prochaines présentations.
    3) Je te le dis à toi en premier, n'hésites pas à rajouter les fichiers .txt des 3 sections non présentes dans le zip
    --- description
    --- explication
    --- mise à jour
    :) ok ? si oui tu rendras service à plus de monde.

  • signaler à un administrateur
    Commentaire de loloof64 le 30/04/2007 18:45:50

    Ah oui, pas de téléchargement, pas de note, moins de chance de récolter un trophée .

  • signaler à un administrateur
    Commentaire de violent_ken le 30/04/2007 19:43:14

    Salut,

    pas de .Net pour moi... a quoi bon migrer vers un language encore plus lent que le VB6 ? Aucun intérêt...


    "Ah oui, pas de téléchargement, pas de note, moins de chance de récolter un trophée ." ==> lol, je ne poste pas une source pour récolter le maximum de téléchargements, la meilleure note ou même un trophée...d'ailleurs au passage les trophées ont été abandonnés depuis longtemps par les admins ^^

    Si je poste cette source, c'est seulement parce que je l'ai créée pour moi à la base et qu'en j'en fait profiter aux éventuelles personnes qui pourraient en avoir besoin.

    @+

  • signaler à un administrateur
    Commentaire de romagny13 le 30/04/2007 19:59:05

    raa moi je dis comme loloof ce n'est pas une sorte .NET c'est dommage j'aimerais bien pouvoir tester les sources de Violent_Ken qui ont l'air toutes pas males :p

  • signaler à un administrateur
    Commentaire de loloof64 le 30/04/2007 19:59:35

    D'accord. Toi tu ne penses pas comme moi, j'avais oublié que c'était possible.

    Toutes mes excuses :) :) :)

  • signaler à un administrateur
    Commentaire de loloof64 le 30/04/2007 20:01:42

    Pourquoi tu ne te lances pas en vb.net ? Bill Gates fera sûrement quelquechose (lui ou les constructeurs de puces/ ou les deux) pour que la vitesse soit améliorée.
    Regardes MSN : gratuit et fonctionnel, pas de Bug
    Pas trop encenser, pas trop descendre.

  • signaler à un administrateur
    Commentaire de MadM@tt le 30/04/2007 20:23:08

    lol faites moi rire, VB.net... et pourquoi pas BASIC pendant qu'on y est héhé

    "Pourquoi tu ne te lances pas en vb.net ? Bill Gates fera sûrement quelquechose (lui ou les constructeurs de puces/ ou les deux) pour que la vitesse soit améliorée."
    Ahaha, ben en attendant que Bill fasse quelque chose, violent_ken vient de nous pondre encore une autre merveille ! félicitations (c'est vraiment *** à gérer le multilangue, alors merci de nous proposer une solution)

    "Ah oui, pas de téléchargement, pas de note, moins de chance de récolter un trophée ."
    Y'en a qui cours après les points, y'en a qui PARTAGENT, c'est vrai, comme tu le dis : "D'accord. Toi tu ne penses pas comme moi, j'avais oublié que c'était possible."

    Enfin j'ai rien contre toi, je dis ça sur le ton de la rigolade (ce qui ne se voit pas trop dans une textbox je le conçois)

    Pour revenir à la source, génial !

  • signaler à un administrateur
    Commentaire de violent_ken le 30/04/2007 20:40:39

    Merci Madm@tt ;)


    Sur le "VB6 vs VB.Net", moi je préfère personnellement VB6 car plus "vif", moins lourd et plus performant (je garde évidemment à l'esprit que comparé à du C, les 2 sont très très lents).

    Et puis pour faire de la programmation "un peu" proche du système (process etc.) rien ne vaut VB6 de mon avis (pour un language issu du BASIC, BIEN EVIDEMMENT)^^



    Pour ma source en elle même, elle est très proche de ma précédente, mais je dois dire qu'aujourd'hui j'ai eu un bug avec la v1 : mon UserControl m'a effacé tous les captions/texts de tous mes controles dans mon projet DANS l'IDE !
    Alors j'ai du me retapper des copiers/coller des controles d'une quarantaine de form depuis un backup...  ERF -___-

    D'où cette présente source : plus d'UserControl, donc pas d'exécution possible de code au sein de l'IDE ==> plus "sûr" à mon gout.
    J'ai laissé l'autre source car pour les "petites" traductions (quelques forms ==> ne provoque pas de bug apparement), c'est plus pratique (surtout pour les débutants).


    Et comme j'avais pas le courage de traduire tout mon code, j'ai inclus il y a quelques temps dans la v1 l'éditeur de langue avec quelques tools pour favoriser la traduction Google ^^
    Comme çà au mieux de tout traduire depuis zéro, il suffit de corriger les erreurs de traduction de google (flemmard inside...)


    @+ et merci pour tous les commentaires !

  • signaler à un administrateur
    Commentaire de loloof64 le 30/04/2007 22:36:57

    De rien, je respecte ta décision. Peut-être que d'autres l'adapteront. Moi, en tous cas je ne joue plus à ce jeu d'adaptation.

  • signaler à un administrateur
    Commentaire de EBArtSoft le 01/05/2007 02:19:45 administrateur CS

    Mouai...
    Pourquoi ne pas en faire une dll activex avec une classe globale comme ça tu n'aurais meme pas besoin de faire new !
    Et pour faire encore plus simple la dll pourrais rechercher toute seule l'instance de vb puis checker toutes les forms avec la proprietes Forms de l'objet VB. Ainsi tout pourrait etre entierement automatisé et invisible pour le programmeur. C'est bien certe mais ça pourrait etre encore mieux le but etant de faire un "no code component". Faudrait aussi changer le fichier ini facilement modifiable si on fait une application a risque. Personnement j'ajouterais une petite compression huffman ou LZ afin de crypter et compresser le tout. J'ai encore plein d'idée mais je vais pas faire un exposé :p. Enfin tout ça c'est mon avis sur le sujet a toi de voir :p

  • signaler à un administrateur
    Commentaire de OneHacker le 01/05/2007 10:08:52

    VB.NET est plus rapide que VB6 je trouve.
    Sinon ta source est une merveille ! As-tu mis une dll de cette source sur ton site par hasard ? Ca serait un must :P

    Redman

  • signaler à un administrateur
    Commentaire de violent_ken le 01/05/2007 10:08:53

    "Pourquoi ne pas en faire une dll activex avec une classe globale comme ça tu n'aurais meme pas besoin de faire new"
    ==> Oui c'est sur, mais d'un autre côté on reproche souvent aux dll activeX de rajouter des dépendances ^^ Déjà que j'en ai une dizaine dans mon projet...lol

    "Et pour faire encore plus simple la dll pourrais rechercher toute seule l'instance de vb puis checker toutes les forms avec la proprietes Forms de l'objet VB" ==> J'ai pensé à faire quelque chose de ce genre là, mais comment faire pour qu'à l'ouverture d'une form la dll la détecte et applique la langue ? Ce serait dommage de charger en mémoire toutes les forms dès le démarrage ?

    "Personnement j'ajouterais une petite compression huffman ou LZ afin de crypter et compresser le tout" ==> Mais pourquoi pas ? D'autant qu'il y a l'éditeur de langues à côté pour décrypter ^^ Je vais y réfléchir.


    Merci pour ce commentaire, @+

  • signaler à un administrateur
    Commentaire de violent_ken le 01/05/2007 11:23:29

    OneHacker ==> merci ;)

    Bon donc à priori je transformerai cette classe en projet activeX pour pouvoir générer une DLL.

    Sinon pas de site perso, mais la plupart de mes récentes sources sont en rapport avec mon projet, Hex Editor VB, dont la version pré-alpha 1.6 et les sources peuvent être téléchargées ici : https://sourceforge.net/projects/hexeditorvb

    @+

  • signaler à un administrateur
    Commentaire de stephanechabeau le 01/05/2007 11:32:45

    Tout d'abord je voudrais féliciter Violent_Kent pour sa source qui mérite un 10.

    Mais je voudrais également dire ce que je pense de VB.NET puisqu'on en parle.

    Je posséde ce produit (et ses mises à jour) depuis la première heure et après l'avoir testé, trituré, avoir passé des heures à programmer, m'être imprégner de sa philosophie et bien...je suis revenu à mon bon vieux et simple VB6 qui permet presque tout ce que fait .Net mais plus simplement et plus rapidement.

    D'ailleurs, voir ce que l'on peut faire avec sur mon site :
    http://perso.orange.fr/stephane.chabeau/

    Sans dénigrer VB.NET, (Qui,de toute manière n'évoluera plus) je le trouve trop lourd, trop lent, (trop cher ?), trop tout quoi...

    Et au nombre de sources qui s'ajoutent sur VbFrance (mais aussi sur d'autres sites), je pense que VB6 a encore de beaux jours devant lui.


  • signaler à un administrateur
    Commentaire de stephanechabeau le 01/05/2007 11:41:11


    Quand je dit:
    Sans dénigrer VB.NET, (Qui,de toute manière n'évoluera plus)
    Il fallait bien sur lire :

    Sans dénigrer VB.NET, (De toute manière VB6 n'évoluera plus)

    Et j'ai bien mis 10 à cette source VB6

  • signaler à un administrateur
    Commentaire de Galain le 01/05/2007 11:54:38

    Un clavier qui doit plus que chauffer (n'est-ce pas Violent_Ken ?),une autre excellente source et toujours notre bon vieux VB6 : que dire de plus ?

  • signaler à un administrateur
    Commentaire de violent_ken le 01/05/2007 12:00:09

    Merci pour les commentaires et les notes ;)

    stephanechabeau ==> "je le trouve trop lourd, trop lent, (trop cher ?), trop tout quoi..." ==> tout à fait d'accord. Trop lourd, trop lent. (même si certains diront VB6 c'est mort, .Net c'est l'avenir...etc.)

    Galain ==> ahah oui, mon clavier commence à chauffer ^^

    @+

  • signaler à un administrateur
    Commentaire de EBArtSoft le 01/05/2007 12:05:34 administrateur CS

    Ultra_violent_ken> Ouai je suis d'accord sur le fait que la dll c'est une dependance de plus MAIS je critique toujours les dll activex dans le cadre d'un projet precis en exe qui utilise plein de dll mais la le but principale de ta source c'est justement ce composant cette classe. Alors comme tu le sais deja les utilisateurs vont rechercher la simplicite donc une dll activx toute prete c'est mieux pour le programmeur lembda qui vient chercher du tout cuit sur le reseau codes-sources. Apres libre a lui ou a toi d'en proposer une version embarqué :p

    Pour ce qui est de la detection une fois que tu as l'instance de vb il te suffit de faire un "hook" sur l'api CreateWindowEx ainsi a chaque fenetre qui se crée tu verifies son handle dans VB.Forms et tu fait ce que tu as a faire en consequence.

    Bon tu sais bien que deja ce que tu as fait c'est bien mais je prefere toujours chercher plus loins et comme le disait buzz l'eclaire : "Vers l'infiniiiiiii et au dela !"

    :p

  • signaler à un administrateur
    Commentaire de violent_ken le 01/05/2007 12:11:09

    Je comprend le point de vue sur la DLL, toutes façons je vais proposer une version ActiveX (MAJ de cette source).

    "Alors comme tu le sais deja les utilisateurs vont rechercher la simplicite " ==> c'est vrai.

    Pour l'API CreateWindowEx, merci pour le tuyau, je vais me renseigner la dessus ! Par contre va aussi falloir différencier dans et hors IDE (si tout est automatisé) ?

    @+ et merci

  • signaler à un administrateur
    Commentaire de hvb le 01/05/2007 12:12:13

    sans vouloir rentrer dans le HS, quels sont les benchmarks qui vous permettent d'affirmer que vb6 est plus rapide que vb.net? Car selon mes tests, je peux dire le contraire...

  • signaler à un administrateur
    Commentaire de EBArtSoft le 01/05/2007 12:16:17 administrateur CS

    HVB> facile : lance une appli VB6 et une appli VB2K5 en meme temps regarde celle qui demarre en premier ! hahah oui je sais on va me dire ouuuuuu c'est nul ça veux rien dire...

    Mais quand même :p

    Ultra_violent_ken_turbo> Si t'as besoin d'un truc tu sais a qui demander :p

  • signaler à un administrateur
    Commentaire de violent_ken le 01/05/2007 12:23:43

    hvb ==> tout dépend ce que tu veux faire. Si tu cherches à faire du code avec API etc, je pense que VB6 s'en sortira mieux.


    EB ==> thx ;)

    @+

  • signaler à un administrateur
    Commentaire de romagny13 le 01/05/2007 13:16:37

    ba c'est vrai que cela se defend, parce que avoir un framework comme le framework .NET facilite le developpement, d'un autre côté vu comme MS y va avec notament Linq c'est à dire à macher tout le travail des développeurs je m'inquiète un peu parce que ceux qui sortiront dans quelques années risquent en fait de ne plus savoir programmer sans framework voir ne plus savoir programmé tout court .. en fait d'un côté il faudra des personnes qui aient des compètences incroyables pour développer les outils MS , et de l'autre les "développeurs" n'auront plus rien à faire et n'auront en fait même pas besoin de savoir programmé

  • signaler à un administrateur
    Commentaire de aserf le 01/05/2007 15:10:26

    Bonjour,

    effectivement  EBArtSoft le test que tu a fait ne veux rien dir, et vb.net est beaucoup plus rapide que vb 6. en faisant ce test tu ne tient pas compte que .net compile l'exe a son execution (sa premiere) et l'adapte au hardware de la machine (si tu veux comparer la vitesse, utilise ngen pour .net http://www.dotnet-fr.org/article.php3?sid=1316). Perso je suis passer sur .net et je ne reviendrai jamais en arriere. Pour ce qui est de l'utilisation des API, je ne voie pas pk elle sont moin efficace sur .net ? elle sont identique ... et fonctionne pareil.

    De plus le language .net aillant plus de possiblité, il est difficile de les comparers.

    Effectue pu etre plus de test pour vraiment prendre concience des avantage et inconvenient.

    a++
    seb
    www.database2code.com

  • signaler à un administrateur
    Commentaire de violent_ken le 01/05/2007 15:16:44

    Salut, il existe des benchmarks qui prouvent que VB.Net est légèrement plus lent que VB6 (pour des algorythme mathématique). Tout dépend bien sur de quel type de programme il s'agit.


    Par contre l'IDE de .Net est incontestablement plus lourd et plus lent que celui de VB6.

    Pour ce qui est des APIs, le .Net n'est-il pas encore un language de plus haut niveau que VB6 ne l'était ?

    @+

  • signaler à un administrateur
    Commentaire de aserf le 01/05/2007 15:27:26

    Salut,

    pourrai tu me montrer tes benchmarck ?
    en voici un trouver au hasard
    http://www.dotnet-project.com/News-osnews-com-publie-un-petit-benchmark-de-9-langages-dont-vb-net-et-c-.67.aspx
    on voie que c# est tres bien placer (vb.net est equivalent en performance ...)
    (les language .net on toute a peu pres les meme performance seul les requette nop rajouter dans vb.net qui disparaice en mode release peuvent ralentire)

    ensuite pour ce qui est de l'ide, la on ne peu rien dir, mais on ne peu pas comparer ce qui n'est pas comparable, vb.net 2005 offre enormement d'avantage.

    Pour les api je ne voie pas pourquoi le faite qu'il soit de plus haut niveau est un desaventage pour appeller une API.

  • signaler à un administrateur
    Commentaire de violent_ken le 01/05/2007 15:34:54

    Salut,

    alors pour les benchmarks (VB.net 1.034 fois plus lent, donc légèrement plus lent) sur les fonctions de maths : http://externalweb.exhedra.com/DirectX4VB/Tutorials/GeneralVB/GM_NETvsVB6.asp


    Bah pour l'IDE, c'est sur que c'est différent, n'empêche que c'est beaucoup beaucoup plus lourd...


    Pour l'histoire des APIs, ce n'est pas un désaventage en soit d'être plus haut niveau, mais disons qu'il est plutôt clair que VB.Net n'est pas fait pour utiliser les APIs en masse comme on pouvait le voir avec VB6.

    @+

  • signaler à un administrateur
    Commentaire de OneHacker le 01/05/2007 15:36:05

    En tout cas côté sockets et connexion Internet c'est VB.NET qui va plus vite, ca je vous le garanti.

  • signaler à un administrateur
    Commentaire de MadM@tt le 01/05/2007 15:36:39

    ehh minnnnce le troll... LE troll de vbfrance lol

  • signaler à un administrateur
    Commentaire de violent_ken le 01/05/2007 15:37:56

    OneHacker ==> je veux bien te croire, je n'ai jamais programmé ce genre de choses donc je te fais confiance ^^

    Madm@tt ==> lol oui ;)

    @+

  • signaler à un administrateur
    Commentaire de OneHacker le 01/05/2007 15:49:14

    Bah moi je fais des MailBombers, scanner de site, et autretruc de hacking enfin je débute XD

  • signaler à un administrateur
    Commentaire de aserf le 01/05/2007 15:58:11

    Salut,

    j'ai un peu annalyser ton article, premier constat il est fait sous dotnet 1.0 ou 1.1, la version 2.0 est plus rapide (defois meme beaucoup plus rapide http://blogs.wdevs.com/jdunlap/archive/2005/10/20/10912.aspx), donc si tu me dit que la difference est de l'ordre de 3% (si je ne me trompe pas ...) nous pouvons dir que en version 2.0 il est beaucoup plus rapide sur tout les point (j'avais lu qq par qu'il y avai 20% de performance en plus entre la version 1.0 et 2.0, je recherche la source ...). de plus la machine utiliser est un atlhon 700, que ce passerai t'il si tu portait ton applis sur une machine plus recente ? ton application en VB6 ne serai pas optimiser pour cette machine, alors que pour .net a l'excution le frameworks optimiserai ton code pour l'application, elle gagnerai en performance sans rien faire ... et je pense que les 3% serai instantanement absorber...

    Pour vraiment comparer un code VB6 et un Code VB.NET 2005 il faudrait fair un test reel (ce que j'avais fait il y a environ 1 a 2 ans) et le F2.0 etait nettement plus rapide (surtout sur les string, ou pour avoir les meme performance on devrai avoir recours au API).

    Sous .net il existe un nombre enorme de class optimiser pour tel ou tel chose (inclue dans le FW), ... ce qui n'existe pas sous vb6.

    a++
    seb

  • signaler à un administrateur
    Commentaire de violent_ken le 01/05/2007 16:04:59

    "de plus la machine utiliser est un atlhon 700, que ce passerai t'il si tu portait ton applis sur une machine plus recente ? ton application en VB6 ne serai pas optimiser pour cette machine, alors que pour .net a l'excution le frameworks optimiserai ton code pour l'application, elle gagnerai en performance sans rien faire" ==> je ne connais pas la "méthode d'optimisation pour la machine .net", donc je ne peux rien dire.


    Encore une fois, ce test n'est fait qu'avec des opérations mathématiques. Pour ce qui est de la vitesse d'affichage des forms, je pense pas que .net soit au niveau de VB6, même en V2.0


    Pour l'exemple des strings, c'est pas le meilleur exemple, puisque l'on sait tous que la vitesse (de concaténation, par exemple) est calamiteuse sous VB6.
    Et en effet, il y a toujours les API pour augmenter la vitese de manière incroyable...


    Mon point de vue : tant qu'à apprendre un nouveau language ayant plus d'avenir que le VB6, autant apprendre le C (++)...

    @+

  • signaler à un administrateur
    Commentaire de aserf le 01/05/2007 16:22:22

    Salut,

    si tu veux en savoir un peu plus sur le CLR,JIT du FW2 lit cette article et tu comprendra les apriorie que beaucoup on sans les connaitre, et pk l'application est plus lente au demarage ...
    http://www.zdnet.fr/builder/programmation/windows_dotnet/0,39021036,2125007,00.htm

    ensuite tout les language sous .net on les meme preformance (a 1%  pres, vb.net, c#,c++ sous si compilation natif), c juste la syntaxe qui change, ils sont tous compiler en JIT.

    Pour ce qui est de la vitesse d'affichage, je ne voie pas les ralentissements dont tu parle, y compris dans des fenetre charger (beaucoup de composant) ou projet imposant (beaucoup de ligne).

    personnelement je n'est rien contre toi, et si je repond a chacune des tes reponses, c'est que en regardant beaucoup de discution je voie souvent des gens lancer des truc du style "vb 6 est beaucoup plus rapide que cette merde de VB.Net ... et je reste sous vb6, je peu fair la meme chose"

    car l'argument de vitesse ne tient pas (encors moins sous la version 2.0), et on ne parle meme pas de la puissance du frameworks ... et toute ces class optimiser et deja prete a l'emploie.

    effectivement on peu fair la meme chose, mais pas de la meme maniere,... et sa change tout,

    pour ce qui est de mon point de vue, tant qu'a apprendre un language autand apprendre celui le plus adapter a mon activiter ... (pour ma par les base de donnée) et d'utiliser celui qui me fait coder le plus rapidement, c# et vb.net sont a peu pres identiques. c# comporte qq tres leger aventage, mais qui ce compte sur les doigt d'un main ... pour ma par.


    bonne prog,
    a++
    seb

  • signaler à un administrateur
    Commentaire de EBArtSoft le 01/05/2007 16:32:04 administrateur CS

    Je crois pas que ce soit le bon endroi pour faire la comparaison vb6 vb.net et je ne crois pas non plus qu'il soit necessaire de dire a chaque source : "a bah vb.net c'est mieux pour quoi vous faisez pas du vb.net". Chacun est libre de programmer dans le langage qu'il veux de plus si l'on depose des sources vb6 cela ne veux pas dire non plus que l'on ai jamais programmé en vb.net. En tout cas ce que l'on peux immediatement constater c'est que les sources de qualité en .net ne sont pas monnaie courante...

  • signaler à un administrateur
    Commentaire de violent_ken le 01/05/2007 16:33:38

    "tant qu'a apprendre un language autand apprendre celui le plus adapter a mon activiter ... (pour ma par les base de donnée) et d'utiliser celui qui me fait coder le plus rapidement"

    ==> idem.
    Comme je n'ai jamais touché aux bases de données (çà pique ces trucs ^^) et au vu de mon style de programmes (regarde la liste de mes sources déposées ; gestion des fichiers, des processus, des services, du registre...etc.), VB.Net n'est pas pour moi.

    Comme dit romagny13, bientôt on aura même plus à savoir programmer...


    (quand je parle de C++, je parle pas de .Net)

    EB ==> T'as raison, arrêtons de troller...
    @+

  • signaler à un administrateur
    Commentaire de loloof64 le 01/05/2007 16:49:16

    Quelqu'un ne veut-il pas adapter ses excellentes sources pour lui :) ? Sinon personne ne bénéfiecieras de
    son travail... Les sources sont Open Source.
    C'est déjà une bonne chose qu'il aie eu la gentillesse de nous (c.a.d nous et lui) les poster.
    Je l'aurais bien fait, mais
    1) l'assistant de conversion automatique n'a été avec moi que rarement éfficace
    2) je l'aurais bien fait, mais je ne connais que très peu le langage ...

    Alors, qu'en dites-vous ?

  • signaler à un administrateur
    Commentaire de aserf le 01/05/2007 17:04:27

    je pense que effectivement le but d'un site comme celui ci est d'apporter plus de savoir a tout le monde. C'est pour cela que je me sens obliger de clarifier ce qui est dit, si qq lache un
    //////
    facile : lance une appli VB6 et une appli VB2K5 en meme temps regarde celle qui demarre en premier ! hahah oui je sais on va me dire ouuuuuu c'est nul ça veux rien dire...
    Mais quand même :p
    //////
    je suis bien obliger de t'expliquer le pk du comment, et de le rajouter sur le site, car une autre personne pourrai venir, et voir ton test, ne pas le comprendre et s'appuier dessu dans des discution, ensuite on c'est que les rumeur ce repende vite.

    Ideme pour
    /////
    Salut, il existe des benchmarks qui prouvent que VB.Net est légèrement plus lent que VB6 (pour des algorythme mathématique). Tout dépend bien sur de quel type de programme il s'agit.
    /////
    encors plus pour ce test, si personne ne comprend il vas croire que VB6 est plus rapide, et si on fait le test reelement maintenant (ce test a 5 ans) on ce rendrai compte que les resultat serai different ... encors une foit je veux juste que les personnes qui lise ces message parte plus informer que l'orsqu'il sont venu, et il est donc indispensable de ne pas laisser dir n'importe quoi ...

    Je pense que sur ce point la nous somme tous d'accord, c'est pour sa que lorsque je peu siter une source je la site, et lorsque je ne peu pas la site j'emet des reserve.
    c'est pour sa que j'evite les "Je pense" et je me base le plus souvent sur des fait, et nous voyons bien souvent que la rumeur ce repend plus rapidement que les benchmarck ...

    Désoler pour le troll, mais je pense que si les personne lise les lien il pourrons ce fair le propre idee ...

    a++
    seb



  • signaler à un administrateur
    Commentaire de ghuysmans99 le 01/05/2007 19:15:35

    de toute façons, vb6 est 100x plus rapide que .NET (ce .NET a besoin de quelques milliards de dll ...)
    vive vb6 et abbat vb.net

  • signaler à un administrateur
    Commentaire de loloof64 le 01/05/2007 19:15:59

    Pour autant que je sache, ton post est loin d'etre un troll.

  • signaler à un administrateur
    Commentaire de loloof64 le 01/05/2007 19:17:14

    Ghuysmans99 >> Tu me dégoutte !

  • signaler à un administrateur
    Commentaire de violent_ken le 01/05/2007 19:18:26

    lol, on va peut être s'arrêter là sur le débat VB6 vs VB.Net ;)

    @+

  • signaler à un administrateur
    Commentaire de MadM@tt le 01/05/2007 19:18:49

    Ghuysmans99 > houuu le suicidaire, attention sur cette page on ne peut le penser plus que dans sa tete, gardons ça sous silence lol

  • signaler à un administrateur
    Commentaire de loloof64 le 01/05/2007 19:19:02

    Ouais. Moi j'arrête

  • signaler à un administrateur
    Commentaire de loloof64 le 01/05/2007 19:20:17

    Tails pas aimer disputes.

  • signaler à un administrateur
    Commentaire de ghuysmans99 le 01/05/2007 19:20:30

    moi aussi.

  • signaler à un administrateur
    Commentaire de OneHacker le 01/05/2007 22:38:20

    mdr t un pervers Tails ! XD

  • signaler à un administrateur
    Commentaire de draluorg le 02/05/2007 00:57:38

    Rhoo le gros troll!!!

    Encore une source tres interessante, mais bon faut te reposer et sortir un peu aussi! (erf si ma femme m'entendais dire ca! lol)

    Je dirais comme Eb que les utilisateurs qui viennent chercher des solutions toutes faites que ce soit pour de la traduction ou autre prefereront surement une dll par simplicité.

    Par contre "Il suffit de faire un Hook sur CreateWindowsEx..."
    Erf wai suffit juste, rien de plus facile! lol


    -----------------------
    VB6 WILL NEVER DIE! :)

  • signaler à un administrateur
    Commentaire de Renfield le 02/05/2007 09:08:37 administrateur CS

    Ken, pour detecter l'ouverture de tes forms, tu peux installer un hook (local) WH_CBT...

    t'avertira de la creation des fenetres, restera simplement a tester le ClassName, pour identifier une form...

  • signaler à un administrateur
    Commentaire de loloof64 le 02/05/2007 09:28:10

    Un faux pas en avant, et deux vrais pas en arrière...
    Wahooh (Yahoo) vous êtes trop puissants vous, vous êtes sûrement les Twin Brothers, vous .

  • signaler à un administrateur
    Commentaire de loloof64 le 02/05/2007 09:29:36

    Die and leave life : vb6
    Sauf si ...

  • signaler à un administrateur
    Commentaire de hvb le 02/05/2007 11:00:31

    mais... loloof, tu sniffes avant de venir sur codes-sources? ou tu cherches des points?

  • signaler à un administrateur
    Commentaire de moustachu le 02/05/2007 12:35:38

    Bonjour,

    J'arrive un peu après la "bataille"... Super débat quasi inutile. Je savais qu'un langage de programmation pouvait alimenter autant de ferveur. Bref.

    Je reviens sur le fonctionnement de la source. L'avantage, c'est de pouvoir créer ton fichier *.ini une fois l'application compilée. Mais je verrais bien cette source en Add-In VB6 également avec bien entendu ton éditeur de langues.

    Bonne continuation et très bonne source.

    ++
    Moustachu

  • signaler à un administrateur
    Commentaire de violent_ken le 02/05/2007 13:25:09

    Seb ==> ahah je sais, j'avais eu un bug monstrueux sur mon projet et j'ai du régler çà ce week end (d'où cette source). J'vais me calmer un moment... Overdose VB pas loin ^^

    Renfield ==> merci pour les précisions, çà m'aidera quand je ferais de cette source une dll activeX

    moustachu ==> c'est vrai, j'y ai pensé, surtout pour la procédure WriteIniFileFormIDEform qui est somme toute inutile hors de l'IDE. Je pense que ce serait une bonne idée de faire une MAJ ActiveX+AddIn+Editeur.

    @+

  • signaler à un administrateur
    Commentaire de EBArtSoft le 02/05/2007 22:45