What is Blazor Train?

Blazor Train is an extensive class on Microsoft Blazor, an extremely productive technology for developing web applications using HTML markup and the C# programming language.

Get started by Installing Blazor. Then, watch the series and follow along with the videos.

Videos




Episode 1 - May 26, 2020 (19:45)
Introducing Blazor
In this episode of Blazor Train, we’ll take a first look at Microsoft Blazor.

 


Episode 2 - May 26, 2020 (20.39)
Blazor Server vs. WASM
In this episode of Blazor Train, we’ll compare the two hosting models: Blazor Server and Blazor WebAssembly.

 


Episode 3 - May 26, 2020 (12:21)
WebAssembly
In this episode of Blazor Train, we’ll dive into WebAssembly.

 


Episode 4 - May 26, 2020 (16:59)
Synchronicity
Develop a Blazor WASM and Server app at the same time.

 


Episode 5 - June 1, 2020 (20:58)
Steve Sanderson and David Fowler
Carl Interviews Steve Sanderson and David Fowler about the evolution of Blazor.

 


Episode 6 - June 11, 2020 (26:41)
Anatomy of a Blazor Project
Carl takes you on a tour of a Blazor project file by file.
Click here to download code

 


Episode 7 - June 18, 2020 (42:25)
Routing and Navigation
Carl and guest Chris Sainty cover the ins and outs of routing in Blazor.
Click here to download code

 


Episode 8 - June 26, 2020 (18:44)
Blazor Component Life Cycle
What is a Blazor Component? How long does it live? How can we hook it?
Click here to download code

 


Episode 9 - July 2, 2020 (34:07)
Binding and Event Handling
Carl brings in a C#/JavaScript developer for his reaction to seeing Blazor binding for the first time.
Click here to download code

 


Episode 10 - July 9, 2020 (19:25)
Configuration and Dependency Injection
Carl shows you how to incorporate configuration files in Blazor WebAssembly and Blazor Server projects using Dependency Injection.
Click here to download code

 


Episode 11 - July 20, 2020 (35:05)
Creating an API Layer
Carl shows you how to create APIs and access them from Blazor applications. Topics include CORS, and advanced JSON issues.
Click here to download code

 


Episode 12 - July 24, 2020 (15:50)
Creating a Generic Data Manager
Carl welcomes App vNext contractor Mateus de Carvalho. They show how to use the repository pattern to create two generic data managers: one for an in-memory store, and one for an Entity Framework dbContext.
Click here to download code

 


Episode 13 - July 31, 2020 (26:55)
JavaScript Interop
Carl shows the mechanics for calling JavaScript from C# and also calling C# from JavaScript. Using absolute positioning, he shows how to achieve the equivalent of Windows Forms docking!
Click here to download code

 


Episode 14 - August 7, 2020 (53:00)
Modal Dialogs
Carl welcomes Chris Sainty back to BlazorTrain to show Blazored.Modal, his OSS Modal Dialog component. In addition, he shows how DevExpress' DxPopUp Blazor control does modals.

 


Episode 15 - August 17, 2020 (18:55)
Application State
Carl shows you the benefits of keeping application data outside components and pages, and how to do cross-component change notifications.
Click here to download code

 


Episode 16 - August 24, 2020 (32:45)
Data Access (API/DataManager/EF)
Carl brings together an API layer, a generic data manager, and EF Core to create a complete solution.
Click here to download code

 


Episode 17 - August 31, 2020 (15:45)
Persisting Application State
Carl shows you how to give your application a memory, persisting application state to local storage.
Click here to download code

 


Episode 18 - September 7, 2020 (19:00)
Building and Sharing Components
Carl shows you how to extract components from your Blazor app and share them as NuGet packages.
Click here to download code

 


Episode 19 - September 11, 2020 (34:30)
From WebForms to Blazor
Carl welcomes Microsoft’s Jeff Fritz to give hope to WebForms developers who want to move to Blazor.

 


Episode 20 - September 18, 2020 (20:50)
Deploying and Scaling Blazor Server Apps
Carl shows you how to deploy a Blazor Server app to Azure and scale it up (and out) to meet demand.

 


Episode 21 - September 25, 2020 (47:00)
CSS 101 for Blazor Developers
Carl welcomes back Chris Sainty to talk about CSS within the context of Blazor.

 


