Visual Basic .Net est un langage de programmation à la syntaxe similaire à celle de Visual Basic 6.
Néanmoins, ces deux langages sont assez peu comparables dans la pratique tant l'évolution entre ceux-ci est énorme. Le principal changement étant sans conteste l'introduction de l'orientation objet dans le langage.
VB.NET permet de développer en .Net via Visual Studio, c'est-à-dire seulement sur les systèmes d'exploitation Windows (98, 2000, XP, Vista, 7). Il existe cependant un projet visant à porter la plateforme DotNet (et donc VB.NET) sous Linux, MacOS et OpenBSD. Ce projet s'appelle Mono et il permet déjà de faire tourner nativement des applications .NET 2.0.
Il est important de rappeler que tout programme VB.NET est compilé dans le même langage intermédiaire (IL) que C# ou tout autre langage de la plateforme DotNet.
L'IDE commun et incontournable de tous les langages DotNet est Visual Studio, mais celui-ci est payant.
Un IDE gratuit basé sur Visual Studio existe : Visual Basic Express. D'autres IDE gratuits existent, comme SharpDevelop ou MonoDevelop, mais ceux-ci sont moins évolués que Visual Studio.
Évolutions : VB7 à VB8 (non-exhaustif)
Quelques nouveautés ont fait leurs apparitions entre VB7 et VB8, mais c'est surtout le passage du DotNet FrameWork 1.1 au 2.0 qui marque cette évolution.
En voici tout de même un résumé :
Les classes partielles, permettant de répartir l’implémentation d’une classe sur plusieurs fichiers.
Les types génériques, évolution typée des templates C++.
Les types « nullables », c'est-à-dire la possibilité de spécifier qu’un type de valeur peut être nul. Ceux-ci sont déclarés avec le caractère point d'interrogation « ? » suivant le nom du type, comme ceci : Dim X as Integer? = Nothing (VB9) ou avec une classe particulière (VB8+). Cette valeur « Nothing » serait, si le « ? » n'était pas spécifié, converti en 0 dans ce cas-ci. Dans le nouveau système (X+10) vaudrait « Nothing » (Nothing est absorbant dans tous les opérateurs), et pas 10 comme cela aurait été le cas autrement. Tout membre d'une valeur « vide » est « vide ».
Évolutions : de VB6 à VB7 (non-exhaustif)
Qu'est-ce qui différencie VB6 par rapport à VB7 (Visual Studio 2003) ?
L'orientation objet fait son apparition avec notamment l'intégration de la technologie de l'héritage, qui jusqu'à ce jour limitait l'industrialisation du code Visual Basic (VB6 n'était pas un langage orienté objet à proprement parler).
L'intégration de l'environnement de développement (IDE) dans la suite Visual Studio permettant d'utiliser d'autres langages comme Visual C++ ou Visual C#. Une bibliothèque de fonction faite en C# sera totalement compatible et utilisable dans une application VB.NET.
Le code produit par VB.NET est finalement compilé dans un même langage que ne le serait le C#, qu'on appelle le CIL (Common Language Infrastructure) ou MSIL (Microsoft Intermediate Language).
La connexion aux bases de données est facilitée par l'amélioration des outils de glisser-déposer et l'utilisation de la dernière technologie ADO, ADO.NET.
La technologie XML est intégrée nativement dans DotNet, ce qui permet la création plus facile d'application en ligne ou de sauvegarde de données.
Le générateur de code SQL est beaucoup plus performant.
L'écriture de gestionnaires d'erreurs tient compte du Multithreading via des blocs TRY/CATCH.
La portée des instructions GOTO est limitée (les sauts ne peuvent se faire qu'au sein d'une même fonction). Ce comportement est dû au fonctionnement-même de la plateforme DotNet et est commun à tous les langages DotNet (C#, J#, ...).
La déclaration des variables est rendue obligatoire par défaut (contrairement au Visual Basic 6 où cette fonctionnalité était désactivée par défaut).
L'intégration de nouvelles classes d'objet .NET s'est faite tout en permettant pour les versions intermédiaires de réutiliser les objets .COM rendant la migration plus facile de Visual Basic 6 à VB Net. VB.NET est le seul langage de DotNet à avoir une intégration "en profondeur" des objets COM.
Les "pointeurs" vers des fonctions peuvent et doivent (dans 99% des cas) désormais être typés (notion de délégués).
La documentation est automatiquement générée depuis des commentaires spéciaux dans le code (depuis la version 8).