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

Cliquez pour voir la capture en taille normale
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).



@+
 

Fichier Zip

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

Commentaires et avis

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:39 administrateur CS

L'overdose VB n'existe pas ! C'est a consomer SANS moderation :p Si je pouvais coder toute la journée pour moi même je le ferais direct... Peut etre un jour :p

signaler à un administrateur
Commentaire de violent_ken le 02/05/2007 23:57:14

Haha oui ;)

N'empêche que j'ai quand même passé 2 jours "pure VB" ;) Pas trop à recommencer tous les jours... M'enfin fallait bien çà pour faire avancer (un peu) mon projet ^^

@+

signaler à un administrateur
Commentaire de OneHacker le 04/05/2007 10:17:19

Moi je fait du VB.NET 24/24 XD le pire c'est que maintenant je vis pas le jour mais la nuit sauf les weekend car j'ai du monde à voir.

signaler à un administrateur
Commentaire de JLN le 07/05/2007 09:02:51

Bonjour à tous,
     Que dire après tous ces commentaires... C'est de l'excellent bouleau, rien que l'idée de développer un tel code, c'est déjà super... Alors je met 10 car rien que pour le travail et l'inovation ca les vaux. Et j'ajouterai ma pierre à l'édifice en disant que moi aussi je pense qu'une DLL serait le top ! Ha j'oubliai, j'ai téléchargé le package Editeur hexa, Désassembleur, Editeur de langue et comment dire... As-tu consulté récemment ? non je dis ca, parce que pondre autant de bonnes choses si bien pensées c'est à devenir cinglé... Alors je me pose la question !
Bon je ne peux pas mettre plus que 10 alors continus comme ca rien que pour nous faire plaisir et ce sera génial !

signaler à un administrateur
Commentaire de violent_ken le 07/05/2007 13:06:52

Merci pour le commentaire ! Cà fait plaisir ;)

Pour la dll, promis çà va venir, j'ai fait une petite pause avec 2 sources UserControl, je vais mettre bientôt une MAJ ici ^^
Et peut être avec un addin si j'ai le temps :D

@+

signaler à un administrateur
Commentaire de Silmon le 07/05/2007 15:02:08

- aserf

Merci pour tes commentaires trés elucidateurs.
J'ai appris beaucoup.

Il n'y a pas encore trés longtemps, j'etais un pur programmeur VB.
Quand mon patron nous a demandé de passer a .NET, j'ai essayé par tous les moyens de lui convaincre du contraire.
J'ai meme utiliser qq arguments utilisé dans ce poste.
Mais sans resultat.

Aprés qq mois a bosser sur .NET 1.0,
je me suis rendu compte que .NET possedait des trucs formidables
que seuls les languages genre C ou Java pouvait se vanter d'avoir.
par ex:
- les tecniques de Inherits
- les functions overloads
- la creation de controles en run-time

pour n'en citer que qq-uns.

Aprés je me suis mis sur la version 2.0
et j'ai été sidéré par la beauté de l'IDE et des controls présents.

Alors aujourd'hui quand je lis des trucs du genre:
"je suis revenu à mon bon vieux et simple VB6 qui permet presque tout ce que fait .Net mais plus simplement et plus rapidement"
... je suis choqué

'Qui permet presque tout' ? La personne qui a ecrit ne peut pas connaitre a fond .NET. C'est impossible!


En tout cas voila la conclusion que je me suis tiré:
Si on veut faire des petits programme, VB sert parfaitement.
Mais si on veut, atteindre de gros potentiels dans nos programmes et nos tecniques de programmation, alors je dis: .NET!

Tu vois, j'etais inquiets quand on disait que VB etait mille x + rapide.
Est-ce que j'aurais perdu au change?
Mais tes commentaires, m'ont parfaitement bien eclairés.

Maintenant un truc que je comprends pas:
Pourquoi on fait tellement de commentaire negatif
pour decourager ce genre de débat:
genre "debat inutil" ou  "c'est pas l'endroit" ou encore "arreter d'insister".

Donc aserf merci et continue comme ça.

signaler à un administrateur
Commentaire de MadM@tt le 07/05/2007 15:25:30

Déjà on dit que c'est pas l'endroit car c'est un débat qui n'est pas en rapport avec la source.
Ensuite on dit arretez d'insister car on obtient toujours des trolls énormes de plusieurs dizaines de commentaires.
Et au final on dit débat inutile car on se rend compte que ceux qui participent au débat ont choisis leurs camps et n'envisagent pas de changer (un peu comme si tu faisait discuter un membre du PS et un membre de l'UMP, aucun des 2 ne finirai pas changer de parti quoi)