Episode 22 - October 2, 2020 (11:40)
Add Blazor to an Existing MVC Application
Carl welcomes Brian MacKay who shows you how to add Blazor pages and components to an existing MVC app.
Click here to download code

 


Episode 23 - October 9, 2020 (45:00)
Daniel Roth on Blazor in .NET 5
Carl welcomes back Daniel Roth to demo what's new in .NET 5 Blazor.
Click here to download code

 


Episode 24 - October 19, 2020 (15:30)
MVVM Part 1
Carl shows you how to convert a Blazor form to use MVVM.
Click here to download code

 


Episode 25 - October 26, 2020 (24:00)
MVVM Part 2
Carl shows more advanced MVVM patterns in Blazor.
Click here to download code

 


Episode 26 - November 2, 2020 (N/A)
Basic Authentication and Authorization in Blazor Server
Carl shows you how to use ASP.NET Core Identity for basic authentication and authorization in a Blazor Server app.
Click here to download code

 


Episode 27 - November 9, 2020 (15:40)
Basic Authentication and Authorization in Blazor WebAssembly
Carl shows you how to use ASP.NET Core Identity for basic authentication and authorization in a Blazor WebAssembly app.
Click here to download code

 


Episode 28 - November 20, 2020 (49:00)
Adding Azure AD B2C to an existing Blazor App
Carl welcomes back Joel Hulen to demystify Azure AD B2C.
Click here to download code

 


Episode 29 - December 4, 2020 (17:12)
Use SignalR for cross-user communication
Carl shows you how to seamlessly add SignalR to any Blazor app.
Click here to download code

 


Episode 30 - December 11, 2020 (14:30)
Synchronizing Data with SignalR
Carl shows how to sync data between two or more users by hooking CRUD operations.
Click here to download code

 


Episode 31 - December 18, 2020 (7:00)
Synchronicity 5.0
Carl shows how to develop both a Blazor Server and Blazor Wasm project simultaneously using .NET 5.
Click here to download code

 


Episode 32 - January 8, 2021 (19:45)
Input Validation
Carl shows you how to use Blazor's input validation system.
Click here to download code

 


Episode 33 - January 15, 2021 (23:05)
Progressive Web Apps
Carl shows you how to create a Blazor PWA and how to configure it for offline access and cached content.
Click here to download code

 


Episode 34 - January 22, 2021 (19:00)
Build a Better ListBox
Carl shows you how to go beyond the basic select element.
Click here to download code

 


Episode 35 - January 29, 2021 (20:15)
Ask the Engineer
Carl answers your questions and solves your Blazor puzzlers.

 


Episode 36 - February 5, 2021 (25:30)
Serveless
Carl welcomes back Microsoft’s Jeff Fritz to show how easy it is to build a Blazor WASM Azure Static Web App.
Click here to download code

 


Episode 37 - February 12, 2021 (45:00)
Files: Uploading, Downloading, and Storing
All about files: uploading, downloading, static files, and Azure storage.
Click here to download code

 


Episode 38 - February 19, 2021 (37:00)
Options for Mobile Apps
Carl welcomes back Microsoft’s Dan Roth to discuss options for building mobile apps with Blazor.

 


Episode 39 - February 26, 2021 (36:00)
Data Virtualization
Carl shows you how to be more efficient when dealing with large sets of data.
Click here to download code

 


Episode 40 - March 5, 2021 (16:40)
Blazor Sliders!
Carl shows how to make split screens with multiple panels and sliding splitters.
Click here to download code

 


Episode 41 - March 12, 2021 (17:55)
Lazy Loading
Carl shows you how to load components on demand in a WebAssembly project.
Click here to download code

 


Episode 42 - March 19, 2021 (16:53)
Pre-Rendering
Carl shows you how to use pre-rendering to decrease load-time.
Click here to download code

 


Episode 43 - March 26, 2021 (37:30)
Testing
Carl shows you how to test Blazor pages and components.
Click here to download code

 


Episode 44 - April 2, 2021 (44:06)
Snapshot Testing with Verify
Carl welcomes Simon Cropp, who built Verify to simplify testing.
Click here to download code

 


Episode 45 - April 16, 2021 (21:42)
WebAPI vs gRPC
Carl shows you how to use gRPC in your Blazor apps as an alternative to a more common API layer.
Click here to download code

 


