Article de reference

Visual Basic (.NET)

[[Type system#Safely and unsafely typed systems|both safe and unsafe]], [[Nominative type system|nominative]]"},"dialects":{"wt":"Microsoft Visual Basic"},"screenshot caption":{...

langage de programmation orienté objet multiparadigme développé par Microsoft et implémenté sur .NET , Mono et le framework .NET . Microsoft a lancé VB.NET en 2002 pour succéder à son langage Visual Basic d'origine , dont la dernière version était Visual Basic 6.0. Bien que l'extension « .NET » ait été abandonnée en 2005, cet article utilise « Visual Basic [.NET] » pour désigner toutes les versions de Visual Basic publiées depuis 2002, afin de les distinguer du Visual Basic classique . Avec C# et F# , il fait partie des trois principaux langages ciblant l'écosystème .NET. Le 6 février 2023, Microsoft a mis à jour sa stratégie concernant le langage VB, indiquant que VB est désormais un langage stable et que Microsoft continuera à le maintenir, mais n'ajoutera plus la prise en charge de nouvelles charges de travail.

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 ; seules Visual Studio Express et Visual Studio Community , qui sont gratuites , font exception . De plus, le kit de développement logiciel (SDK) du .NET Framework inclut un compilateur en ligne de commande gratuit appelé vbc.exe. Mono inclut également un compilateur VB.NET en ligne de commande.

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

intégré (IDE ) Visual Studio . Dans Visual Studio, les formulaires sont créés par glisser-déposer . Un outil permet de placer les contrôles (zones de texte, boutons, etc.) sur le formulaire (fenêtre). Les contrôles possèdent des attributs et des gestionnaires d'événements associés. Des valeurs par défaut sont définies lors de la création du contrôle, mais peuvent être modifiées dans l'interface graphique de l'IDE Visual Studio ou par programmation. De nombreuses valeurs d'attributs peuvent être modifiées en cours d'exécution par le code, par exemple en fonction des actions de l'utilisateur ou des changements d'environnement, ce qui permet de créer 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'étende pour remplir tout le formulaire, etc. En insérant du code dans le gestionnaire d'événements de frappe au clavier dans une zone de texte, le programme peut automatiquement convertir la casse du texte saisi, voire empêcher la saisie de certains caractères.

Syntaxe

des instructions pour spécifier des actions. L'instruction la plus courante est l'instruction d'expression, qui consiste en une expression à évaluer, sur une seule ligne. Lors de cette évaluation, des fonctions ou des sous-programmes peuvent être appelés et des variables peuvent se voir attribuer de nouvelles valeurs. Pour modifier l'exécution séquentielle normale des instructions, Visual Basic propose 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 ( IfThenElseEnd Ifet Select CaseCaseEnd Select) et quatre constructions d'exécution itérative (boucles) ( DoLoop, ForTo, For Eachet WhileEnd While). L' instruction ForTocomporte des sections d'initialisation et de test distinctes, qui doivent toutes deux être présentes. (Voir les exemples ci-dessous.) L' For Eachinstruction … parcourt chaque valeur d'une liste.

De plus, en Visual Basic :

  • Il n'existe pas de méthode unifiée pour définir des blocs d'instructions. En revanche, certains mots clés, tels que « If ... Then » ou « Sub », sont interprétés comme des amorces de sous-blocs de code et possèdent des mots clés de fin 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 en Visual Basic sont possibles grâce à l'ajout d'un tiret bas (« _ ») à la fin de chaque ligne. L'utilisation du caractère de continuation « underscore » a été largement supprimée à partir de la version 10.
  • 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 accéder à la valeur d'un élément à un index donné. En Visual Basic, les parenthèses servent à définir les paramètres des sous-programmes ou des fonctions.
  • Un guillemet simple (') ou le mot-clé REM, placé au début d'une ligne ou après un nombre quelconque d' espaces ou de caractères de tabulation au début d'une ligne, ou après un autre code sur une ligne, indique que le (reste de la) ligne est un commentaire .

Exemple simple

Voici un programme Visual Basic très simple, une version du classique exemple « Hello, World ! » créée sous forme d'application console :

Console.WriteLine ( " Hello , World!" ) End SubModule final

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

Bonjour, monde ! " )

Cette ligne effectue l'écriture du résultat. La console est un objet système représentant une interface en ligne de commande (également appelée « console ») et permettant un accès programmatique aux flux standard du système d'exploitation . Le programme appelle la méthode WriteLine de la console , ce qui affiche la chaîne de caractères qui lui est transmise sur la console.

Au lieu de Console.WriteLine, une alternative est MsgBox, qui affiche le message dans une boîte de dialogue plutôt que dans une fenêtre de ligne de commande.

Exemple complexe

Ce fragment de code affiche le triangle de Floyd dans la console :

= 1 WriteLine(\"Allowed range is 1 and {0}\", Integer.MaxValue) Loop ' Output of Floyd's Triangle 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() Next End Sub ''' ''' Like Console.ReadLine but takes a prompt string. ''' Function ReadLine(Optional prompt As String = Nothing) As String If prompt IsNot Nothing Then Write(prompt) End If Return Console.ReadLine() End Function End Module "
Importe System.ConsoleProgramme modulaireSub Main () Dim lignes As Integer' Validation des entrées. Faire jusqu'à Integer.TryParse ( ReadLine ( " Entrez une valeur pour le nombre de lignes à afficher : " & vbcrlf ), rows ) Et si rows >= 1 , WriteLine ( "La plage autorisée est de 1 à {0}" , Integer.MaxValue ) Boucle ' 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 NextWriteLine () Suivant End Sub''' <summary> ''' Comme Console.ReadLine mais prend une chaîne d'invite. ''' </summary> Fonction ReadLine ( Invite optionnelle de type String = Nothing ) As String Si l'invite n'est pas Nothing Alors Écrire ( invite ) Fin SiRetour à la console.ReadLine ( ) Fin de la fonctionModule final

Comparaison avec le Visual Basic classique

la gestion structurée des exceptions et les expressions court-circuitées. De plus, deux changements importants de types de données sont survenus avec le passage à VB.NET : par rapport à Visual Basic 6, la longueur du Integertype de données a doublé, passant de 16 à 32 bits, et celle du Longtype de données a également doublé, passant de 32 à 64 bits. Ceci est valable pour toutes les versions de VB.NET. Un entier 16 bits est désormais appelé « int » dans toutes les versions de VB.NET Short. De même, l’ éditeur Windows Forms est très similaire, en termes de style et de fonctionnalités, à l’éditeur de formulaires de Visual Basic.

Ce qui a considérablement changé, c'est la sémantique : d'un langage de programmation orienté objet exécuté sur un moteur déterministe à comptage de références basé sur COM , on est passé à un langage entièrement orienté objet reposant sur le framework .NET . Ce dernier combine le Common Language Runtime (une machine virtuelle utilisant un ramasse-miettes générationnel et un moteur de compilation à la volée ) et une bibliothèque de classes beaucoup plus vaste . L'étendue accrue de cette dernière a également posé problème aux développeurs VB lors de leur passage au .NET, même si la fonctionnalité « Mon » de Visual Studio 2005 a partiellement résolu ce problème .

Ces changements ont bouleversé de nombreuses hypothèses fondamentales concernant les bonnes pratiques en matière de performance et de maintenabilité des applications. Certaines fonctions et bibliothèques ont disparu ; d’autres sont toujours disponibles, mais moins performantes que les alternatives .NET natives. Même compilées, la plupart des applications Visual Basic 6 converties nécessitaient une refactorisation pour tirer pleinement parti du langage .NET. Microsoft a fourni une documentation couvrant les modifications de syntaxe, le débogage, le déploiement et la terminologie. Un ouvrage de référence, conçu pour faciliter la transition, est « Microsoft Visual Basic .NET Professional Step by Step » de Michael Halvorson , publié en 2002 par Microsoft Press .

Exemples comparatifs

Les exemples simples suivants comparent la syntaxe de VB et de VB.NET. Ils supposent que le développeur a créé un formulaire, y a placé un bouton et a associé les sous-routines présentées dans chaque exemple au gestionnaire d'événements de clic de ce bouton. Chaque exemple affiche une boîte de dialogue « Bonjour, le monde » après le clic sur le bouton du formulaire.

Visual Basic 6 :

End Sub

VB.NET (les classes MsgBox ou MessageBox peuvent être utilisées) :

monde " ) End Sub
  • Visual Basic 6 et Visual Basic .NET génèrent automatiquement les instructions ` Suband` et `or` End Sublorsque l'utilisateur double-clique sur le bouton correspondant en mode Création. Visual Basic .NET génère également les instructions Class`and` nécessaires End Class. Le développeur n'a plus qu'à ajouter l'instruction `and` pour afficher la boîte de dialogue « Hello, World ».
  • En VB.NET, tous les appels de procédure doivent être effectués avec des parenthèses, alors qu'en Visual Basic 6, il existait des conventions différentes pour les fonctions (parenthèses obligatoires) et les sous-routines (aucune parenthèse autorisée, sauf si appelées à l'aide du mot-clé Call).
  • Ces noms Command1ne Button1sont pas obligatoires. Toutefois, il s'agit des noms par défaut pour un bouton de commande dans Visual Basic 6 et VB.NET respectivement.
  • En VB.NET, le Handlesmot-clé `this` est utilisé pour faire d'une sous-routine Button1_Clickun gestionnaire d' Clickévénements de l'objet Button1. En Visual Basic 6, les sous-routines gestionnaires d'événements doivent avoir un nom spécifique composé du nom de l'objet (`object` fenêtre active .

    Visual Basic 6 :

    F# et d'autres langages ont été ajoutés ultérieurement ; d'autres ont également contribué à l'architecture du framework). Bien que C# et Visual Basic diffèrent syntaxiquement, les différences s'arrêtent là. Microsoft a développé ces deux langages pour qu'ils fassent partie de la même plateforme de développement .NET. Ils sont développés, gérés et pris en charge par la même équipe de développement chez Microsoft. Ils sont compilés vers le même langage intermédiaire (IL), appelé CIL , qui utilise les mêmes bibliothèques d'exécution du framework .NET. Malgré quelques différences dans les constructions de programmation, ces différences sont principalement syntaxiques. En évitant les bibliothèques de « compatibilité » Visual Basic fournies par Microsoft pour faciliter la conversion depuis Visual Basic 6, presque chaque fonctionnalité de VB a un équivalent en C# et vice versa. Les deux langages référencent les mêmes classes de base du framework .NET pour étendre leurs fonctionnalités et peuvent référencer du code compilé écrit dans l'autre langage. Par conséquent, à quelques exceptions près, un programme écrit dans l'un ou l'autre langage peut être converti dans l'autre à l'aide d'un convertisseur syntaxique simple. De nombreux logiciels libres et commerciaux permettent d'effectuer cette tâche.

Exemples

Bonjour le monde!

Application Windows Forms

Nécessite un bouton nommé Bouton1.

, MsgBoxStyle.Information , " Hello world!" ) ' Afficher un message indiquant "Hello world ! " . End Sub End Class
Bonjour monde ! fenêtre

Application console

) ' Affiche " Hello world!" dans la console et passe à la ligne. Console.ReadKey ( ) ' L'utilisateur doit appuyer sur une 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.

). Speak ( TextBox1 . Text ) End Sub End Class