Le truc  c'est que ça n'aboutit jamais car généralement les personnes ne voulant pas passer à .net savent qu'on peut toujours faire ce que vb.net permet de faire, seulement c'est moins facile. Et des fois c'est de la bricole. Mais avec VB6 au moins, on bricole proche du système.
Le vb.net comble pas mal des lacunes de vb (que l'ont peu remplir avec de la bricole), mais au final ça fait utiliser un truc plus lourds.

Donc t'as d'un coté les gens qui préfèrent .net pour combler les lacunes de VB6, et de l'autres les gens qui préfèrent bricoler, rester proche du système, outrepasser ce pour quoi vb6 a été prévu et combler eux meme les lacunes, afin de les optimiser un max. VB6 est donc plus proche du système dans ce sens la.
On dit souvent que VB est un pont pour passer au C++ ou autres langages de moins haut niveau, et ben .net, bien que + complet que VB6, éloigne du bas niveau et donc du C++.
Avec VB6, on bricole et on s'en rapproche (API, injections assembleur, subclassing etc...)

Voilà c'est une tentative d'explication de pourquoi le débat (c'est pas pour poursuivre le débat que je dis ça hein !)
@+

signaler à un administrateur
Commentaire de Silmon le 07/05/2007 18:52:11

Tu dis débats inutils
je dis que j'ai appris beaucoup (et c'est pour ça que je viens sur le forum)

Tu dis d'arreter d'insister
Je dis que c'est valable pour vous aussi.

Tu dis "que ceux qui participent au débat ont choisis leurs camps et n'envisagent pas de changer "
Je dis que j'ai changé de camps
   - au niveau professionel car j'ai été obligé
   - au niveau personnel car j'ai été persuadé de l'utilité de le faire.

Et un dernier truc qu'on a dit - que je trouve abérent:
Genre 'les outils evoluent tellement que bientot on aura
plus besoin de savoir programmer.'
N'importe quoi!
Le fait des outils de programmation devenir de +en+ performant, nous permet de faire des choses, qu'on aurait JAMAIS songé a faire dans nos programmes.

Prenez par ex les jeux videos:
L'amelioration et la progression constante dans ce domaine n'ont pas crée un generation de 'programmeur qui ne savent pas programmer', mais ont permis aux programmeurs de faire des jeux qu'on aurait jamais vu il y a peine 10/20 ans


Et pour finir
je suis bien d'accord avec toi quand tu dis que chacun choisit son langage...
...mais du moment qu'on ne dit pas de  "#$%  pour se justifier.

signaler à un administrateur
Commentaire de draluorg le 07/05/2007 19:44:50

Silmon> C'est clair que en voyant tes sources on comprend vite pourquoi tu préfère .Net :p  (rho c'est bas ca!)

Bon allez serieusement c'est si chiant que ca le .net que vous vnez cassez les pieds dans les posts vb6 ? z'avez rien d'autre a faire ?

Z'avez pas envie d'aller coder une petite calculette.net avec un ptit installateur de 200 Mo ? lol






signaler à un administrateur
Commentaire de MadM@tt le 07/05/2007 19:58:36

Silmon > Je ne parlais pas de toi mais des participants à ce genre de débat en général. Ce débat était innaproprié ici, il faut en faire dans les forums.
Enfin voilà juste pour préciser que ce n'était pas une attaque personnel, juste un résumé de ce qui ce voit en général.

"Tu dis d'arreter d'insister
Je dis que c'est valable pour vous aussi."
Bien justement je n'ai pas insisté dans le débat, j'ai tenté de répondre à tes questions sur le pourquoi du débat, excuse moi, d'habitude c'est ce qui se fait.

signaler à un administrateur
Commentaire de EBArtSoft le 07/05/2007 21:00:30 administrateur CS

Ahahah mais allez y au contraire faites du .NET !!! Comment c'est trop bien le .NET mais ouai regardez tout est deja pré-programmé les capacité sont "infinies" le framework c'est super stable, le CLR c'est tout rapide et on peut tout programmer en quelques lignes. C'est tellment facile et pratique que meme mon chien sais faire un webservice.

Voila c'est dit donc maintenant laissez nous avec notre bon vieux VB6...

