Article de reference

Visual Basic (.NET)

Visual Basic ( VB ), appelé à l'origine Visual Basic .NET ( VB.NET ), est un langage de programmation multi-paradigme , orienté objet , implémenté sur .NET , Mono et le .NET Fra...

Visual Basic ( VB ), appelé à l'origine Visual Basic .NET ( VB.NET ), est un langage de programmation multi-paradigme , orienté objet , implémenté sur .NET , Mono et le .NET Framework . Microsoft a lancé VB.NET en 2002 en tant que successeur de son langage Visual Basic d'origine , dont la dernière version était Visual Basic 6.0. Bien que la partie « .NET » du nom ait été abandonnée en 2005, cet article utilise « Visual Basic [.NET] » pour faire référence à tous les langages Visual Basic publiés depuis 2002, afin de les distinguer du Visual Basic classique . Avec C# et F# , c'est l'un des trois principaux langages ciblant l'écosystème .NET. Microsoft a mis à jour sa stratégie linguistique VB le 6 février 2023, déclarant que VB est désormais un langage stable et que Microsoft continuera à le maintenir.

L'environnement de développement intégré (IDE) de Microsoft pour le développement en Visual Basic est Visual Studio . La plupart des éditions de Visual Studio sont commerciales ; les seules exceptions sont Visual Studio Express et Visual Studio Community , qui sont des logiciels gratuits . De plus, le SDK .NET Framework inclut un compilateur de ligne de commande gratuit appelé vbc.exe. Mono inclut également un compilateur VB.NET en ligne de commande.

Visual Basic est souvent utilisé en conjonction avec la bibliothèque d'interface utilisateur graphique Windows Forms pour créer des applications de bureau pour Windows . La programmation pour Windows Forms avec Visual Basic implique de glisser-déposer des contrôles sur un formulaire à l'aide d'un concepteur d'interface utilisateur graphique et d'écrire le code correspondant pour chaque contrôle.

Utiliser pour créer des programmes d'interface utilisateur graphique

La bibliothèque Windows Forms est le plus souvent utilisée pour créer des interfaces graphiques dans Visual Basic. Tous les éléments visuels de la bibliothèque de classes Windows Forms dérivent de la classe Control. Celle-ci fournit les fonctionnalités minimales d'un élément d'interface utilisateur telles que l'emplacement, la taille, la couleur, la police, le texte, ainsi que des événements courants comme le clic et le glisser-déposer. La classe Control prend également en charge l'ancrage pour permettre à un contrôle de réorganiser sa position sous son parent.

Les formulaires sont généralement conçus dans l' IDE Visual Studio . Dans Visual Studio, les formulaires sont créés à l'aide de techniques de glisser-déposer . Un outil est utilisé pour placer des contrôles (par exemple, des zones de texte, des boutons, etc.) sur le formulaire (fenêtre). Les contrôles ont des attributs et des gestionnaires d'événements qui leur sont associés. Les valeurs par défaut sont fournies lors de la création du contrôle, mais peuvent être modifiées par le programmeur. De nombreuses valeurs d'attribut peuvent être modifiées pendant l'exécution en fonction des actions de l'utilisateur ou des modifications de l'environnement, offrant ainsi une application dynamique. Par exemple, du code peut être inséré dans le gestionnaire d'événements de redimensionnement du formulaire pour repositionner un contrôle afin qu'il reste centré sur le formulaire, qu'il s'agrandisse pour remplir le formulaire, etc. En insérant du code dans le gestionnaire d'événements pour une pression de touche dans une zone de texte, le programme peut automatiquement traduire la casse du texte saisi, voire empêcher l'insertion de certains caractères.

Syntaxe

