# blazor-workshop **Repository Path**: gitmy/blazor-workshop ## Basic Information - **Project Name**: blazor-workshop - **Description**: Blazing Pizza Workshop 是一个由社区开发者 Fritz 和微软团队共同维护的开源教学项目。通过构建一个完整的“在线披萨订购系统”,帮助你掌握 Blazor 的核心开发技巧,包括组件化、状态管理、表单验证、身份认证等实用功能。该项目已经更新至 .NET 8,支持最新的 WebAssembly 特性和性能优化,是目前最贴近实际业务场景的 Blazor 教学案例之一。 - **Primary Language**: C# - **License**: MIT - **Default Branch**: danroth27/helpers - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-09-15 - **Last Updated**: 2025-09-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # blazor-workshop Blazor workshop Sessions 1. Intro - Who are we? - Machine setup - Syllabus - What is Blazor/WebAssembly? - Roadmap explanation 1. Components + layout - Clone repo with ready made backend - Setup store branding - Create layout and home page - Fetch specials list from backend - Display list of pizza names - Pizza card component (no templates yet) - Parameters: Pizza object Lunch 1. Handling UI events & data binding - Clickable pizza cards - Cover `@page` - Pizza customization - Price updated based on selections - Place order button, sends order to the backend - Confirmation screen 1. DI - Create a service for interacting with the backend, repository abstraction - Refactor HttpClient code to use service instead - Talk to DI scopes 1. JS interop - Add order status - Real status (map location, time to delivery) via polling - JS interop for the map - Add payment via browser payment API End Day 1 1. Templated components - Refactor the specials page - Generic components 1. Authentication & authorization - See status after leaving site - Cascading parameters - Use some form of thing-that-you-do auth - Maybe talk to updated guidance for SPA token based auth? Lunch 1. Publish & deployment - Publish to Azure 1. Razor Components - See if we can make flipping it to server-side reasonably trivial 1. Component libraries - Make a Google Maps components so others can use it - Consider using SignalR library? 1. Component internals - Lifecycle events - Render tree - StateHasChanged - Configuring the linker (i.e. how to turn it off, pointer to docs) 1. Q&A Today we will build: - Pizza store - Order status and map - Specials page - Ordering page - No cart, just one pizza per order - Use browser payment apis - Login