Blazor Client First Impressions

I am excited about the idea of Blazor WebAssembly, also known as Blazor Client, starting with .NET Core 3.1. It offers the promise of developing in one language (C# in my case) for both server-side and client-side. It avoids, or at least minimizes, the use of JavaScript for client-side development if it isn’t a strong skillset. All major modern browsers (sorry Internet Explorer) support it…in theory.

It turns out that iOS and iPadOS 13’s Safari browser doesn’t support it due to issues with its implementation of WebAssembly. Running a pre-release version of iPadOS 14, Safari does support what I have developed and tested.

Visual Studio 2019 now has a template to support Azure Active Directory (AAD) authentication. Earlier builds only supported via a CLI template. The only oddity is that it sometimes requires authentication when accessing the Blazor Client app (as desired), but the login button is still active. Other times, the visitor isn’t prompted with a login, and the login button is present. Either way, once the login button is clicked, I can authenticate against AAD and the login button disappears and my name appears. This interaction issue is also present with .NET 5 preview. Hopefully this will be ironed out with future releases.

The interaction of the .razor pages and updating interactively is nicely done. I often forget the fact that post-back is required and this is running on the client. This enforces the need for Web APIs to get back to server-based resources such as databases.

I am looking forward to learning a lot more about this platform. Learning resources are starting to become more available from Microsoft, O’Reilly, and Udemy.

Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s