Episode 46 - April 23, 2021 (34:00)
Generate Your gRPC Layer
Carl shows you how to generate a gRPC infrastructure for your Blazor WebAssembly project.
Click here to download code

 


Episode 47 - May 14, 2021 (43:15)
Using Azure Blobs as a Data Store
Carl shows you how to use Azure Blob storage as a lightweight data store, and when it’s appropriate to do so.
Click here to download code

 


Episode 48 - May 21, 2021 (19:00)
Mobile User Interface
Carl shows you how to detect mobile browsers and change you UI to accommodate them.
Click here to download code

 


Episode 49 - June 4, 2021 (15:45)
AOT Compilation in .NET 6 Preview 4
Carl compares the performance of a standard interpreted WebAssembly app to one built with Ahead of Time (AOT) compiling.
Click here to download code

 


Episode 50 - June 18, 2021 (9:57)
Hot Reload in .NET 6
Carl shows how Hot Reload increases productivity when building Blazor apps.

 


Episode 51 - July 13, 2021 (23:00)
Generic API Controllers
Carl shows you how to create a generic API controller base class.
Click here to download code

 


Episode 52 - July 20, 2021 (23:30)
Generic Components
Carl shows you how to build Blazor components that use generic types.
Click here to download code

 


Episode 53 - August 10, 2021 (13:10)
Routing ASPX URLs to Blazor
Carl shows you how to route old .aspx pages to Blazor pages.
Click here to download code

 


Episode 54 - August 17, 2021 (23:00)
Keyboard Input
Carl shows you how to get complete control over keyboard input in Blazor.
Click here to download code

 


Episode 55 - August 31, 2021 (18:44)
Adding Identity
Carl shows you how to add Identity Authentication and Authorization to an existing Blazor Server app.
Click here to download code

 


Episode 56 - September 7, 2021 (39:00)
Adding Identity to WASM
Carl shows you how to add Identity Authentication and Authorization to an existing Blazor WASM App.
Click here to download code

 


Episode 57 - September 14, 2021 (23:00)
Real-Time Polling
Carl shows a technique using SignalR to let mobile users answer poll questions.
Click here to download code

 


Episode 58 - September 21, 2021 (37:00)
Using Dapper
Carl shows you how to use Dapper for wicked fast data access on the back end.
Click here to download code

 


Episode 59 - September 30, 2021 (26:00)
Advanced SignalR
Carl shows you configuration and logging options for SignalR, including Blazor Server, and a few tips as well.
Click here to download code

 


Episode 60 - October 5, 2021 (28:20)
Handling App Updates
Carl shows you how to reload Blazor apps when a new version is published.
Click here to download code

 


Episode 61 - October 19, 2021 (15:00)
Error Boundaries in .NET 6 Blazor
Carl demonstrates how to use the new ErrorBoundary component to deal with unhandled exceptions.

 


Episode 62 - October 26, 2021 (27:00)
Minimal APIs in .NET 6
Carl shows you the ins and outs of using the new Minimal API feature in .NET 6 with Blazor.
Click here to download code

 


Episode 63 - November 9, 2021 (22:07)
Blazor Reporting with Thomas Smith
Carl welcomes BlazorTrain fan Thomas Smith to show how he implemented reports in a real-world Blazor app.

 


Episode 64 - November 24, 2021 (19:30)
Blazor .NET 6 Fixes
Carl upgrades a few existing BlazorTrain projects to .NET 6
Click here to download code

 


Episode 65 - November 30, 2021 (12:24)
A Few New Things
Carl shows dynamic components, required parameters, query parameters, HTML header control, and multiple selections, all features of .NET 6 Blazor
Click here to download code

 


Episode 66 - December 21, 2021 (33:01)
Streaming with Blazor and SignalR
Carl shows you how SignalR streaming works, and how you can use it in your Blazor apps
Click here to download code

 


Episode 67 - January 4, 2022 (22:13)
REST vs gRPC Streaming
Carl compares streaming from a REST endpoint to streaming from a gRPC service.
Click here to download code

 


Episode 68 - January 25, 2022 (30:00)
Dockerize your Blazor Apps
Carl welcomes Chris Sainty back to show us how to use Docker to create Blazor apps in containers.
Click here to download code

 


Episode 69 - February 8th, 2022 (38:15)
Wordmania!
Carl builds a guess-the-word game in Blazor
Click here to download code

 