Application console

)Texte privé sous forme de chaîneSous- principal ()Console.Write ( " Entrez le texte à prononcer : " ) ' Dites "Entrez le texte à prononcer : "Texte = Console.ReadLine ( ) ' L'utilisateur doit saisir le texte à lire .Voice.Speak ( Texte ) ' Énoncer le texte saisi par l'utilisateur .Fin de la sous-routineModule final

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. .NET Framework 1.0 . Sa principale caractéristique est le code managé , qui contraste avec le Visual Basic classique.

2003 (VB 7.1)

Visual Basic .NET 2003 a été lancé avec .NET Framework 1.1 . Parmi les nouveautés figuraient la prise en charge du .NET Compact Framework et un assistant de mise à niveau VB amélioré . Des améliorations ont également été apportées aux performances et à la fiabilité de l'environnement de développement intégré .NET (notamment le compilateur en arrière-plan ) et de l'environnement d'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 dans chaque pays.

2005 (VB 8.0)

Après Visual Basic .NET 2003, Microsoft a abandonné le « .NET » du nom du produit, et a appelé la version suivante Visual Basic 2005.

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

  • Fonctionnalité Modifier et continuerespace de noms appelé « My », qui fournit :
    • Accès simplifié à certaines parties du .NET Framework qui, autrement, nécessiteraient un code conséquent, comme l'utilisation de plutôt que de
    • Classes générées dynamiquement (par exemple My.Forms )
  • Convertisseur VB vers VB.NET amélioré
  • Le mot-clé « using » simplifie l'utilisation des objets qui nécessitent le modèle Dispose pour libérer les ressources.
  • La fonctionnalité « Just My Code » masque (ignore) le code répétitif écrit par l'IDE Visual Studio .NET et le code de la bibliothèque système pendant le débogage.
  • Liaison des sources de données, simplifiant le développement client/serveur de bases de données

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

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

