Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Mastering Blazor:Full Course on Blazor WASM & Unified Blazor
Rating: 4.6 out of 5(5 ratings)
53 students

Mastering Blazor:Full Course on Blazor WASM & Unified Blazor

Create Dynamic, High-Performance Web Applications with Blazor WebAssembly / the New Unified Blazor Model (.NET 10)
Created byMuhtar Qong
Last updated 4/2026
English

What you'll learn

  • In this course, you will learn Blazor-based web application development. Blazor is a framework for building interactive web UIs using C# instead of JavaScript.
  • Blazor apps are built using reusable components, making it easy to manage complex UIs.
  • You can run Blazor as a WebAssembly app on the client or a server-side app with real-time UI updates.
  • Write both client and server logic using C#. Blazor WebAssembly (WASM) allows .NET code to run in the browser without plugins.
  • By the end of this course, you will have the knowledge and experience to create full-stack Blazor WASM apps, leveraging Web APIs and advanced Blazor features.

Course content

3 sections27 lectures10h 48m total length
  • Introduction and Getting Started with Blazor7:12

    This is an introduction to the Blazor Framework, including Blazor WebAssembly and Blazor Server:

    1) Introduction to the Blazor Framework.

    2) Blazor WebAssembly's architecture and functionality.

    3) A comparison between JavaScript-based Single Page Applications (SPAs) and Blazor WebAssembly applications.

    4) Information on how to start building Blazor WebAssembly-based web applications, along with the necessary tools.

  • Blazor WebAssembly Project Structure15:55

    In this lecture, the Blazor WebAssembly project structure and its file contents will be explained:

    1) Connected Services.

    2) launchSettings.json file.

    3) Pages folder and its contents.

    4) Shared folder and its contents.

    5) Web root: wwwroot folder and its file contents.

    6) _Imports.razor file.

    7) App.razor component.

    8) Program.cs file.

    9) MainLayout component.


  • Blazor Components20:50

    In this lecture, Blazor WebAssembly components will be explained in detail:

    1) What are Blazor application components?

    2) Directives, directive attributes, and data bindings in Blazor components.

    3) Route templates and route template parameters.

    4) Methods to avoid in Blazor components (avoid thread-blocking calls).

    5) Getting and display data from a static JSON data source in Blazor components.

    6) Blazor component creation and page implementations.

  • Blazor WebAssembly Configuration File and Its Contents18:30

    In this lecture, the process of adding a configuration file to Blazor WebAssembly will be explained:

    1) Add the configuration file, appsettings.json, to the web root folder.

    2) Read configuration values from the file.

    3) Call an external API in the Blazor WebAssembly app component.


  • Two-way Data Binding in Blazor WebAssembly20:40

    In this lecture, data bindings in Blazor WebAssembly will be explained in detail:

    1) Two-way data binding, property and event data bindings, will be presented.

    2) As an example, a custom English dictionary page will be created using two-way data binding.

    3) Calling an external API in Blazor WebAssembly will also be discussed, using the dictionary example.

  • Templated Components in Blazor24:52

    In this lecture, we will first explain templated components in Blazor in detail.

    1) Create a Blazor templated component and explain its properties.

    2) Then, use the component to create a photo album page.

  • How to Call JavaScript Functions in Blazor13:54

    This lecture demonstrates how to call JavaScript APIs and functions in Blazor WebAssembly apps. To make the process easier to understand, we will use a 3D pie chart example.

    1) Import the JavaScript-based AJAX API and the relevant JavaScript file into the Index page.

    2) You are now ready to use the API/JavaScript functions in the project.

    3) Create a PieChart Blazor component to display the 3D pie chart.

    4) Finally, add the PieChart component/page to the side navigation bar of the Blazor WebAssembly project.

  • Dependency Injection in Blazor WebAssembly15:21

    In this lecture, custom service injection in Blazor WebAssembly will be explained in detail.

    1) A IUserService interface with a GetUsers() method was created.

    2) The service method was then implemented.

    3) The service was registered in the Program.cs file and added to the services collection.

    4) Next, service lifetimes in Blazor apps were explained.

    5) An "AvailableUsers" Blazor component was created to consume the IUserService interface.

    6) Finally, the "AvailableUsers" component/page was added to the side navigation bar of the application.

  • Routing in Blazor WebAssembly14:04

    In this lecture, we present routing in Blazor WebAssembly apps with practical examples.

    1) How to manage request routing in Blazor applications.

    2) Blazor components can support multiple route templates by using multiple @page directives.

    3) Route parameters and optional route parameters.

    4) Route constraints, with examples.

    5) Route parameters and invariant culture matching.

  • Creating and Using Razor Class Libraries15:57

    In this lecture, we demonstrate how to create a Razor Class Library and consume Razor components from it.

    1) Create a Razor Class Library (RCL) project.

    2) Create a component in the RCL project and display some data in it.

    3) Then, create a new Blazor WebAssembly app project, add a "Test" component, and reference the RCL project.

    4) Finally, import the RCL project into the "Test" component in the Blazor WebAssembly app project, and consume

    the component from the RCL.


  • EventCallbacks in Blazor WebAssembly9:07

    In this lecture, we will present event handling using EventCallback in Blazor WebAssembly apps in detail.

    1) Create a child component (a customized button).

    2) Create a parent component with a "ShowMessage" method and consume the child component.

    3) In the parent component, set the child component's EventCallback (OnClickCallback) to the "ShowMessage" method.

    4) When the button is clicked in the child component, the parent component's "ShowMessage" method is called, updating and displaying a message in the parent component.

  • Forms and Validations in Blazor WebAssembly24:24

    In this lecture, we will explain forms and validations in the Blazor framework using the built-in EditForm component.

    1) Create an example form component using the EditForm component.

    2) Add data annotation validation attributes and a submit button.

    3) Enter some input data and submit the form. If the input data is invalid, validation messages will be displayed. If the input data is valid, the form will be submitted successfully.

  • Blazor WebAssembly State Management with Cascading Value Component31:10

    In this lecture, we will demonstrate how to share application state using the CascadingValue component in Blazor.

    1) First, create a custom pagination component.

    2) Next, create a "Display Comments" component and consume the custom pagination component.

    3) Finally, implement the functionality to share application state using the CascadingValue component, including the CascadingParameter attribute, in Blazor.

  • A Custom Pagination Component18:47

    In this lecture, we will introduce the process of creating a custom pagination component in a Blazor WebAssembly application.

    1) Create an example pagination component.

    2) Create a "Display Comments" component and consume the pagination component.

  • Share State/Data Between Components in Blazor WebAssembly22:18

    In this lecture, we will demonstrate how to share application state or data between components using a shared state container service in a Blazor WebAssembly app.

    1) Create a "TestComponent" with an InputSelect component (form control) and display a list of countries in it.

    2) Then, create a ShareStateService, register it in the Program.cs file, and inject the service into the "TestComponent."

    3) Finally, select a country in the InputSelect and share the selected country name across the application using the ShareStateService.

  • File Uploading in Blazor WebAssembly Application(s)30:50

    In this lecture, we will discuss how to implement file uploads in a Blazor WebAssembly app.

    1) Create a Blazor WebAssembly project (Client project).

    2) Create an "UploadedFile" class in the Shared project.

    3) Create a "FileUpload" controller in the Server project.

    4) Create a "FileUploading" Razor component in the Client project.

    5) Add the "FileUploading" Razor component to the side navigation bar of the application. Finally, run the application and test file uploads.

  • Build Your First Blazor WebAssembly App Step-By-Step1:12:22

    After completing many lectures, it’s time to create a review lecture that brings together key concepts in a single Blazor WebAssembly (WASM) app using the latest .NET 8.0.

    The following topics will be covered:

    Setting up the Blazor development environment (if not already done), creating a project, understanding project structure, running the application, creating a new component, data binding, event handling, dependency injection, calling a public web API, and styling components.

  • Important Blazor WebAssembly/Server Features1:10:33

    In this lecture, we will cover several important features in Blazor:

    1) Component-based Architecture.

    2) Razor Syntax.

    3) Data Binding.

    4) Types of Dependency Injections.

    5) JavaScript Interoperability.

    6) State Management.

    7) Form Handling and Validation.

    8) Routing.

    9) Performance Optimization.

    10) About Security Best Practices.

  • Important Blazor Dierctives1:27:05

    Directives are very important in Blazor. In this lecture, we'll explore all the important directives in Blazor and provide practical examples for each.

    Blazor directives are built-in macros that modify the C# code generated from Razor markup. Directives are used by prefixing the identifier with the "@" symbol. The identifier can refer to an HTML element's attribute or a Blazor component's property.

    Currently Blazor does not support custom directives.  In this lecture, we will dive into Blazor directives with practical examples.

  • Update: Visual Studio 2026 Released6:32

    Update: Visual Studio 2026 Released.

