software.wikisort.org - Langage_de_programmation

Search / Calendar

Visual Basic .NET est un langage de programmation à la syntaxe similaire à celle de Visual Basic 6.

Visual Basic (Visual Studio)

Date de première version 2001
Paradigme Orienté objet, Structuré et Impératif
Auteur Microsoft
Dernière version VB 16.0 (2019)
Typage Statique, Fort et nominatif
Dialectes VB7 (VS2003), VB8 (VS2005), VB9 (VS2008), VB10 (VS2010)
Influencé par Visual Basic, C#
Implémentations .NET Framework, Mono
Licence Roslyn compiler, Apache License 2.0[1]
Site web docs.microsoft.com/en-us/dotnet/visual-basic et docs.microsoft.com/ja-jp/dotnet/visual-basic

VB.NET permet de développer en .NET via Visual Studio, sur les systèmes d'exploitation Windows (98, 2000, XP, Vista, 7, 8, 8.1 et 10). Comme tout autre langage de la plateforme .NET, VB.NET est compilé vers le langage intermédiaire CIL.


Les IDE (environnements de développement)


Capture d'écran de MonoDevelop
Capture d'écran de MonoDevelop

L'IDE commun et incontournable de tous les langages .NET est Visual Studio. Celui-ci est payant (la licence est propriétaire) mais dispose d'une version gratuite pour les développeurs et petites sociétés (CA inférieur à un million de dollars) nommée Visual Studio Community.

Une autre version gratuite existe, limitée à un seul langage : Visual Studio Express.

D'autres IDE gratuits existent, comme SharpDevelop ou MonoDevelop, mais ceux-ci sont moins évolués que Visual Studio.


Versions



Évolutions : de VB6 à VB7 (non exhaustif)


Qu'est-ce qui différencie VB6 (Visual Basic 6) par rapport à VB7 (Visual Studio 2003) ? :


Évolutions : VB7 à VB8 (non exhaustif)


Quelques nouveautés ont fait leur apparition entre VB7 et VB8, mais c'est surtout le passage du framework .NET 1.1 au 2.0 qui marque cette évolution.

En voici tout de même un résumé :


Évolutions : VB8 à VB9 (non exhaustif)


VB9 a évidemment implémenté toutes les nouvelles fonctionnalités de C#, ainsi que quelques autres :


Évolutions : VB9 à VB10


VB10 (aussi appelé VBx) marque un tournant majeur dans l'évolution de VB. Outre le fait qu'il sera intégré dans le Framework 4, il devrait surtout combler totalement son "retard" par rapport à C# sur certains points (tout comme C# comblera son retard envers VB), vu que la "coévolution" des langages C# et VB.NET a été officiellement annoncée. Cela assure non seulement un futur stable à VB.NET, qui ne pourra pas être délaissé par Microsoft mais aussi une garantie que tout ce qui est faisable en C# le sera toujours aussi sous VB.NET (même si c'est d'une autre façon).

Les fonctionnalités prévues pour VBx :


Quelques différences entre C# et VB.NET (non exhaustif)


Voici les différences les plus flagrantes entre VB.NET et C# (VB.NET et C# évoluant, les éléments de cette liste peuvent être obsolètes):

Une liste des différences (en 2005) entre C# et VB.NET plus complète existe ici.


Quelques exemples de code en VB.NET



Hello World en VB.NET (Mode Console)


Public Module HelloWorld

    ' Les lignes qui suivent sont toutes facultatives, mais conseillées
    ' Elles sont automatiquement transformées en documentation
    ''' <summary>Point d'entrée du programme</summary>
    ''' <param name="Args">Les arguments en ligne de commande passé au programme</param>
    Public Sub Main(ByVal Args As String())

        ' Écrire dans la console
        Console.WriteLine("Hello World!")

        ' Attendre que l'utilisateur appuie sur une touche
        Console.ReadKey(False)

    End Sub

End Module

Hello World en VB.NET (Mode Windows Forms)


