Blazor WebAssembly 3.2.0 now available

Daniel Roth

Daniel

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.

162 comments

Comments are closed. Login to edit/delete your existing comments

  • Avatar
    Gert-Jan van der Kamp

    Congrats to the team! Also to my team as we betted on Blazor big time lol. We went all in and L O V E it. This is gonna huge.

  • Avatar
    Jaime Wyant

    One of the big turn offs for blazor client was that I could not debug directly in visual studio. Can I do this now?

    • Daniel Roth
      Daniel RothMicrosoft employee

      Hi Jaime. Yes, we now support debugging Blazor WebAssembly from Visual Studio and Visual Studio Code. Debugging support for Visual Studio for Mac is also being worked on.

        • Daniel Roth
          Daniel RothMicrosoft employee

          Hi Rubeesh.

          It should – we’ve been showing it working live at the BUILD conference.

          Some things to verify:

          • Try with a new default Blazor WebAssembly 3.2 project
          • Make sure you are using Visual Studio 16.6, the latest stable Visual Studio release
          • Make sure you’re using .NET Core SDK 3.1.300
          • Make sure you’re using a Chromium based browser: latest Edge or Chrome

          I hope this helps!

          It can also take some time for the browser to startup, the app, to load, and the breakpoints to bind.

          • Diego Gastón González
            Diego Gastón González

            Hi Daniel, with Chrome its works ok, and as you said, can take some time to startup and bind the breakpoints, but if you run your app with Firefox, the message “the breakpoint will not currently be hit” continues displaying. Is there a way to solve this issue?. I hope your comments. Thank you.

  • Avatar
    Willian Gruber

    @Daniel Roth why you never mention non-paid libraries and frameworks like Blazorise, MatBlazor, and others, or other interesting libraries just like https://github.com/AdrienTorris/awesome-blazor compiles them in a list? The community of those projects are largely active and would surely increase popularity of Blazor if people see other free options.

    • Avatar
      Jaime Wyant

      Cool list, thanks for posting. I had seen MatBlazor but was not aware of the others.

    • Daniel Roth
      Daniel RothMicrosoft employee

      Hi Willian. Good point! I’ve been linking to the Awesome Blazor repo because I felt there were too many open source Blazor projects to list, but I do plan to highlight a bunch of them at BUILD, and I think it’s reasonable to also link to some of them directly here. I’ll work on an update.

  • Avatar
    Venkatesh Ramakrishnan

    Is AOT is still in the roadmap for .NET 5 timeframe?

  • Avatar
    Kazimir Dugandzic

    Any reason why I’m getting over 50 “blazor.webassembly.js:1 Uncaught (in promise) DOMException: Entry already exists.” console errors on startup? This is from a base template project for WebAssembly using the latest bits from today. The error only happens in Chrome (not Edge). I published a version and deployed it to storage as a static site as a test and the errors did not occur. Seems specific to debugging locally on Chrome only (Debug and Release both the same) ….

    Interesting note: When using Release build locally the amount of console errors is cut in half.

    • Martin Liversage
      Martin Liversage

      Try clearing your browser cache. It might very well be caching javascript files from an older version of Blazor.

      • Avatar
        Kazimir Dugandzic

        Version 81.0.4044.138 (Official Build) (64-bit)

        Tried clearing my cache as well as assigning new ports for localhost and still getting these console errors.

      • Avatar
        Kazimir Dugandzic

        Upgraded to Version 83.0.4103.61 (Official Build) (64-bit) and restarted my machine. Same issue.

        No errors in Edge (Version 81.0.416.77)

      • Avatar
        Kazimir Dugandzic

        Well this is strange. I just noticed that Visual Studio is opening up a Chrome browser instance that is not tied to my logged in instance (like the previous VS did) during debugging session. If I copy and paste the localhost link into another instance of Chrome the app runs without the console errors! maybe the new version of Visual Studio that came out today is handling Chrome debugging differently?

        • Avatar
          Philipp Diethelm

          Hi Kazimir, I had a similar issue. I tried to reinstall Chrome and Visual Studio and even resetting my user profile without any luck. After reinstalling my machine it works as expected again.

      • Avatar
        Kazimir Dugandzic

        If I switch to Edge as my default in Visual Studio then I get the console errors in Edge!

        • Daniel Roth
          Daniel RothMicrosoft employee

          When you debug a Blazor WebAssembly app from Visual Studio, it launches the browser with a custom user profile. This is so that Visual Studio can guarantee that the browser instance is launched with remote debugging enabled. Maybe there is something something cached for that user profile that is causing the issue?

          • Avatar
            Kazimir Dugandzic

            I did a clean install of Visual Studio. This did not resolve the issue. However once I created a custom user profile in the browser instance this did resolve the issue. It seems when you use the default “Person 1” the console errors are thrown. Toggling back to that profile started the errors again.

          • Daniel Roth
            Daniel RothMicrosoft employee

            Hi Kazimir. When using the problematic profile, can you try clearing out the Site Data from the Application tab in the browser dev tools?

          • Avatar
            Kazimir Dugandzic

            Just cleared Site Data from Application tab. Same issues. I’m fine just ignoring this profile. Just wondering if it’s an issue others may have!

        • Avatar
          Hsin Yu Chen

          same issue here ,got 113

          Uncaught (in promise) DOMException: Entry already exists.

          when [F5],
          did you found any fix for this? (Chromium Edge)

          and I found that if you press [F12] to open devTools right after [F5]
          and if you set it is ‘show as tab’ mode
          VS will redirect the devTool window to Application page, not the ‘about:blank’ window

          edit:
          found a github issue for this
          https://github.com/dotnet/aspnetcore/issues/20256

  • Avatar
    Valentin Iliescu

    What about the newly announced .NET MAUI? Are the Mobile Blazor Bindings going to use that?

    • Daniel Roth
      Daniel RothMicrosoft employee

      Hi Valentin. Both .NET MAUI and the experimental Mobile Blazor Bindings are based on Xamarin Forms, so this is a direction we plan to explore.