This is the Blazor HOL content for the VS Live "Blazor for Web, Desktop, and Mobile" seminar.
Join this information intense 4-day VSLive! hands-on deep dive and learn to use Blazor. Based on the Razor markup syntax, it leverages HTML, CSS, and C# code so you can create compelling user experiences. Behind the markup is the modern cross-platform .NET framework, meaning that all your UI, business, and data access logic can be written in C#. This virtual seminar is a unique opportunity to enhance your skills so that you can build apps with Blazor for web, desktop, and mobile.
- Day 1
- Welcome and Introduction
- What is Blazor?
- Blazor Architecture
- Understanding Blazor Routing
- Data and Event Binding
- (LAB 01) Build Your First Blazor App
- Razor Components
- Razor components
- Razor pages vs Razor components
- Razor component lifecycle
- StateHasChanged method
- Composing Razor components
- Razor component parameters
- Razor component events
- Cascading parameters
- (LAB 02) Create a Razor Component
- Basic Dependency Injection
- Registering Services
- Consuming Services
- Service Lifetimes
- This will change with Render Modes!
- Blazor Forms
- EditForm Component
- Blazor Validation
- Hand-roll your own form
- QuickGrid Component
- Enhancing Maintainability with Components
- (LAB 03) Create an app to edit data
- Understanding Render Modes
- Server-Static
- Server-Static Streaming
- Interactive Server
- Interactive WebAssembly
- Interactive Auto
- Detecting the Current Render Mode
- Dependency Injection in Different Render Modes
- (LAB 04) Exploring Render Modes
- Day 2
- State management
- Server-side storage, URL, and browser storage
- PersistentComponentState
- State management per render mode
- State management across render modes
- (LAB 05) State Management
- Authentication Fundamentals
- ClaimsPrincipal and ClaimsIdentity
- Authentication State Provider
- Accessing HttpContext
- Flowing the Principal to WebAssembly
- (LAB 06) Basic Authentication
- Authentication via Oauth
- (LAB 07) Authentication via Entra Id
- Authorization
- AuthorizedView Component
- Authorized Attribute
- Role-based Authorization
- Policy-based Authorization
- (LAB 08) Authorization
- State management
- Day 3
- Testing
- Testing with bunit
- (LAB 09) Testing with Bunit
- Styling Blazor Apps
- Blazor Layouts
- Global CSS
- Per-Component CSS
- Generating CSS
- (LAB 10) Style your Blazor App
- Data Access
- Server-side data access
- Entity Framework
- Dapper
- ADO.NET
- WebAssembly data access via API (later)
- Use dependency injection for connections/transactions
- Formalize data access layer for maintainability
- (LAB 11) Data Access
- Client-side data access
- HttpClient
- (LAB 12) Client-side Data Access
- Server-side data access
- Blazor and JavaScript Interop
- (LAB 13) JavaScript Interop
- Testing
- Day 4
- Using Web APIs
- Using HttpClient
- Hosting Web APIs in Blazor Server
- Hosting Web APIs Elsewhere
- CORS
- Authentication with JWT
- (LAB 14) Creating and Using APIs
- Blazor MAUI Hybrid
- Blazor Mobile
- Blazor Desktop
- (LAB 15) MAUI Hybrid App
- Authentication in MAUI
- (LAB 16) Authentication in MAUI
- Blazor PWA
- (LAB 17) Building a PWA
- Using Web APIs