Blazor WebAssembly 3.2.0 now available

Daniel Roth

I’m thrilled to announce that Blazor WebAssembly is now officially released. This is a fully-featured and supported release of Blazor WebAssembly that is ready for production use. Full stack web development with .NET is now here!

Get started

Getting started with Blazor WebAssembly is easy: simply go to https://blazor.net and install the latest .NET Core SDK (3.1.300 or later), which includes everything you need to build and run Blazor WebAssembly apps.

You can then create and run your first Blazor WebAssembly app by running:

dotnet new blazorwasm -o BlazorApp1
cd BlazorApp1
dotnet run

Browse to https://localhost:5001 and voilà! You’ve just built and run your first Blazor WebAssembly app!

Running Blazor WebAssembly app

To maximize your Blazor productivity, be sure to install a supported version of Visual Studio for your platform of choice:

You can find additional docs and samples on https://blazor.net.

Upgrade an existing project

If you already have an existing Blazor WebAssembly project, you can upgrade it from the 3.2.0 Release Candidate to the official 3.2.0 release by doing the following:

  • Update all Microsoft.AspNetCore.Components.WebAssembly.* and System.Net.Http.Json package references to version 3.2.0.

That’s it, you’re all set!

What is Blazor WebAssembly?

In case this is your first time learning about Blazor, let me introduce you to what Blazor WebAssembly is all about.

Blazor is an open source and cross-platform web UI framework for building single-page apps using .NET and C# instead of JavaScript. Blazor is based on a powerful and flexible component model for building rich interactive web UI. You implement Blazor UI components using a combination of .NET code and Razor syntax: an elegant melding of HTML and C#. Blazor components can seamlessly handle UI events, bind to user input, and efficiently render UI updates.

Blazor components can then be hosted in different ways to create your web app. The first supported way is called Blazor Server. In a Blazor Server app, the components run on the server using .NET Core. All UI interactions and updates are handled using a real-time WebSocket connection with the browser. Blazor Server apps are fast to load and simple to implement. Support for Blazor Server is available with .NET Core 3.1 LTS.

Blazor WebAssembly is now the second supported way to host your Blazor components: client-side in the browser using a WebAssembly-based .NET runtime. Blazor WebAssembly includes a proper .NET runtime implemented in WebAssembly, a standardized bytecode for the web. This .NET runtime is downloaded with your Blazor WebAssembly app and enables running normal .NET code directly in the browser. No plugins or code transpilation are required. Blazor WebAssembly works with all modern web browsers, both desktop and mobile. Similar to JavaScript, Blazor WebAssembly apps run securely on the user’s device from within the browser’s security sandbox. These apps can be deployed as completely standalone static sites without any .NET server component at all, or they can be paired with ASP.NET Core to enable full stack web development with .NET, where code can be effortlessly shared with the client and server.

Blazor WebAssembly comes packed with features to keep you productive on your next web app project:

Blazor in action

Blazor WebAssembly has everything you need to build fully-featured production web apps. To see all these Blazor WebAssembly features in action, checkout Steve Sanderson’s on-demand BUILD session (link should be live after 12pm PT): Modern Web UI with Blazor WebAssembly.

Ready-made components

Of course, any web app is going to need beautiful and feature rich components. A variety of Blazor UI components are available from our fantastic partners that work great in any Blazor app, including Blazor WebAssembly apps:

Open-source community

Blazor also has a thriving open-source community and ecosystem. Members of the community, (folks just like you!) have built lots of great component libraries, interop libraries, test frameworks, and more, and then made them freely available for you to use. Some great examples include:

You can find these community projects and many others listed on the Awesome Blazor GitHub repo.

LTS or Current?

Blazor WebAssembly 3.2.0 is a fully supported release under the .NET Core Support Policy. Since this is the first release of Blazor WebAssembly, it is a Current release, not an LTS release; it does not the inherit LTS status of .NET Core 3.1. This means that once Blazor WebAssembly ships with .NET 5 later this year, you will need to upgrade to .NET 5 within three months to stay in support. We expect Blazor in .NET 5 to be a highly compatible release.

What’s next?

Now that we have shipped Blazor WebAssembly, we are shifting our attention to .NET 5. Work has already started on making Blazor WebAssembly available with .NET 5, which we expect to complete for preview next month.

We also have a number of Blazor features and improvements that we are investigating for the .NET 5 & 6 wave. You can see the list of core deliverables that we are considering in the Blazor Roadmap for .NET 5 issue on GitHub. Please note that we consider this list to be highly aspirational. While we hope to deliver all of the improvements listed, there are still many unknown and plans will certainly change as we go. We also expect that there will be plenty of smaller improvements that we will deliver as well.

We are also continuing to collaborate with our friends on the Xamarin team on experimental support for building native UI using Blazor through the Mobile Blazor Bindings project. This includes some early efforts to explore building hybrid UI for native apps, which we hope to share more about soon.