2008 (VB 9.0)

Visual Basic 9.0 a été lancé en même temps que .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 lancé Visual Basic 2010. Initialement prévu pour utiliser Dynamic Language Runtime (DLR) pour cette version , Microsoft a opté pour une stratégie de coévolution entre Visual Basic et son langage frère C# afin de rapprocher les deux langages. La capacité native de Visual Basic à interagir dynamiquement avec CLR et les objets COM a été améliorée pour fonctionner avec les langages dynamiques basés sur le DLR, tels qu'IronPython et IronRuby . Le compilateur Visual Basic a été optimisé pour inférer la continuation de ligne dans un ensemble de contextes courants, supprimant ainsi, dans de nombreux cas, le besoin du caractère 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 procédures en ligne, ainsi que des versions multilignes des lambdas Sub et Function

2012 (VB 11.0)

Visual Basic 2012 a été lancé en même temps que .NET Framework 4.5 . Les principales nouveautés de cette version sont les suivantes :Programmation asynchrone avec les instructions « async » et « await »

  • Itérateurs
  • Hiérarchie d'appel
  • 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. Il est également possible de créer des applications .NET Framework 4.5.2 en installant le 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 comprennent un nouvel opérateur « ?. » pour effectuer des vérifications de valeurs nulles en ligne, et une nouvelle fonctionnalité d’interpolation de chaînes 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. Il étend la prise en charge des nouvelles fonctionnalités du langage Visual Basic 15 avec les révisions 2017, 15.3, 15.5 et 15.8. Il introduit de nouvelles techniques de refactorisation permettant d’organiser le code source en une seule action.

    2019 (VB 16.x)

    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.

    Une mise à jour mineure a ensuite été publiée sous le nom de Visual Basic 16.9, ajoutant uniquement la possibilité d'utiliser des propriétés d'initialisation. Cette modification a été apportée afin de maintenir la compatibilité avec C# 9.0 , conformément à la stratégie de développement actuelle du langage.

    2022 (VB 17.0)

    Visual Basic 17.0 active l'attribut System.Runtime.CompilerServices.CallerArgumentExpressionAttribute.

    2026 (VB 17.13)

    Visual Basic 17.13 reconnaît la contrainte générique non gérée et l'attribut System.Runtime.CompilerServices.OverloadResolutionPriorityAttribute pour la résolution des méthodes.

    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 compilation .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 EDI 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