Requirements

  • C# and .NET knowledge: Blazor uses C# as the primary programming language, so understanding its syntax and features is essential.

Description

In this nearly 9-hour course, consisting of 19 comprehensive lectures, you will develop a solid understanding of Blazor WebAssembly and its core functionalities. The course begins with an introduction to the Blazor Framework, covering WebAssembly and Server models, and progresses through building real-world applications.

Throughout the course, we will cover (but not limited to):

Project Setup and Structure: Learn how to set up the Blazor development environment, navigate the project structure, and work with key files such as App.razor, Program.cs, and the wwwroot folder.

Blazor Components and Razor Syntax: Understand Blazor’s component-based architecture, directives, data binding, and navigation. Learn about route templates, route parameters, and routing constraints.

Data Binding and External API Calls: Implement two-way data binding, build a custom dictionary page, and call external APIs within your Blazor WebAssembly app.

JavaScript Interoperability: Learn how to integrate JavaScript APIs into Blazor using practical example.

Service Injection and Component Lifecycles: Explore service registration, service lifetimes (Singleton, Scoped, Transient), and Blazor component lifecycle events.

Forms and Validation: Implement forms and validations using built-in components like EditForm, ValidationMessage, and ValidationSummary.

State Management: Master application state sharing techniques using the CascadingValue component and shared state container services.

Advanced Topics: Dive deeper into creating and consuming Razor Class Libraries, implementing file uploads, and building a custom pagination component.


Final Three Lectures:

"First Blazor App": Build your first Blazor WebAssembly app using .NET 8.0, where you will review and consolidate key concepts such as setting up the environment, creating a project, understanding project structure, building components, handling data binding and events, using dependency injection, calling a public web API, and styling components.

Important Blazor Features: Learn about several critical features in Blazor, including component-based architecture, Razor syntax, data binding, types of dependency injection, JavaScript interoperability, state management, form handling and validation, routing, performance optimization, and security best practices.

Blazor Directives: An introduction to important Blazor directives, with practical examples for each.


Some Practical Example Applications in the Course:

English Dictionary: Demonstrating two-way data binding with a dynamic, interactive page.

Photo Album: Showcasing Blazor’s templated component functionality.

By the end of this course, you will have the knowledge and practical experience to create full-stack Blazor WebAssembly applications, leveraging .NET 8.0, Web APIs, and advanced Blazor features.

Who this course is for:

  • 1. Developers already familiar with C# and .NET who want to build web applications without relying heavily on JavaScript. 2. Those looking to write both client-side and server-side logic in the same language (C#). 3. Developers who want to build interactive web UIs using components but prefer C# over JavaScript.