Visual Basic utilise des instructions pour spécifier des actions. L'instruction la plus courante est une instruction d'expression, composée d'une expression à évaluer, sur une seule ligne. Dans le cadre de cette évaluation, des fonctions ou des sous-routines peuvent être appelées et de nouvelles valeurs peuvent être attribuées à des variables . Pour modifier l'exécution séquentielle normale des instructions, Visual Basic fournit plusieurs instructions de contrôle de flux identifiées par des mots clés réservés. La programmation structurée est prise en charge par plusieurs constructions, dont deux constructions d'exécution conditionnelle ( ... ... ... et ... ... ) et quatre constructions d'exécution itérative (boucle) ( ... , ... , et ... ) . L' instruction ... comporte des sections d'initialisation et de test distinctes, qui doivent toutes deux être présentes. (Voir les exemples ci-dessous.) L' instruction parcourt chaque valeur d'une liste. IfThenElseEnd IfSelect CaseCaseEnd SelectDoLoopForToFor EachWhileEnd WhileForToFor Each

De plus, dans Visual Basic :

  • Il n'existe pas de méthode unifiée pour définir des blocs d'instructions. Au lieu de cela, certains mots-clés, tels que « If … Then » ou « Sub » sont interprétés comme des débuts de sous-blocs de code et ont des mots-clés de terminaison correspondants tels que « End If » ou « End Sub ».
  • Les instructions se terminent soit par deux points (":"), soit par la fin de la ligne . Les instructions multilignes dans Visual Basic sont activées avec « _ » à la fin de chaque ligne de ce type. Le besoin du caractère de continuation de soulignement a été largement supprimé dans la version 10 et les versions ultérieures.
  • Le signe égal (« = ») est utilisé à la fois pour attribuer des valeurs aux variables et pour effectuer des comparaisons.
  • Les parenthèses sont utilisées avec les tableaux , à la fois pour les déclarer et pour obtenir une valeur à un index donné dans l'un d'eux. Visual Basic utilise des parenthèses pour définir les paramètres des sous-routines ou des fonctions.
  • Un guillemet simple (') ou le mot-clé REM, placé au début d'une ligne ou après un nombre quelconque de caractères d'espace ou de tabulation au début d'une ligne, ou après un autre code sur une ligne, indique que la (reste de la) ligne est un commentaire .

Exemple simple

Voici un programme Visual Basic très simple, une version de l'exemple classique « Hello, World ! » créé en tant qu'application console :

Module Module1
Sub Main () ' Le programme de démonstration classique "Hello, World!" Console . WriteLine ( "Hello, World!" ) End Sub
Module de fin

Il affiche « Hello, World! » dans une fenêtre de ligne de commande . Chaque ligne a un objectif spécifique, comme suit :

Module Module1

Il s'agit d'une définition de module. Les modules sont une division de code, qui peut contenir tout type d'objet, comme des constantes ou des variables, des fonctions ou des méthodes, ou des classes, mais ne peuvent pas être instanciés en tant qu'objets comme des classes et ne peuvent pas hériter d'autres modules. Les modules servent de conteneurs de code qui peuvent être référencés à partir d'autres parties d'un programme.
Il est courant qu'un module et le fichier de code qui le contient aient le même nom. Cependant, cela n'est pas obligatoire, car un seul fichier de code peut contenir plusieurs modules ou classes.

Sous- principal ()

Cette ligne définit une sous-routine appelée « Main ». « Main » est le point d'entrée, où le programme commence son exécution.

Console . WriteLine ( "Bonjour tout le monde !" )

Cette ligne effectue la tâche réelle d'écriture de la sortie. Console est un objet système, représentant une interface de ligne de commande (également appelée « console ») et accordant un accès programmatique aux flux standard du système d'exploitation . Le programme appelle la méthode Console WriteLine, qui provoque l'affichage de la chaîne qui lui est transmise sur la console.

Au lieu de Console.WriteLine, on pourrait utiliser MsgBox, qui imprime le message dans une boîte de dialogue au lieu d'une fenêtre de ligne de commande.

Exemple complexe

Ce morceau de code génère le triangle de Floyd sur la console :

Importe System.Console
Programme du module
Sous- main () Diminue les lignes en tant qu'entier
' Validation d'entrée. 
Do Until Integer . TryParse ( ReadLine ( "Entrez une valeur pour le nombre de lignes à afficher : " & vbcrlf ), rows ) AndAlso rows >= 1 WriteLine ( "La plage autorisée est 1 et {0}" , Integer . MaxValue ) Loop ' Sortie du triangle de Floyd Dim current As Integer = 1 Dim row As Integer Dim column As Integer For row = 1 To rows For column = 1 To row Write ( "{0,-2} " , current ) current += 1 Next
WriteLine () 
Suivant Fin Sub
''' <summary> 
''' Comme Console.ReadLine mais prend une chaîne d'invite. ''' </summary> Fonction ReadLine ( invite facultative comme chaîne = Rien ) Comme chaîne si l'invite n'est pas Rien alors Écriture ( invite ) Fin si
Console de retour . ReadLine () Fin de la fonction
Module de fin

Comparaison avec le Visual Basic classique

La question de savoir si Visual Basic .NET doit être considéré comme une simple version de Visual Basic ou comme un langage complètement différent est sujette à débat. De nouveaux ajouts ont été apportés pour prendre en charge de nouvelles fonctionnalités, telles que la gestion structurée des exceptions et les expressions court-circuitées. De plus, deux modifications importantes du type de données ont eu lieu avec le passage à VB.NET : par rapport à Visual Basic 6, le Integer type de données a doublé de longueur, passant de 16 bits à 32 bits, et le Long type de données a doublé de longueur, passant de 32 bits à 64 bits. Cela est vrai pour toutes les versions de VB.NET. Un entier de 16 bits dans toutes les versions de VB.NET est désormais appelé Short. De même, l' éditeur de formulaires Windows est très similaire en termes de style et de fonction à l'éditeur de formulaires Visual Basic.

Les éléments qui ont considérablement changé sont la sémantique : d'un langage de programmation basé sur les objets exécuté sur un moteur déterministe à références comptées basé sur COM à un langage entièrement orienté objet soutenu par le .NET Framework , qui consiste en une combinaison du Common Language Runtime (une machine virtuelle utilisant la récupération de place générationnelle et un moteur de compilation juste-à-temps ) et d'une bibliothèque de classes beaucoup plus vaste . L'étendue accrue de cette dernière est également un problème auquel les développeurs VB doivent faire face lorsqu'ils arrivent au langage, bien que cela soit quelque peu résolu par la fonctionnalité My de Visual Studio 2005.

Les changements ont modifié de nombreuses hypothèses sous-jacentes sur la « bonne » chose à faire en matière de performances et de maintenabilité. Certaines fonctions et bibliothèques n'existent plus ; d'autres sont disponibles, mais pas aussi efficaces que les alternatives .NET « natives ». Même si elles compilent, la plupart des applications Visual Basic 6 converties nécessiteront un certain niveau de refactorisation pour tirer pleinement parti du nouveau langage. Une documentation est disponible pour couvrir les changements de syntaxe, le débogage des applications, le déploiement et la terminologie.

Exemples comparatifs

Les exemples simples suivants comparent la syntaxe VB et VB.NET. Ils supposent que le développeur a créé un formulaire, placé un bouton dessus et a associé les sous-routines présentées dans chaque exemple au gestionnaire d'événements de clic du bouton mentionné. Chaque exemple crée une boîte de message « Hello, World » après avoir cliqué sur le bouton du formulaire.

Visual Basic 6 :

Commande privée Sub1_Click () MsgBox "Bonjour, monde" Fin de l'abonnement

VB.NET (la classe MsgBox ou MessageBox peut être utilisée) :

Bouton privé Sub1_Click ( sender As object , e As EventArgs ) gère Button1 . Cliquez sur MsgBox ( "Hello, World" ) Fin de l'abonnement
  • Visual Basic 6 et Visual Basic .NET génèrent automatiquement les instructions Subet End Sublorsque le bouton correspondant est double-cliqué en mode Création. Visual Basic .NET génère également les instructions Classet nécessaires End Class. Le développeur n'a qu'à ajouter l'instruction pour afficher la boîte de message « Hello, World ».
  • Tous les appels de procédure doivent être effectués avec des parenthèses dans VB.NET, alors que dans Visual Basic 6, il y avait des conventions différentes pour les fonctions (parenthèses obligatoires) et les sous-fonctions (aucune parenthèse autorisée, sauf si elles sont appelées à l'aide du mot clé Call).
  • Les noms Command1et Button1ne sont pas obligatoires. Cependant, il s'agit des noms par défaut d'un bouton de commande dans Visual Basic 6 et VB.NET respectivement.
  • Dans VB.NET, le Handlesmot clé est utilisé pour faire du sous-élément Button1_Clickun gestionnaire pour l' Clickévénement de l'objet Button1. Dans Visual Basic 6, les sous-éléments du gestionnaire d'événements doivent avoir un nom spécifique composé du nom de l'objet ( Command1), d'un trait de soulignement ( _) et du nom de l'événement ( Click, d'où Command1_Click).
  • Il existe une fonction appelée MessageBox.Showdans l' Microsoft.VisualBasicespace de noms qui peut être utilisée (à la place de MsgBox) de manière similaire à la fonction correspondante dans Visual Basic 6. Il existe une controverse sur la fonction à utiliser comme meilleure pratique (non seulement limitée à l'affichage des boîtes de message mais aussi concernant d'autres fonctionnalités de l' Microsoft.VisualBasicespace de noms). Certains programmeurs préfèrent faire les choses « à la manière de .NET », car les classes Framework ont ​​plus de fonctionnalités et sont moins spécifiques au langage. D'autres soutiennent que l'utilisation de fonctionnalités spécifiques au langage rend le code plus lisible (par exemple, en utilisant int(C#) ou Integer(VB.NET) au lieu de System.Int32).
  • Dans Visual Basic 2008, l’inclusion de , est devenue facultative.ByValsenderasObjectByValeasEventArgs

L'exemple suivant illustre une différence entre Visual Basic 6 et VB.NET. Les deux exemples ferment la fenêtre active .

Visual Basic 6 :

Sub cmdClose_Click () Déchargez -moi Fin Sub

VB.NET :

Sub btnClose_Click ( sender As Object , e As EventArgs ) Gère btnClose . Cliquez sur Fermer () Fin du sous-programme

Le préfixe « cmd » est remplacé par le préfixe « btn », conformément à la nouvelle convention mentionnée précédemment.

Visual Basic 6 ne propose pas de raccourcis clavier courants. Les raccourcis clavier suivants sont équivalents :

Visual Basic 6 :

Sub Timer1_Timer () 'Réduit la hauteur du formulaire d'un pixel par tick Me . Height = Me . Height - 1 Fin du sous-programme

VB.NET :

Sub Timer1_Tick ( sender As Object , e As EventArgs ) Gère Timer1 . Tick Me . Height -= 1 Fin Sub

Comparaison avec C#

C# et Visual Basic sont les premiers langages de Microsoft conçus pour programmer sur le .NET Framework (plus tard, F# et d'autres ont été ajoutés ; d'autres ont également ajouté des langages). Bien que C# et Visual Basic soient syntaxiquement différents, c'est là que s'arrêtent la plupart des différences. Microsoft a développé ces deux langages pour qu'ils fassent partie de la même plate-forme de développement .NET Framework. Ils sont tous deux développés, gérés et pris en charge par la même équipe de développement de langage chez Microsoft. Ils compilent dans le même langage intermédiaire (IL), qui s'exécute sur les mêmes bibliothèques d'exécution .NET Framework. Bien qu'il existe quelques différences dans les constructions de programmation, leurs différences sont principalement syntaxiques et, en supposant que l'on évite les bibliothèques de « compatibilité » Visual Basic fournies par Microsoft pour faciliter la conversion à partir de Visual Basic 6, presque toutes les fonctionnalités de VB ont une fonctionnalité équivalente dans C# et vice versa. Enfin, les deux langages font référence aux mêmes classes de base du .NET Framework pour étendre leurs fonctionnalités. Par conséquent, à quelques exceptions près, un programme écrit dans l'un ou l'autre langage peut être exécuté via un simple convertisseur de syntaxe pour se traduire dans l'autre. Il existe de nombreux produits open source et disponibles dans le commerce pour cette tâche.

Exemples

Bonjour le monde!

Application Windows Forms

Nécessite un bouton appelé Button1.

Formulaire de classe publique 1
Private Sub Button1_Click ( sender As Object , e As EventArgs ) Handles Button1 . Click MsgBox ( "Hello world!" , MsgBoxStyle . Information , "Hello world!" ) ' Affiche un message indiquant "Hello world!". End Sub End Class
Bonjour tout le monde! fenêtre

Application de console

Module Module1
Sub Main () Console . WriteLine ( "Hello world!" ) ' Écrivez dans la console "Hello world!" et démarrez une nouvelle ligne. Console . ReadKey () ' L'utilisateur doit appuyer sur n'importe quelle touche avant la fin de l'application. End Sub End Module

Parlant

Application Windows Forms

Nécessite une zone de texte intitulée « TextBox1 » et un bouton appelé Button1.

Classe publique Form1 Sous-classe privée Button1_Click ( sender As Object , e As EventArgs ) Gère Button1 . Click CreateObject ( "Sapi.Spvoice" ). Speak ( TextBox1 . Text ) Fin du sous- classe Fin de la classe

Application de console

Module Module1
Voix privée = CreateObject ( "Sapi.Spvoice" )
Texte privé sous forme de chaîne
Sous- principal ()
Console . Write ( "Entrez le texte à prononcer : " ) ' Dites "Entrez le texte à prononcer : "
Texte = Console . ReadLine () ' L'utilisateur doit saisir le texte à parler.
Voix . Parler ( Texte ) ' Prononcez le texte saisi par l'utilisateur.
Fin de sous-titre
Module de fin

Historique des versions

Succédant à la version classique de Visual Basic 6.0, la première version de Visual Basic .NET a fait ses débuts en 2002. En 2020 , dix versions de Visual Basic .NET sont publiées.

2002 (VB 7.0)

La première version, Visual Basic .NET, s'appuie sur .NET Framework 1.0 . La fonctionnalité la plus importante est le code managé , qui contraste avec le Visual Basic classique.

2003 (VB 7.1)

Visual Basic .NET 2003 a été publié avec .NET Framework 1.1 . Les nouvelles fonctionnalités comprenaient la prise en charge de .NET Compact Framework et un meilleur assistant de mise à niveau de VB. Des améliorations ont également été apportées aux performances et à la fiabilité de .NET IDE (en particulier le compilateur d'arrière-plan) et de l'exécution. De plus, Visual Basic .NET 2003 était disponible dans l'édition académique de Visual Studio.NET, distribuée gratuitement à un certain nombre d'universitaires

2005 (VB 8.0)

Après Visual Basic .NET 2003, Microsoft a supprimé « .NET » du nom du produit, appelant la version suivante Visual Basic 2005.

Pour cette version, Microsoft a ajouté de nombreuses fonctionnalités destinées à renforcer l'orientation de Visual Basic .NET en tant que plate-forme de développement rapide d'applications et à le différencier davantage de C# , notamment :

  • Fonctionnalité Modifier et continuer
  • Évaluation de l'expression au moment de la conception
  • Un pseudo- espace de noms appelé « Mon », qui fournit :
    • Accès facile à certaines zones du .NET Framework qui nécessitent par ailleurs un code important pour y accéder, comme l'utilisation plutôt queMy.Form2.Text=" MainForm "System.WindowsApplication1.Forms.Form2.text=" MainForm "
    • Classes générées dynamiquement (par exemple My.Forms )
  • Convertisseur VB vers VB.NET amélioré
  • Un mot-clé « using », simplifiant l'utilisation des objets qui nécessitent le modèle Dispose pour libérer des ressources
  • Fonctionnalité Just My Code , qui masque (enjambe) le code standard écrit par l'IDE Visual Studio .NET et le code de la bibliothèque système pendant le débogage
  • Liaison de sources de données, simplification du développement client/serveur de bases de données

Pour combler les écarts entre elle-même et les autres langages .NET, cette version a ajouté :

Visual Basic 2005 a introduit l' IsNotopérateur qui rend 'If X IsNot Y'équivalent à 'If Not X Is Y'. Il a gagné en notoriété lorsqu'il a été découvert qu'il faisait l'objet d'une demande de brevet Microsoft.

2008 (VB 9.0)

Visual Basic 9.0 a été publié avec .NET Framework 3.5 le 19 novembre 2007.

Pour cette version, Microsoft a ajouté de nombreuses fonctionnalités, notamment :

2010 (VB 10.0)

En avril 2010, Microsoft a publié Visual Basic 2010. Microsoft avait prévu d'utiliser Dynamic Language Runtime (DLR) pour cette version mais a opté pour une stratégie de co-évolution entre Visual Basic et son langage frère C# pour rapprocher les deux langages. La capacité innée de Visual Basic à interagir dynamiquement avec les objets CLR et COM a été améliorée pour fonctionner avec des langages dynamiques construits sur le DLR tels que IronPython et IronRuby . Le compilateur Visual Basic a été amélioré pour déduire la continuation de ligne dans un ensemble de contextes communs, supprimant dans de nombreux cas le besoin des caractères de continuation de ligne « _ ». De plus, la prise en charge existante des fonctions en ligne a été complétée par la prise en charge des sous-programmes en ligne ainsi que des versions multilignes des lambdas Sub et Function.

2012 (VB 11.0)

Visual Basic 2012 a été publié en même temps que .NET Framework 4.5 . Les principales fonctionnalités introduites dans cette version incluent :

  • Programmation asynchrone avec instructions « async » et « wait »
  • Itérateurs
  • Hiérarchie des appels
  • Informations sur l'appelant
  • Mot-clé « Global » dans les instructions « namespace »

2013 (VB 12.0)

Visual Basic 2013 a été publié en même temps que .NET Framework 4.5.1 avec Visual Studio 2013. Vous pouvez également créer des applications .NET Framework 4.5.2 en installant Developer Pack.

2015 (VB 14.0)

Visual Basic 2015 (nom de code VB « 14.0 ») a été publié avec Visual Studio 2015. Les fonctionnalités du langage incluent un nouvel opérateur « ?. » pour effectuer des vérifications null en ligne, et une nouvelle fonctionnalité d'interpolation de chaîne est incluse pour formater les chaînes en ligne.

2017 (VB 15.x)

Visual Basic 2017 (nom de code VB « 15.0 ») a été publié avec Visual Studio 2017. Étend la prise en charge des nouvelles fonctionnalités du langage Visual Basic 15 avec les révisions 2017, 15.3, 15.5, 15.8. Introduit de nouvelles refactorisations qui permettent d'organiser le code source en une seule action.

2019 (VB 16.0)

Visual Basic 2019 (nom de code VB « 16.0 ») a été publié avec Visual Studio 2019. Il s'agit de la première version de Visual Basic axée sur .NET Core.

Développement multiplateforme et open source

Le compilateur officiel Visual Basic est écrit en Visual Basic et est disponible sur GitHub dans le cadre de la plateforme de compilateur .NET . La création d'outils open source pour le développement Visual Basic a été lente par rapport à C# , bien que la plateforme de développement Mono fournisse une implémentation de bibliothèques spécifiques à Visual Basic et un compilateur compatible Visual Basic 2005 écrit en Visual Basic, ainsi que des bibliothèques de framework standard telles que la bibliothèque d'interface graphique Windows Forms .

MonoDevelop était un IDE alternatif open source . L' environnement Gambas est également similaire mais distinct de Visual Basic, tout comme l'éditeur Visual FB pour FreeBasic .

Plus d articles de Worldlex Wiki

Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

Explorer l index