Episode 70 - March 1st, 2022 (14:53)
Blazor Server Logging Part 1
Carl shows how to implement simple server-side logging in your Blazor Server apps
Click here to download code

 


Episode 71 - March 8th, 2022 (30:07)
WPF Blazor Hybrid Apps
Carl shows you how to build a WPF application with Blazor
Click here to download code

 


Episode 72 - March 15th, 2022 (18:52)
User Tracking in Blazor Server
Carl shows how to use a custom CircuitHandler to track concurrent users and get control when a user closes the browser
Click here to download code

 


Episode 73 - March 22nd, 2022 (28:43)
Self-Aware Components
Build Blazor components that only render when they come info view
Click here to download code

 


Episode 74 - March 31st, 2022 (23:05)
Managing App State with Redux
App State Management using Fluxor, a Flux/Redux library for Blazor
Click here to download code

 


Episode 75 - April 7th, 2022 (20:22)
Blazor Train in Vegas
Carl offers a special report on the State of Blazor from DevIntersection in Las Vegas.

 


Episode 76 - April 14th, 2022 (27:38:00)
Queryable Repositories
Build a generic repository that the client can query.
Click here to download code

 


Episode 77 - April 21st, 2022 (19:23)
Revisiting MVVM
Carl revisits the topic of MVVM with Blazor, clarifying your options.

 


Episode 78 - May 27th, 2022 (19:54)
Using TypeScript with Blazor
Create TypeScript classes scoped to components
Click here to download code

 


Episode 79 - June 3rd, 2022 (24:46)
Persisting Data in Blazor WebAssembly
Carl uses a client-side repository based on IndexedDB to persist data even without an Internet connection
Click here to download code

 


Episode 80 - June 14th, 2022 (28:09)
Syncing IndexedDb with a Backend Database Part 1
Carl implements a repository that works with IndexedDb when offline, and an API when online, syncing both sides. Part 1 of 2
Click here to download code

 


Episode 81 - June 21st, 2022 (17:39)
Syncing IndexedDb with a Backend Database Part 2
Carl improves on episode 80 by adding a message broker to synchronize CRUD operations between users in real time. Part 2 of 2
Click here to download code

 


Episode 82 - June 28th, 2022 (24:02)
Search Engine Optimization with Blazor
Carl shows you how to optimize Blazor Server and WebAssembly apps for SEO.
Click here to download code

 


Episode 83 - July 8th, 2022 (19:49)
FFMPEG in Blazor WASM
Manipulate media files and data offline in a Blazor WASM app.
Click here to download code

 


Episode 84 - July 20th, 2022 (24:46)
Identity Management
Carl offers an OSS library for managing ASP.NET Identity users and roles with a Blazor Server demo.
Click here to download code

 


Episode 85 - July 27th, 2022 (21:35)
Blazor Canvas
Carl shows you how to access the Canvas using C# for browser-based graphics.
Click here to download code

 


Episode 86 - August 3rd, 2022 (9:35)
Anchor Navigation
Why navigating to a Blazor page anchor doesn't work, and how to overcome it.
Click here to download code

 


Episode 87 - August 10th, 2022 (24:42)
Scaffolding Data Access with DevExpress Tools
Carl welcomes Don Wibier from DevExpress to show off their scaffolding tools.
Click here to download code

 


Episode 88 - August 24th, 2022 (25:08)
Introduction to XAF
Carl welcomes back Don Wibier to give you an introduction on the eXpress Application Framework from DevExpress.
Click here to download code

 


Episode 89 - September 22nd, 2022 (25:44)
MSAL Auth in Blazor Server
Carl shows how to use MSAL and Azure AD B2C to authenticate users and call a secure API.
Click here to download code

 


About Carl Franklin



Carl Franklin is Executive Vice President of App vNext, a software development firm focused on modern methodologies and technologies. Carl is a 20+ year veteran of the software industry, co-host and founder of .NET Rocks!, the first and most widely listened to podcast for .NET developers, a Microsoft MVP for Developer Technologies, and Senior Executive of Pwop Studios, a full-service audio and video production/post production studio located in Southeastern Connecticut.

Get In Touch


Email us at blazor@devexpress.com
You can reach Carl at carl@appvnext.com


Copyright © 2020 by App vNext

An error has occurred. This application may no longer respond until reloaded. Reload 🗙