VB.NET Documentation

Introduction to Visual Basic .NET

Visual Basic .NET (VB.NET) is a powerful, object-oriented programming language developed by Microsoft. It is part of the .NET Framework, allowing developers to build a wide range of applications, from desktop and web applications to mobile services and cloud-based solutions.

VB.NET combines the ease of use and rapid application development (RAD) capabilities of Visual Basic with the robust features and scalability of the .NET platform. It offers a familiar syntax for those coming from a Visual Basic background while providing access to the full power of the Common Language Runtime (CLR) and the .NET class library.

Getting Started with VB.NET

To begin developing with VB.NET, you'll need to install Visual Studio, Microsoft's integrated development environment (IDE).

  1. Download and Install Visual Studio: Visit the official Visual Studio website and download the Community, Professional, or Enterprise edition.
  2. Create a New Project: Once Visual Studio is installed, select "Create a new project" and choose a VB.NET template (e.g., "Windows Forms App (.NET Framework)" or "Console App (.NET Core)").
  3. Write Your First Code: Familiarize yourself with the IDE, the Solution Explorer, and the code editor.

Here's a simple "Hello, World!" console application:

Module Module1
    Sub Main()
        Console.WriteLine("Hello, World!")
        Console.ReadLine() ' Keep the console window open
    End Sub
End Module

Core Concepts

Variables and Data Types

Variables are used to store data. VB.NET is a strongly-typed language, meaning you must declare the data type of a variable.

Dim message As String = "Welcome to VB.NET"
Dim count As Integer = 10
Dim price As Decimal = 19.99
Dim isActive As Boolean = True

Common data types include:

Operators

Operators are used to perform operations on variables and values.

Control Flow

Control flow statements determine the order in which code is executed.

' If statement example
Dim score As Integer = 85
If score >= 60 Then
    Console.WriteLine("Pass")
Else
    Console.WriteLine("Fail")
End If

' For loop example
For i As Integer = 1 To 5
    Console.WriteLine($"Iteration: {i}")
Next

Procedures and Functions

Procedures (Sub) perform an action and do not return a value. Functions (Function) perform an action and return a value.

' Procedure
Sub Greet(name As String)
    Console.WriteLine($"Hello, {name}!")
End Sub

' Function
Function Add(a As Integer, b As Integer) As Integer
    Return a + b
End Function

' Calling them
Greet("Alice")
Dim sum As Integer = Add(5, 3)
Console.WriteLine($"The sum is: {sum}")

Object-Oriented Programming (OOP)

VB.NET fully supports OOP principles:

Public Class Dog
    Public Property Name As String
    Public Sub Bark()
        Console.WriteLine($"{Name} says Woof!")
    End Sub
End Class

' Using the class
Dim myDog As New Dog()
myDog.Name = "Buddy"
myDog.Bark()

Advanced Topics

Error Handling

VB.NET uses structured exception handling with Try...Catch...Finally blocks to manage runtime errors.

Try
    ' Code that might throw an exception
    Dim num1 As Integer = Integer.Parse(Console.ReadLine())
    Dim num2 As Integer = Integer.Parse(Console.ReadLine())
    Dim result As Integer = num1 / num2
    Console.WriteLine($"Result: {result}")
Catch ex As DivideByZeroException
    Console.WriteLine("Error: Cannot divide by zero.")
Catch ex As FormatException
    Console.WriteLine("Error: Invalid input format.")
Catch ex As Exception
    Console.WriteLine($"An unexpected error occurred: {ex.Message}")
Finally
    ' Code that always executes
    Console.WriteLine("Operation completed (or attempted).")
End Try

Generics

Generics provide a way to create classes, interfaces, methods, and delegates that operate on types specified as parameters. This enhances type safety and code reusability.

' Generic List
Dim numbers As New System.Collections.Generic.List(Of Integer)
numbers.Add(10)
numbers.Add(20)
' numbers.Add("hello") ' This would cause a compile-time error

For Each num As Integer In numbers
    Console.WriteLine(num)
Next

Asynchronous Programming

Async and Await keywords enable asynchronous operations, preventing UI freezes and improving application responsiveness, especially for I/O-bound tasks.

Public Async Function DownloadDataAsync(url As String) As Task(Of String)
    Using client As New System.Net.Http.HttpClient()
        Dim response As HttpResponseMessage = Await client.GetAsync(url)
        response.EnsureSuccessStatusCode()
        Dim responseBody As String = Await response.Content.ReadAsStringAsync()
        Return responseBody
    End Using
End Function

' Calling the async function
Public Async Sub ProcessDownload()
    Dim data = Await DownloadDataAsync("http://example.com")
    Console.WriteLine("Download complete.")
    ' Process data
End Sub

Language Integrated Query (LINQ)

LINQ allows you to write queries directly in your code against data sources like collections, databases, and XML documents using a consistent syntax.

Dim numbers = {5, 10, 8, 3, 6, 12}

' LINQ query to find numbers greater than 7
Dim query = From num In numbers
            Where num > 7
            Order By num
            Select num

Console.WriteLine("Numbers greater than 7:")
For Each n As Integer In query
    Console.Write($"{n} ")
Next
Console.WriteLine()

API Reference

The .NET Framework and .NET Core provide a vast collection of classes and methods for various tasks. Key namespaces include:

Explore the comprehensive API documentation on the official Microsoft Docs site for detailed information on classes, methods, and properties.

Tutorials and Examples

Microsoft Learn and other community resources offer numerous tutorials, guides, and practical examples for building various types of applications with VB.NET. You can find resources for:

Start with simple projects and gradually explore more complex features as you gain confidence.