learning-blazor
learning-blazor copied to clipboard
The application for the "Learning Blazor: Build Single Page Apps with WebAssembly and C#" O'Reilly Media book by David Pine.
Learning Blazor: Build Single-Page Apps with WebAssembly and C#
| Book | Details |
|---|---|
![]() |
This repository is the application detailed in the "Learning Blazor: Build Single-Page Apps with WebAssembly and C#" O'Reilly Media book by David Pine. Take advantage of your C# skills to build UI components and client-side experiences with .NET. With this practical guide, you'll learn how to use Blazor WebAssembly to develop next-generation web experiences. Built on top of ASP.NET Core, Blazor represents the future of .NET single-page applications (SPA) investments. |
This app is deployed to: https://webassemblyof.net
The app is a Blazor WebAssembly app, deployed to Azure as a Static Web app. It targets .NET 6, and it's packed full of C# 10 features.
Want to run this locally? See, the "Get Started" article.
Home screen (dark theme)

Home screen (light theme)

Featuring
The app is packed with examples of how to do various things with Blazor, including but not limited to:
- Blazor Third-Party Authentication providers:
- GitHub
- "Sign up now"-based identity provider registration (with email verification).
- Azure Functions — .NET
- ASP.NET Core Web API
- ASP.NET Core SignalR
- Bulma (CSS)
- Polly
- Swagger / OpenAPI
- Twitter API
- OpenWeatherMap API
- "Have I Been Pwned"
- Client-Browser Native Speech Synthesis and Speech Recognition
- Reactive Extensions (Rx.NET)
- Azure Cosmos DB Repository-Pattern .NET SDK
- Blazor WebAssembly Localization
- Azure Cognitive Services Translator
- Blazor Component Virtualization
- Humanizer
- Two-way JavaScript Interop (using both
IJSRuntimeandIJsInProcessRuntime)- As well as Blazorators, for source generation
NuGet Packages
I'm using several of my open-source projects within this repository.
| Package | Repository | Purpose |
|---|---|---|
| IEvangelist.Azure.CosmosRepository | ./azure-cosmos-dotnet-repository |
IRepository<TItem> via DI for light-weight access to Azure Cosmos DB. |
| Blazor.LocalStorage.WebAssembly | ./blazorators |
Source-generated localStorage API implementation class library from Blazorators: C# Source Generators for Blazor. |
| Blazor.SpeechRecognition.WebAssembly | ./blazorators |
Hand-written custom library that wraps browser native speechRecognition API implementation. |
| HaveIBeenPwned.Client | ./pwned-client |
A .NET HTTP client for the "have i been pwned" API service from Troy Hunt. |
GitHub Actions
I'm also using my Resource Translator: https://github.com/IEvangelist/resource-translator, which translates .resx resource files.
💡 Ideas for the application to include.
