The Future of Visual Basic
Prerequisites: Mixing Visual Basic and C#
Microsoft's language strategy
In 2020, Microsoft announced that Visual Basic would be supported on modern .NET (Windows Forms, WPF, console apps, and libraries) but would not evolve as a language the way C# and F# do. In practice:
- VB receives compatibility updates so it can keep consuming new .NET libraries, and the compiler, runtime, and Visual Studio support continue.
- Major new language features (like C#'s records, pattern matching, or primary constructors) are not being added.
- New .NET workloads — Blazor, .NET MAUI, and most cloud and AI templates — are C#-first, often without VB templates.
What that means for you
- Existing VB code is safe. A well-structured VB.NET application on modern .NET is supported, fast, and maintainable for many years.
- Your skills transfer. Everything about .NET — the class library, LINQ, async, testing, deployment — is identical in C#. Learning C# is mostly learning new syntax for concepts you already know.
- Choose per project. Maintaining or extending VB applications, writing Office-adjacent tools, or teaching beginners: VB is a fine choice. Starting a large new system or a web/mobile/cloud app: C# is usually the better long-term bet.
A quick VB-to-C# phrasebook
| Visual Basic | C# |
|---|---|
Dim x As Integer = 5 |
int x = 5; |
If a AndAlso b Then ... End If |
if (a && b) { ... } |
For i = 0 To n - 1 ... Next |
for (int i = 0; i < n; i++) { ... } |
Function F(x As Integer) As Integer |
int F(int x) |
Sub S() |
void S() |
Nothing |
null (or default) |
Me / MyBase |
this / base |
Shared |
static |
Inherits / Implements |
: |
Function(x) x * 2 |
x => x * 2 |
a \ b, a Mod b |
a / b (integers), a % b |
"a" & "b" |
"a" + "b" |
What's next
Try the Advanced Projects, then read the final lesson for a summary and ideas for where to go from here.