Public Class Form1
    Public Sub AfficheMessage()
        '1ère solution (Fonctionne aussi en VBScript)
        MsgBox("Hello World!")
        '2ème solution
        MessageBox.Show("Hello World!")
        'Autre design 
        MsgBox("Hello World", MsgBoxStyle.Critical, "Titre, hello world")
        'OU
        MsgBox("Hello World", MsgBoxStyle.Information, "Titre, hello world")
    End Sub
End Class

Boucles et conditions


'
' Une simple condition IF
'
If XCondition = 3 Then
   ' XCondition vaut 3
ElseIf YCondition <> 4 Then
   ' XCondition ne vaut pas 3
   ' YCondition ne vaut pas 4
ElseIf ZCondition Is AnotherObject
   ' XCondition ne vaut pas 3
   ' YCondition vaut 4
   ' ZCondition et AnotherObject renvoient vers le même objet
Else 
   ' Aucune des conditions précédentes n'a été rencontrée
End If

'
' Un Select Case optimisé (Switch en C#)
'
Select Case X
   Case 0
      ' X = 0
   Case 1
      ' X = 1
   Case 2
      ' X = 2
   Case Else
      ' X <> 1
End select

'
' Un SELECT CASE translaté en IF/ELSE IF à la compilation
'
Select Case Y
   Case Is < 3
     ' Y < 3
   Case 3
     ' Y = 3
   Case Else
     ' Y > 3 dans ce cas
End Case

'
' Boucle WHILE
'
While ImTrue
   ' ImTrue est vrai
   ' Ici on change la valeur de ImTrue
   ImTrue = False
End While
' ImTrue n'est plus vrai

'
' Boucle Do...Loop
'
ImFalse = False
Do
   ' Aucune condition n'a été appliquée si c'est la première fois
   ' Sinon, c'est que ImFalse n'est pas faux 
   ' Dans cet exemple, le code n'est pas relancé une {{2e}} fois
Loop Until ImFalse = False
' ImFalse est bien faux

'
' Boucles For et For Each
'
For X As Integer = 0 to 9
   ' Ce code sera exécuté 10 fois
Next

For X As Integer = 10 To 1 Step -1
   ' Ce code sera exécuté 10 fois en sens inverse
Next

For Each Element As ElementType In Array
   ' Ce code sera exécuté autant de fois qu'il y a d'éléments de type ElementType dans Array
Next

Les tableaux


'Créer un tableau de texte, vide et de taille infini
Dim Tableau() As String
'Créer un tableau de nombres naturels, vide et de taille infini
Dim Tableau() As Integer
'Créer un tableau de nombres réels, vide et de taille infini
Dim Tableau() As Double

'Assigne une valeur à la première case du tableau 
Tableau(0) = "Case de tableau"
Tableau(0) = 1
Tableau(0) = 1.5

'Créer un tableau de texte de deux lignes et deux colonnes de texte et vide
Dim Tableau(2,2) As String
'Créer un tableau de texte de deux colonnes et une ligne comportant "Bonjour" et "Au revoir"
Dim Tableau() As String = {"Bonjour", "Au revoir"}
'Créer un tableau de texte de deux colonnes et deux lignes
Dim Tableau(,) As String = {{"Colonne 1, ligne 1","Colonne 2, ligne 1"}, {"Colonne 1, ligne 2", "Colonne 2, ligne 2"}}

''Créer un tableau puis le redimensionner en sauvegardant les valeurs
'Créer un tableau de dix lignes et dix colonnes
Dim Tableau(9,9) As String
'Redimensionner en vingt lignes et vingt colonnes en préservant les valeurs
Redim Preserve Tableau(19,19)

'Effacer toutes les valeurs du tableau en récupérant l'espace
Erase Tableau
'Réinitialisation du tableau Tableau à partir de l'élément 1 et pour 5 éléments
Array.Clear(Tableau, 1, 5)

Gestion des exceptions


VB.NET possède les instructions try et catch permettant de gérer les exceptions (comportement non attendu des instructions du programme).

Exemples :

