Je suis raisonnablement familier avec les différentes formes de VB qui existaient avant .NET (VB6, VBA, VBScript ...), mais n'a pas encore plongé dans la douce nouvelle saveur qui est vb.net. p>
J'apprécie donc beaucoup si quelqu'un fournirait un résumé rapide des principales différences dans la langue provoquée par VB.NET. P>
6 Réponses :
En supposant quand vous dites VB, vous voulez dire VB 6. Assez gros. L'original Visual Basic n'utilise pas l'environnement d'exécution .NET, et bien qu'ils aient des noms similaires, ce sont des langues très différentes. Visual Basic n'est pas entièrement orienté objet, mais vb.net est. La manipulation des erreurs est vaste différente entre les deux. Vb.net a essayé des blocs de capture dans lesquels VB traditionnel utilise sur les déclarations d'erreur goto. Ce ne sont que quelques différences. La liste se rallonge de plus en plus. p>
Voici un lien décrivant le "Visual Fred" Nom. P>
N'oublions pas le surnom "Visual Fred".
OMG j'ai totalement oublié ce nom.
Vb.net prend toujours en charge les instructions d'erreur GOTO pour des raisons de compatibilité à l'envers.
La réponse de Joel est meilleure, vb.net est toujours Visual Basic ;-)
Oui, il a raison que c'est toujours vb. J'allais sur l'hypothèse que, lorsqu'il a dit vb vb.net, il faisait référence à la VB 6, comme c'est ce que les gens se réfèrent généralement quand ils disent VB.
Il y en a assez de quelques-uns - trop nombreux à énumérer, je pense. Vous pouvez presque envisager VB.NET une langue complètement différente qui partage une syntaxe similaire à VB. Le plus gros changement se familiarise avec les classes .NET. P>
vb.net est juste la version de Visual Basic destinée à travailler avec le .NET Framework. Il rend également d'autres changements et ajouts à la langue, mais contrastant VB.Net avec VB n'est pas possible, car ils sont identiques. p>
Ce que vous pouvez faire est de contraster avec vb.net avec VBA, VB6 ou VBScript, ou une autre variante de Visual Basic. Mais vb.net toujours De la même manière, vous ne pouvez pas contraster "PESPI" et Cola, car Pepsi est em> un cola, mais vous pouvez contraster Pepsi et Coke. P>
Cela dit, la dialecte VB.NET de VB apporte un nombre important de modifications et d'améliorations de la langue, y compris la prise en charge véritable des paradigmes orientés et fonctionnels, au point où le code Idiomatic VB.NET est souvent très différent de VB6 -a code. p>
Ayant utilisé les deux, je dois être en désaccord.
Non ce n'est pas. Bien que les deux soient des dialectes de base, mais avec différents compilateurs et syntaxe quelque peu similaire.
Vb.net est une saveur de VB. Ce n'est pas la seule saveur, certainement, mais de croire que ce n'est pas VB car ce n'est pas la même chose qu'une autre variante spécifique de VB que vous avez peut-être utilisée n'est que l'ignorance.
C'est très vrai. Le compilateur est essentiellement la même chose avec certaines fonctionnalités supplémentaires ajoutées pour l'héritage d'objet et d'autres caractéristiques ajoutées. La syntaxe est exactement la même, avec quelques nouveaux mots-clés jetés pour soutenir les nouvelles fonctionnalités. Maintenant, l'API .NET pris en charge pour VB.NET en fait une langue bien meilleure pour travailler, mais cela ne signifie pas que ce n'est pas la même langue de base en dessous. Si vous créez une application de console vb.net, même dans vs.net 2008, il vous démarque toujours avec un module, comme dans l'ancien VB, aucune classe n'est nécessaire.
Cet argument semble bouillir sur la façon dont nous examinons les choses; Je vois VBScript, VB, VB.NET et Quick Basic / Vbdos sous forme de dialectes différents de base. Je vois VB 1-6 comme différentes versions où vous pouvez utiliser le code d'une version précédente sans le changer dans une version plus récente. (Avec l'exception de 16 bits à 32 bits avec une tierce partie.)
@Kibbee: Oh vraiment? Alors pourquoi ce code VB6 valide n'est-il pas compilé dans toute la version dans Visual Studio 2008? Propriété publique Obtenir des tests () As String End Property
@svinto: vb6 est une variété i> de Visual Basic, mais c'est pas i> la fin de base de la base de base. Vous pouvez contraster vb.net avec vb6. Vous ne pouvez pas contraster vb.net avec VB, tout comme vous ne pouvez pas contraster VB6 avec VB.
Même raison que tous les produits de C ++ 99 compilent dans le nouveau C ++ 0x et la même raison que certains codes forment Java 1.1 ne compilera pas dans Java 6. Au fur et à mesure que de nouvelles fonctionnalités de langue sont ajoutées, une syntaxe doit être modifiée. qui permettra de nouvelles fonctionnalités, mais de casser l'ancien code.
@Joel: Oui, je peux, et je suis sûr que la plupart des œuvres de code VB 1 dans VB6, mais probablement pas dans vb.net. S'il vous plaît, ne me faites pas passer à travers de vieilles cases pour trouver que vb (1) floppy pour prouver mon point ...
Si vous pensez qu'il n'y ait pas aucun changement de casse-là i> introduit entre VB1 et VB6, vous vous trompez malheureusement. Visual Basic est un concept plus grand i> VB1-6.
Bien sûr, certains changements mais pas aussi majeurs que celui-ci, du moins pas si vous avez traversé toutes les versions. Oui, c'est que j'inclus toutes les variantes de base de Microsoft dans ce projet, y compris GW Basic, VBScript, VBA, VB et VB.NET.
La seule chose qui rend VB.NET plus d'un changement majeur que l'avancement de toute autre version de VB 1 via VB 6 est l'ajout de l'exécution .NET. Cependant, le temps d'exécution .NET n'est pas un changement dans la langue, juste un ajout de bibliothèques et d'API. Donc, tandis que le code VB.NET peut en général regarder beaucoup de VB6, en raison du fait que vous programmez contre une API différente, la syntaxe de langues actuelle ne changeait pas beaucoup. Si vb.net était censé être une nouvelle langue, et pas seulement une nouvelle version d'une langue ancienne, ils se seraient débarrassés de "sur erreur goto" qu'ils ne l'ont pas fait.
@Kibbee: VB.NET contient réellement deux langues significativement différentes, selon que si le code est compilé avec "option stricte sur" ou "option stricte". La langue mise en œuvre avec «option stricte éteinte» est suffisamment proche de l'ancienne langue VB pour permettre à beaucoup de code d'être porté, mais d'un point de vue de la conception de la langue, il est horrible. Même avec "option stricte sur", il y a quelques mauvaises klölves dans la langue, mais c'est beaucoup moins comme l'ancien VB.
vb.net est une version plus récente qui utilise le code Frame-Frame-file / géré DOT NET. P>
vb est l'ancienne version. P>
VB compile au code p-code ou au code natif, vb.net compile au MSIL. De plus, la syntaxe diffère un peu. Comme VB.NET est le chemin de mise à niveau des utilisateurs et des programmes VB, il existe une bande d'objets et de fonctions d'assistance qui facilitent le déplacement du code de VB à VB.Net, ces objets et fonctions ne sont normalement pas utilisés dans des programmes écrits dans d'autres. langues nettes. p>
VB5 et VB6 peuvent être compilés au code de machine natif. Le code P a été utilisé dans les versions antérieures de VB (mais était toujours en option VB5 et VB6).
Oh l'horreur. P>
Désolé, mais toutes les réponses existantes sont erronées d'une manière ou d'une autre. Joel's est en fait le meilleur des tas, mais son formulaire médiocre encourage malentendu (désolé, Joel - mais il suffit de regarder vos commentaires!): P>
contraste vb.net avec VB n'est pas possible, car ils sont la même chose. P> blockQuote>
C'est exactement comme dire que "des pommes contrastées avec des fruits n'est pas possible parce qu'ils sont la même chose" et, en tant que tel, pas très utile; surtout depuis de nombreuses personnes ( toujours em>) utilisent de manière synonyme sur "VB6". " P>
Donc, pour effacer les choses un peu: VB6 et VB.NET sont des dialectes de la famille visual de langue de base em> (appelons-le cela). Leur ressemblance est au mieux superficielle; Quelqu'un qui a en fait utilisé em> les deux (et non seulement des codes sources) aura remarqué qu'à partir d'une simulation syntaxique superficielle, ce sont des bêtes complètement différentes. utiliser em> eux sont des expériences fondamentalement différentes. P>
Le seul aspect dans lequel ils se ressemblent réellement (en dehors de ladite simulation de syntaxe), c'est qu'ils sont tous deux très bien adaptés au développement rapide des applications (RAD) ... au moins jusqu'à ce que vous ayez essayé des langages dynamiques tels que Python ou Ruby. En combinaison avec des cadres agiles d'interface graphique tels que des chaussures. Mais même comme les environnements radiens vont, il y a une énorme différence. P>
VB6 a été fondamentalement développé pour faire em> rad, rien d'autre. Et à son époque, VB6 était la meilleure chose sur le marqué de faire rad, par une grande marge. VB.Net, d'autre part, était pas em> distingué pour le développement rad - plus que c #. Les deux langues haut de gamme sont adossées à un cadre général à usage général, comme Java, mais avec l'aspiration pour améliorer certaines des défauts de Java, telles que sa sur le verbauless en coupant beaucoup de code de la chaudière (introduction de délégués, d'événements, de propriétés, d'événements, de propriétés. surcharge de l'opérateur, autoboxotage pour nommer mais quelques caractéristiques de ce type). P>
et tandis que vb.net est à une grande compatibilité à l'envers, c'est très trompeur. Tout d'abord, aucune personne sainée ne dirait que C et C ++ sont les mêmes langues simplement parce que de nombreux programmes C compilent bien sur les compilateurs C ++. Les différences entre vb et vb.net sont encore plus grandes par certaines mesures car no em> code VB6 sont valides vb.net. Il a besoin d'un "assistant de mise à niveau" automatisé pour produire un code .NET valide et l'expérience a montré que cet assistant de mise à niveau ne convient pas à des projets de taille moyenne, principalement parce que sa traduction littérale brise de nombreuses directives et hypothèses du monde .NET. p>
Dire, comme Kibbee, que les compilateurs de VB6 et VB.NET sont "fondamentalement les mêmes" sont fausses. De même, prétendant que "le point d'exécution .NET n'est pas un changement dans la langue" manque complètement le point. bien sûr em> c'est un changement dans la langue. Vb.net a été complètement construit autour du .NET Framework, ce n'est pas une autre bibliothèque. P>
Il affirme que P>
Si vb.net était censé être une nouvelle langue, et pas seulement une nouvelle version d'une langue ancienne, ils auraient été débarrassés de "sur erreur goto" qu'ils n'avaient pas. P> blockQuote>
- Qui est également trompeur. "ON Erreur Goto" a été inclus uniquement pour la compatibilité à l'envers (l'assistant de mise à niveau ne peut pas convertir une manipulation d'erreurs de style ancien dans une manipulation d'erreurs basée sur des exceptions). P>
Permettez-moi de résumer le point principal de cette affiche assez longue de sorte qu'il ne se perd pas: juste comme Java et JavaScript, VB6 et VB.NET ont des noms très similaires (et pour la même raison aussi: marketing ) Mais cela est totalement trompeur. Il y a quelques similitudes syntaxiques. En dehors de cela, superficiellement aussi bien que sous le capot,
ils sont complètement différentes langues fortes>. P>
Je dirais que "ce sont des langues complètement similaires" où "similaire" équivaut à "différent" - comme des pommes et des poires!
Qu'est-ce qui vous fait poser une telle question? Et, répondez-y aussi?
Rien de mal à répondre à vos propres questions. C'est effectivement encouragé. Vous voulez juste être sûr i> b> Vous avez une très bonne réponse lorsque vous le faites et que vous laissez une chance pour la communauté de fournir également des informations. C'est aussi une bonne étiquette sur afin de faire de votre réponse i> (pas la question) wiki communautaire.
@sakthivignesh: Je pense que vous avez attrapé beaucoup de flack pour cela en écrivant une telle question vague puis postez immédiatement une réponse très insuffisante à celle-ci i>. À l'avenir, vous voudrez éviter cela à moins que Joel Notes, vous SAVOIR I> Vous avez une bonne réponse. Au lieu de cela, passez plus de temps à écrire une bonne question ...