Blazor WebAssembly in .NET 8+ (What Changed & What to Use Now)
As teams upgrade to .NET 8 and beyond, several important changes landed in the Blazor project templates—especially for Blazor WebAssembly (WASM). These changes affect how new Blazor SPA projects should be created inside Visual Studio and via the dotnet CLI. This short article explains the updates and provides clear recommendations for starting new projects.
1. Why Blazor Templates Look “Different” in .NET 8
Microsoft simplified and consolidated Blazor templates starting in .NET 8. The goals were:
Reduce template duplication
Prepare for the new unified Blazor hosting model
Clearly separate client-side WASM from server-side interactivity
Because of this cleanup:
❌ Some older templates no longer support .NET 8
For example:
“Blazor WebAssembly App Empty”
“Blazor WebAssembly App”
These templates were created for .NET 7 and earlier. Visual Studio continues to display them for compatibility, but they only allow .NET 7 in the Framework dropdown.
Even if you install the .NET 8 SDK, these legacy templates will not offer .NET 8 as an option.
2. What Replaces the Old Templates in .NET 8
In .NET 8+, Blazor project creation revolves around two main templates:
✅ Blazor WebAssembly Standalone App
Client-only WASM SPA.
This is the direct successor to the traditional Blazor WebAssembly project for .NET 8+.
✅ Blazor Web App
The new unified server/WASM hosting model.
Use this when you need server rendering + WebAssembly interactivity.
🚫 ASP.NET Core Hosted option is removed for .NET 8
Hosted WASM scenarios are now done using the Blazor Web App template, not via the old checkbox.
3. Why the CLI (dotnet new) Always Works
Visual Studio’s project dialog may still list older templates, but the CLI always uses the latest template set from your installed SDK. That’s why running:
dotnet new blazorwasm -f net8.0
always creates a correct .NET 8 Blazor WebAssembly project—even if Visual Studio displays only .NET 7 for older templates.
Recommendation:
If you want absolute control, use the CLI.
If you want Visual Studio UI flow, choose Blazor WebAssembly Standalone App.
4. Recommended Templates for New Projects (.NET 8+)
✔ For pure client-side SPAs (S3 hosting, static sites, API Gateway, etc.)
Use:
Blazor WebAssembly Standalone App
or
CLI:
dotnet new blazorwasm -f net8.0
✔ For full-stack Blazor (server + WASM interactivity)
Use:
Blazor Web App
❌ Avoid for new projects
Blazor WebAssembly App Empty (.NET 7 only)
Blazor WebAssembly App (.NET 7 only)
These appear in Visual Studio for legacy reasons. They will not offer .NET 8.
5. If You Accidentially Create a .NET 7 Project
You can upgrade manually:
<TargetFramework>net8.0</TargetFramework>
in the project’s .csproj.
It will compile under .NET 8, but you won’t benefit from the modern template scaffolding.
Prefer creating new .NET 8 apps instead.
6. Summary for Your Team
Visual Studio shows some legacy Blazor WASM templates that are locked to .NET 7.
.NET 8 introduces new Blazor templates, especially Blazor WebAssembly Standalone App and Blazor Web App.
For .NET 8+ client-side SPAs, use Blazor WebAssembly Standalone App or dotnet new blazorwasm -f net8.0.
Avoid starting new work from old templates like “Blazor WebAssembly App Empty.”
The CLI always reflects the latest template set and is the most reliable way to create .NET 8 Blazor projects.
This ensures new Blazor projects are aligned with Microsoft’s current guidance and avoid legacy patterns.