Try
    My.Computer.FileSystem.FileReadBytes("C:\Chemin\Fichier.ext")
Catch Ex as FileNotFoundException 'Pour l'erreur Fichier introuvable
    MessageBox.Show("Impossible trouver le fichier", "Erreur")
Catch Ex as Exception 'Pour les autres erreurs.
    MessageBox.Show("Une erreur inconnue s'est produite. Erreur renvoyée: " & ex.Message, "Erreur")
End Try
'Remarquez que ex récupère les données
'de l'erreur, permettant de les traiter.
'Il y a d'autres options que Message. Consultez la documentation Visual Basic .NET pour en savoir plus.

Try
    SomeUnknownCOMObject.DoSomething()
Catch Ex as COMExcpetion When Ex.ErrorCode = 4
    ' The object was of the excpected type but he throwned
    ' an error with HRESULT 4, which is possible as the 
    ' documentation of the object says (it's an exemple).
    MessageBox.Show("L'objet n'était pas prêt")
    ' Throw some new Application-Specific error.
    Throw new Exception ("The object was not ready.")
Catch Ex as Exception
    ' Display some message
    MessageBox.Show("Une erreur inconnue s'est produite", "Erreur")
    ' But throw the (same) exception
    Throw
Finally
    ' Quoi qu'il se passe, on fait cela
    ' Même si une erreur est survenue, ce code sera lancé
    Try : SomeUnkwnowCOMOBject.DoSomethingAnyWay() : Catch ex as Exception : End Try
End Try

Exemple d'utilisation de LINQ


' Retourne un énumérateur qui renvoie tous les noms des fenêtres enfants qui sont des éditeurs de texte
' Visual Studio 2008 trouve le type de la variable automatiquement, similaire au "var" du C#
Dim AllText = From CW in MyFormInstance.ChildWindows
  Where CW.GetType() is GetType(MyTextEditorWindow)
  Select CW.Text

' Crée un objet XML (un Document XML, pas une chaine de caractère)
' Visual Studio 2008 trouve le type de la variable automatiquement, similaire au "var" du C#
Dim XMLDoc = _
    <root><% For Each Item in Items %>
        <item name="<%= Item.Name %>" />
    <% Next %></root>
' Sauvegarde dans un fichier le document XML
XMLDoc.Save("FileName.xml")

Exemple d'un événement simple


' Déclaration des objets (fonctions, événements, ...) pour la fenêtre Form1
Public Class Form1

    ' Lorsque l'utilisateur clique sur l'objet Button1
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Me.Close() ' On ferme la fenêtre parente (grâce à Me) donc l'application
    End Sub
End Class

Exemple d'un code appelant une fonction


Public Class Form1
    ' Création de la fonction Quitter avec un Private Sub
    Private Sub Quitter()
        Me.Close()
    End Sub

    ' Lorsque l'utilisateur clique sur l'objet Button1
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Call Quitter() ' On appelle Private Sub Quitter()
    End Sub

    ' Lorsque l'utilisateur clique sur l'objet Button2
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Call Quitter() ' L'avantage de ce code, c'est qu'on peut appeler Quitter() autant de fois que l'on souhaite
    End Sub

End Class

Identité visuelle



Voir aussi


Sur les autres projets Wikimedia :


Articles connexes



Notes et références



Liens externes



На других языках


- [fr] Visual Basic .NET

[ru] Visual Basic .NET

Visual Basic .NET (VB.NET) — объектно-ориентированный язык программирования, который можно рассматривать как очередной виток эволюции Visual Basic (VB), реализованный на платформе .NET Framework. VB.NET не имеет обратной совместимости с более ранней версией (Visual Basic 6.0). Развитие проектов старых версий (*.vbp) возможно только после предварительной конвертации их в формат VB.NET специальным мастером (Migration Wizard); однако, как правило, после конвертации требуется существенная ручная доработка текстов. 11 марта 2020 г. Microsoft объявила о прекращении развития языка VB.NET[2].



Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.org внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2025
WikiSort.org - проект по пересортировке и дополнению контента Википедии