Visual Basic .NET (VB.NET) is a multi-paradigm, object-oriented programming language, implemented on the .NET Framework. Microsoft launched VB.NET in 2002 as the successor to its original Visual Basic language. Although the ".NET" portion of the name was dropped in 2005, this article uses "Visual Basic [.NET]" to refer to all Visual Basic languages releases since 2002, in order to distinguish between them and the classic Visual Basic. Along with Visual C#, it is one of the two main languages targeting the .NET framework.
Microsoft's integrated development environment (IDE) for developing in Visual Basic .NET language is Visual Studio. Most of Visual Studio editions are commercial; the only exceptions are Visual Studio Express and Visual Studio Community, which are freeware. In addition .NET Framework SDK includes a freeware command-line compiler called vbc.exe. Mono also includes a command-line VB.NET compiler.
VB.NET uses statements to specify actions. The most common statement is an expression statement, consisting of an expression to be evaluated, on a single line. As part of that evaluation, functions or subroutines may be called and variables may be assigned new values. To modify the normal sequential execution of statements, VB.NET provides several control-flow statements identified by reserved keywords. Structured programming is supported by several constructs including two conditional execution constructs (If … Then … Else … End If and Select Case … Case … End Select) and three iterative execution (loop) constructs (Do … Loop, For … To, and For Each in … Next). The For … To statement has separate initialisation and testing sections, both of which must be present. The For Each … Next statement steps through each value in a list. In addition, in Visual Basic .NET 2003, Microsoft introduced the concept of iterator functions that allow developers to define custom iterators, which enable iteration over a collection of objects (e.g., an array or hash) by using the For Each keyword.
A new asynchronous function, Async, was introduced in VB.NET 2012. This is used to define a scope for asynchronous operations. While