signaler à un administrateur
Commentaire de aserf le 07/05/2007 21:26:39

MadMat,
Pour ce qui est des API et du subclassing, tu peu le fair de la meme maniere qu'en vb6.
Je ne comprend pas d'ou vient cette rumeur que vb6 est plus aproprier que .net pour utiliser les API ... les prejuger on la dent dur...

autrement pour ma cultur personnel comment tu fait pour fair de l'injection assembleur ?

quand a ce debat, je ne dit a personne de passer sur .net, mais je ne laisse pas dir n'importe quoi, et c'est pour sa que lorsque l'on lance des ineptie (le framworks fait environ 23mo .. pas 200mo par exemple ... et plus je lit ce fil, plus j'en decouvre...)

j'utilise a titre professionel .net, et je pense que certaine personne doivent l'utiliser a titre de loisir (ce qui n'enleve en rien leur merite pour la programmation), mais nous ne somme pas soumis au meme contrainte.

bonne programmation,
www.database2code.com

signaler à un administrateur
Commentaire de MadM@tt le 07/05/2007 21:38:34

Aserf, les programmes .net ne sont pas compilés en win32, c'est du semi-compilé, semi-interprété (si je dis pas de conn....). Donc il est plutot fait pour utiliser le framework plutot que les api. Pour l'injection assembleur justement ça doit pas etre possible en .net vu que c'est pas compilé en win32 (à vérifier)
Et tu sais qu'en VB6 telle instruction va etre compilée de telle manière, qu'elle va effectuer telles opérations assembleur etc... Donc pour l'optimisation c'est royal, alors que toujours en .net c'est interprété par le CLR.

Ce que je veux dire c'est que VB6 se comporte comme n'importe quel programme win32, il est compilé donc on sais ce que ça va donner en code machine et on peut facilement optimiser, injecter de l'assembleur, remplacer certaines parties par du C.
Bref c'est plus proche du C C++ etc... C'est dans le meme genre de compilation.

Le .net, c'est précompilé puis interprété, tu es dépendant et tu ne peux pas faire des optimisations poussées et des choses de base sur ton programme compilé.

signaler à un administrateur
Commentaire de aserf le 07/05/2007 21:58:34

bhein moi je te le dit tu peu pas fair d'injection de code dans du vb.... (l'injection de code consiste a taper du code assembleur directement a coter du code C ou C++, ce que vb ne permet pas, ne pas confondre avec appeller un dll faite en assembleur ...)

et je te vois mal optimiser ton programme en le decompilant en assembleur (si tu en avait fait tu comprendrai ce qui tu dit, ... surtout que vb utiliser aussi une sorte de framWork)

ensuite .net compile l'executable (et oui il est compiler), mais il le compile a la voler (lors de l'execution du programme) et en plus il l'optimise AUTOMATIQUEMENT avec les possibiliter de la plateform cible

et je ne voie rien a par un a priorie personnel en expliquant que .net a une couche d'abstraction superieur a vb6 une raison valable pour dir que les API sons mieux sous vb6 que ous .net ...

un article qui explique un peu .net et qui en plus montre un exmple d'api sous .net, je pense pas qu'il donnerai des exemples si il le deconseillais ...

http://www.microsoft.com/france/msdn/visualc/API-Hosting-Common-Language-Runtime-20.mspx


je pense qu'il faut laisser les apriories de coter (trouve moi une contre indication d'API sous .Net), j'ai fait pas mal d'anner de vb6, et maintenant je programme sur .net depuis la version 2002, et j'evite les prejuger, je programme les API avec .net sans probleme ...

cordialement,

signaler à un administrateur
Commentaire de violent_ken le 07/05/2007 22:01:09

Juste une précision : il est possible de mettre de l'ASM dans le code (pas en dll), dans une classe, avec des MoveMemory CopyMemmory et compagnie (EB pratique couramment ^^)

@+

signaler à un administrateur
Commentaire de draluorg le 07/05/2007 22:08:20

<<bhein moi je te le dit tu peu pas fair d'injection de code dans du vb.... (l'injection de code consiste a taper du code assembleur directement a coter du code C ou C++, ce que vb ne permet pas, ne pas confondre avec appeller un dll faite en assembleur ...) >>

