# Visual Basic .NET

Visual Basic .NET (VB.NET) is de opvolger van Visual Basic en onderdeel van het .NET-framework van Microsoft.

## Beschrijving

Visual Basic .NET versie 7.0 werd geïntroduceerd in 2002 als opvolger van de oorspronkelijke Visual Basic-taal. Naast C# is het een van de twee belangrijkste programmeertalen binnen het .NET-framework.
VB.NET 7 en latere versies hebben een grote oppervlakkige gelijkenis met de zojuist genoemde eerdere Visual Basic's, maar zijn op een totaal nieuwe ondergrond gebaseerd: het .NET-framework. Hiermee wordt Visual Basic een door en door objectgeoriënteerde taal, zeer vergelijkbaar met C# of Java. Daarnaast verandert het karakter van de naam Visual Basic enigszins: die slaat nu specifiek op de programmeertaal, omdat de ondersteunende softwarebibliotheken en de runtime-ondersteuning ook worden gebruikt door alle andere .NET-talen, zoals C#. Ook heeft de taal een openbare specificatie.
Zoals de runtime van Visual Basic 6 is ook de .NET-runtime (beter bekend als het .NET-framework) vrij verkrijgbaar als download op de website van Microsoft, en wordt daarnaast meegeleverd met automatische Windows-updates vanaf Windows Vista en nieuwer.

## Ontwikkelomgeving

De integrated development environment (IDE) of ontwikkelomgeving van Microsoft waarmee men software kan ontwikkelen in VB.NET heet Visual Studio. De meeste versies zijn commercieel verkrijgbaar, met uitzondering van Visual Studio Express en Visual Studio Community.

## Versies

De verschillende versies zijn:
| Versie | Naam | .NET-versie | Datum verschijning |
| VB 7.0 | Visual Basic 7 | .NET 1.0 | 16 januari 2002 |
| VB 7.1 | Visual Basic 7 | .NET 1.1 | 24 april 2003 |
| VB 8 | Visual Basic 8 | .NET 2.0 | 7 november 2005 |
| VB 9 | Visual Basic 9 | .NET 3.5 | 19 november 2007 |
| VB 10 | Visual Basic 2010 | .NET 4 | 12 april 2010 |
| VB 11 | Visual Basic 2012 | .NET 4.5 | 15 augustus 2012 |
| VB 12 | Visual Basic 2013 | .NET 4.5.1 | 12 september 2012 |
| VB 14 | Visual Basic 2015 | .NET 4.6.1 | 12 juli 2015 |
| VB 15 | Visual Basic 2017 | .NET 4.7.2 | 7 maart 2017 |
| VB 16 | Visual Basic 2019 | .NET Core | 2 april 2019 |

### Versiebeschrijving
#### Visual Basic 7

    de eerste versie die is gebaseerd op het .NET-framework 1.0. De meest belangrijke nieuwe functie is managed code.

#### Visual Basic 8

    is een aanpassing van versie 7 aan de innovaties in .NET 2.0, voornamelijk generics.

#### Visual Basic 9

    introduceert LINQ, een in de programmeertaal ingebouwde vorm van SQL die een uniforme omgang mogelijk maakt van relationele data, onafhankelijk van hun representatie (bijvoorbeeld in tabellen in een relationele database, in XML-documenten, of in collectie-objecten in het geheugen). Dit is een stap in de richting van dynamisch getypeerde, functionele programmeertalen zoals JavaScript en Lisp.

#### Visual Basic 2010

    gaat verder op dezelfde weg en ondersteunt bijvoorbeeld dynamisch getypeerde objecten en een groter repertoire aan anonieme functies (lambda-expressies).

#### Visual Basic 2012

    introduceert asynchrone programmeerinstructies als 'async' en 'await', iterators, call hiërarchie en het 'Global'-sleutelwoord in namespaces.

#### Visual Basic 2013

    met deze versie kan men ook .NET Framework 4.5.2 applicaties ontwikkelen door het installeren van het Developer Pack.

#### Visual Basic 2015

    introduceert taalfuncties zoals de '?'-operator voor controle op nulls en een nieuwe string interpolatiefunctie voor het formatteren van inline tekenreeksen.

#### Visual Basic 2017

    voegt ondersteuning toe voor de nieuwe VB 15-taal, en introduceert nieuwe refactors voor het organiseren van programmacode.

#### Visual Basic 2019

    is de eerste versie van VB.NET die is gebaseerd op de nieuwe .NET Core.

## Voorbeeldcode

De volgende voorbeeldcode is een eenvoudig programma in VB.NET:
De tekst "Hello, World!" wordt uitgeschreven binnen een command-line-interface. In plaats van Console.WriteLine kan men ook MsgBox gebruiken, waarmee de tekst in een dialoogvenster wordt getoond, in plaats van de command-line.