Thank you

We sincerely appreciate all the enthusiastic support we have received from the Blazor community as we’ve worked to make the release a reality. The number of Blazor articles, blog posts, docs, sample apps, libraries, books, videos, presentations, workshops, courses, meetups, feature suggestions, and feedback issues that have been contributed by the community to the Blazor ecosystem even while it was still in preview has been truly outstanding. To everyone who helped make this release possible, thank you! We couldn’t have done it without you.

Try Blazor today

We hope you enjoy this release of Blazor WebAssembly. Give Blazor a try today by going to https://blazor.net. We look forward to seeing what you create with it.

As always, if you have any questions of feedback about Blazor please let us know by filing an issue on GitHub.

164 comments

Discussion is closed. Login to edit/delete existing comments.

  • Ross 0

    Congratulations! About this time a year ago, I started researching the various current web app technologies (Angular, React, Vue, and Blazor) to decide which one to use for a brand new large project we’ll be working on over the coming years. I decided to take a punt and go with Blazor. And I’m glad I did – it’s been a delight to work with. In saying that, some of those items on your .NET 5 Blazor roadmap would go down nicely! 🙂

  • FillTable Admin 0

    Congrats!!!

  • Dhiogo Acioli 0

    I upgraded VS to version 16.6, but I can’t see blazor 3.2.0 available to me, only the 3.1.5 template appears. I’ve tried several things, but nothing changes.

    • Daniel RothMicrosoft employee 0

      Hi Dhiogo. That’s just the template source version, which doesn’t reflect the Blazor WebAssembly version. If you create the template, you should see 3.2.0 package versions in the generated project. Sorry about the confusion!

      • Dhiogo Acioli 0

        ok, I got it. I have one more question: I started with the ‘server side’ template, because I knew it was safer because the user could manipulate the data or the business rules. Has this situation already changed for the WebAssembly version?

        • Carlos Hevia Colinas 0

          WebAssembly it’s similar an Angular App. You must check your business logic on your Rest API Service

          • Dhiogo Acioli 0

            I gave up using API after I got to know blazor. you can keep the context in memory for the entire user session, avoiding repeated access to the database

        • Ramzi DEBAB 0

          Hi Dhiogo,
          I always considered a frontend code just responsible for the UI. The business logic has to be separated and executed in the backend. That’s the best practice for me.

  • Igor Nesterov 0

    Great News!
    So, what about bug with publishing satellite libraries? Has it fixed in release?

    Can we show somewhere which difference between release and RC?

    update: Publishing works fine, thanks:)

  • Carlos Hevia Colinas 0

    Congrats Daniel, I love WebAssembly.

    By the way, I have been troubling with Location. I’m trying to use a common resx file (sharedstrings.xx.resx) for all my pages. But it does not work. I did same on MVC projects.

    The location just works if you use a resx file by page (Index.resx, Index.xx.resx, Counter.resx, etc.)

    Is this a limitation on Blazor?

    • Daniel RothMicrosoft employee 0

      Hi Carlos. Using a common resx file for the all your pages should work fine. For example, https://github.com/SteveSandersonMS/CarChecker does this. Take a look and see if that helps. If you’d like some help setting this up, go ahead and open a GitHub issue and we’ll do our best to get your unblocked.

      • Carlos Hevia Colinas 0

        Thanks for your time Daniel. I’ll check. 🙂

  • Tony Henrique 0

    Blazor is very cool. I have done a project with it and it is awesome! This project contains both .cshtml razor and .razor blazor files.

  • Lakshman Peethani 0

    Congrats, have been waiting and super excited to build Blazor based solution to our customers.

  • Fabela, Jose 0

    Thanks Daniel,

    I have been working for some months in a project with Blazor WebAssembly and I have finished it, but haven’t been able to make it works in my local IIS on windows 10, the antivirus is blocking the dll files when i open the site, I changed the files extension but the antivirus blocks the files, is there a workarround to solve this issue? I have created a new project with the new template in VS 2019 16.6 and i have published it locally and throws the same error, Could you please give me a tip to solve it?

    • Daniel RothMicrosoft employee 0

      Hi Jose. I’m sorry to hear your having issues with antivirus software blocking your site! Could you please open a GitHub issue with details on your specific antivirus software so that we can take a look?

  • Craig Johnson 0

    Blazor is absolutely fantastic! Well done. ON TO .NET 5 AND AOT!!!

  • Roshawn Dawson 0

    Glad to hear that Blazor is officially supported. Will give it a go sometime in the near future.

    Sucks that VB.NET gets no Blazor love, though. 🙁

    • Daniel RothMicrosoft employee 0

      Hi Roshawn. You can use VB code from a Blazor app by factoring the code into separate libraries that you reference. It’s all .NET assemblies after the app is built. The only constraint is that Razor is C# based, so the Razor components need to be built in a C# project.

Feedback usabilla icon