regarde dans les sources d'EBArtSoft tu verra que c'est tout a fait possible! (sans les CopyMemory) tu peux linker des .obj Asm comme tu le ferais en C ou C++ (bon peut etre pas aussi facilement je te l'accrde) mais le resultat est le meme...

signaler à un administrateur
Commentaire de violent_ken le 07/05/2007 22:09:44

"regarde dans les sources d'EBArtSoft tu verra que c'est tout a fait possible! (sans les CopyMemory) tu peux linker des .obj Asm comme tu le ferais en C ou C++ (bon peut etre pas aussi facilement je te l'accrde) mais le resultat est le meme..."

==> Quel DIEU ce EB !! ;)

@+

signaler à un administrateur
Commentaire de EBArtSoft le 07/05/2007 22:25:17 administrateur CS

Bon on va encore debattre pendant des heure sur a bah vb6 c'est pas trop bien mais vb.net c'est trop pas bien mieu...

Aller je me desabonne, les discutions sans fin ça me gave de plus on revient a ce que je disais ya toujours quelqu'un pour nous empecher de faire ce qu'on veux. Si on le fait ainsi c'est bien par ce que l'on en a envie et pas par ce que quelqu'un nous la dicté. Quoi que l'on fasse et peut importe commen ton l'auras fait on trouvera un "plus intelligent" pour nous dire qu'on aurais pu le faire autrement... Mais au moins, on l'auras fait !


(ça fait pas trop Vandammien comme monologue :p ?)

@+

signaler à un administrateur
Commentaire de aserf le 07/05/2007 22:26:08

oui meacoulpa, apparement il est possible de le faire, mais cela reste quand meme tres complique, et pas a la porter de tout le monde
d'ailleur le faite que vous siter une source prouve que pas beaucoup de personne n'utilise ce genre de "technique", je pense qu'il a d'ailleur fait ce type d'exemple pour montrer la faisabiliter, et non pour une utilisation courente ...

je voie mal qq utiliser ce type de "modification" dans des environement professionel et de maniere courente.

