Building Web apps using Blazor
Last modified: 2021-04-26
Audience
Developers
Duration
3 or 4 days
Description
Blazor is a framework for building interactive client-side web UI with .NET. You can now program your client-side code with C# instead of JavaScript.
Course Outline
Blazor First Steps
- Blazor Model explained
- Differentiate the Blazor hosting models: Client-Side vs Server-Side
- Overview of WebAssembly technologies
- Installing Blazor
- Creating a new Visual Studio Project
- Showing how to work with VS Code
- Structure of a Blazor Project
Layouts
- Creating a Blazor layout
- Using a layout
- Nested layouts
Components
- Creating a component
- Component lifecycles
- One-way vs. two-way binding
- Binding directives
- Component events vs. Browser DOM events
- Cascading values
- Generated HTML attributes
- Capturing unexpected params
- Replacing attributes on child components
- Multi-threaded rendering
- Thread safety with InvokeAsync
Render trees
- Incremental RenderTree proof
- Optimizing using @key
Templating components
- Passing data to a RenderFragment
- Using @typeparam to create generic components
- Passing placeholders to RenderFragments
Routing
- Defining routes
- Route parameters
- Constraining route parameters
- Optional route parameters
- 404 – Not found
- Navigating our app via HTML
- Navigating our app via code
- Detecting navigation events
Forms and data entry
- Editing form data
- Descending from InputBase
- Validation
- Handling form submission
- EditContext, FieldIdentifiers, and FieldState
- Accessing form state
- Custom validation
Component libraries
- Creating your own components
- Consuming a component library
- Accessing resources
- Updating Nuget packages
Dependency injection
- Injecting dependencies into Blazor components
- Dependency lifetimes and scopes
- Transient vs. Singleton vs. Scoped dependencies
- Component scoped dependencies
Calling a Database
- Entity Framework
- Code-First vs Database-First
- Repositories and data managers
Calling API services
- Creating a simple web API
- Documenting with OpenApi
- Calling the API from Blazor
State Management
- Application state
- Server-side vs. Client-side
Configuration
- AppSettings
- Environment variables
- Command-line arguments
- Secret Manager
- Web config
JavaScript interop
- JavaScript boot process
- Calling JavaScript from .NET
- Passing HTML element references
- Calling .NET From JavaScript
- Calling JS Libraries
- Lifetimes and memory leaks
- Type safety
- Calling static .NET methods
Identity
- Authentication
- Authorization and permissions
- Roles, Claims, Policies
- Security features
Security
(Most of this applies to ASP.NET, not Blazor WebAssembly)
- Https
- Cross-Site Request Forgery (XSRF/CSRF)
- Cross-Site Scripting (XSS)
- Cross-Origin Requests (CORS)
- SQL Injection