de plus l'exemple donne par la personne est le faite qu'il est difficile de fair la manipulation de bit dans VB6 et donc serai optimisable en asm, la manipulation de bit est possible en .net ...
sans compter que de nombreuse class .net sont deja optimiser pour de nombreux traitement (defois largement mieux que la plupar des utilisateur qui seront capable d'ecrire des fonction identique en assembleur), il suffit de prendre la bonne class pour voir sont code etre nettement plus rapide.

signaler à un administrateur
Commentaire de MadM@tt le 08/05/2007 01:36:00

Aserf, l'injection d'ASM dans VB est completement possible comme on te l'as dit, et elle est completement utile.
Je l'ai déjà utilisé plusieurs fois, et dans un autre projet on envisage d'utiliser des sources C précompilée.

Ce que je veux dire, c'est que généralement les utilisateurs interessés par dépasser les limites du VB et le doter des meme possibilités d'autres langages Win32 ne peuvent utiliser que le VB6.
Pour le VB.net on peut pas, tu peux pas faire les meme choses qu'en C

Pour résumer, .net regroupe beaucoup d'avantages et permet de faire presque tout niveau objet et applications sur le système comme le C++ (que je prend langage de référence)
Après, il n'est pas du tout semblable au C++ au niveau de sa compilation et execution
Certains programmeurs veulent programmer du Win32 "profond" (c'est à dire utiliser des injections assembleur par exemple, subclassing, optimisation maximale, api utilisées à leur meilleur potentiel) et ne veulent pas la complexité du C++

D'ou l'utilisation du VB6
En gros, si on le veut, le VB6 permet de faire *presque* tout comme du C++, à nous de nous démerder
Le VB.Net permet d'utiliser toutes les possibilités objet et offres un panel de fonctions

Certains préfèrent reprogrammer eux meme, pour comprendre, apprendre, et faciliter une adaption à d'autres langages, j'en fais partie.

(regarde par exemple ShareVB avec ses objets léger qui propose une nouvelle méthode pour créer et instancier des objets)
(et les injections assembleurs sont parfois incontournables)

EBVanDamme a raison, c'est sans fin, j'espère que ce post permettra de mettre au clair POURQUOI ON PREFERE VB6 pour certains programmeurs, et qu'on nous lache les basket !

Nous on va pas sur les sources vb.net dire que c'est nul que ça soit en .net

signaler à un administrateur
Commentaire de loloof64 le 08/05/2007 06:11:48

Loloof64, aka LinkOf64, regrette que cette discussion aie prit une telle tourunure, et s'en excuse principalement auprès de ViolentKen ---> Ecoutes ton coeur, et fais ce dont tu as envie (tu es libre de rien faire).

signaler à un administrateur
Commentaire de ABF le 28/03/2008 11:09:10

Slt,

D'accord pour le VB vs .net

Cependant comment gères tu les groupes de controles ?
Y'a pas un truc du genre isindexed(obj.name) ??

pour savoir s'il est indexé ou pas ?


Merci ++

signaler à un administrateur
Commentaire de Renfield le 28/03/2008 11:17:25 administrateur CS

tente de lire l'index, y'aura une erreur si c'est pas indéxé...
a chopper avec On Error...

signaler à un administrateur
Commentaire de ABF le 06/04/2008 11:08:09

Pour ma part j'ai fait :

Function isGroupe(ByRef obj As Object) As Boolean
    On Error Resume Next
    isGroupe = (obj.Index > -1)
End Function

comme tu dis Renfield mais c'est pas très beau d'ou ma question ;)

signaler à un administrateur
Commentaire de Renfield le 07/04/2008 10:03:31 administrateur CS

C'est bien ainsi qu'il faut jouer...

y'a certaines choses, qu'on ne peut faire qu'avec un On Error

signaler à un administrateur
Commentaire de Philippe222 le 19/02/2009 15:28:54

Avec qq modifs j'ai utilisé sans pb le programme de VK. J'obtiens un fichier INI de plusieurs ko de toutes mes "forms".

J'utilise une variable de compilation conditionnelle. Au chargement de la première feuille (et si la variable de compil est OK), je fais défiler toutes les autres et je récupère tous les textes de l'IHM

Par contre, j'ai plusieurs dizaines de msgbox à traiter de la même façon, mais dans le code et pas dans l'IHM. Pas compliqué à faire avec la classe mise à dispo par VK. On peut bâtir un pgm qui lit ces textes de mon pgm et les classe dans le fichier INI, toutefois leurs déclarations risque de prendre pas mal de temps.

Vu qu'autrement, c'est pire, je vais continuer ainsi.

Si vous avez une meilleure astuce, je suis preneur.

Sinon, pour tout ce qui pu être fait chez moi, je sais que déjà cela vaut 10/10. félicitations à VK.

signaler à un administrateur
Commentaire de Philippe222 le 19/02/2009 15:31:24 10/10

La note ! Pardon !

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

changement de langue [ par winny68 ] Bonjour,Je travail avec VB.net 2003j'ai deux question sur la s&#233;l&#233;ction de language.J'ai chang&#233; la valeur de language de ma form1 est ma Modification du Caption de plusieurs controls (CommandButton) dans une boucle en VBA [ par Lfigureau ] Bonjour à tous,J'ai inséré plusieurs boutons (que j'ai liés à différentes macros) sur une feuille Excel (Excel2003 sous Windows XP). Ces boutons ont é diffenrence de language [ par orzhov54 ] bonjour est ce que quelqu'un connait un site qui référencie toutes les mise à jours sur le language vb entre vb 5 et vb 2005merci Boîtes de dialogue standards multilingues [ par LaNono ] Bonjour à tous Voilà je suis devant un petit problème sur mon application multilingue. j'utilise des fichiers de ressources pour gérer mon changement Publier une application multilingue [ par LaNono ] Bonjour tout le monde! J'ai réalisé une application VB 2005 et je voudrais maintenant la publier pour réaliser un fichier d'installation. J'ai déjà VB6 et l'arabe [ par yassinea3 ] Slt tous le monde.J'ai une application de gestion avec VB6 et access.Cette application gere la langue francaise et langue arabe.mon problème est : J'a tri alphabétique [ par hjsnapo ] Bonjour,Existe-t-il un software dans le commerce ou online permettant dans des fichiers Access volumineux d'obtenirun tri alphabétique effectif comme traduction du c# en vb.net [ par beet2che ] Bonsoir comment traduire en vb.net cette ligne de code : byte [] Vect = {0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x10, 0x11, problême avec le language VBA excel [ par alexasicsac ] bonjour a tous,   j'ai un petit soucis avec le language VBA d'Excel, voilà , j'ai crée un bouton ou apparaissent les départements français, (jusque là changer la langue d'un texte dans le presse papier [ par totocatepelt ] Bonjour,je réitère ma question :je tourne sous windows Vistaje copie un texte sous format rtf dont le codage indique que la langue est anglaise (mais


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,530 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.