Welcome to the Blazor WebAssembly E-Commerce Course! In this online course, were going to build an e-commerce web application with .NET 6 & Blazor WebAssembly. Well cover the complete stack, meaning Blazor for the client, a Web API for the back end web service, and Entity Framework Core with SQL Server Express for the database. The course starts with a walking skeleton. This means, right at the beginning of this course, and in just a few hours you learn how to build a running full-stack web application with all the mentioned frameworks and technologies. So, after this section, you wont use any mock data, for instance. You will already make calls to the web service, grab data from the SQL Server and return the results back to the Blazor WebAssembly client. On top of that, we will introduce best practices to that walking skeleton. For instance, we dont want to use fat controllers. Instead, well use the repository pattern together with dependency injection. After that, we build a huge part of the e-commerce application. This section is all about the products your users can buy in your shop, its about categories, product variants, a search bar, pagination, a basic cart, and so on. With all these implementations you learn lots of features of Blazor WebAssembly, together with the Web API and also relationships between entities and how to manage them with Entity Framework Core and SQL Server. After that, we dive into authentication with JSON web tokens. You will learn how to register users, log them in and create JSON web tokens (JWT) to authenticate your users, set the token in the default HTTP request header, utilize the famous [Authorize] attribute to secure your Web API, and add a page for the users’ profile so that they can change their password, for instance. The next section is all about the cart and orders. Until this point, youve already implemented a cart, but it only works offline. So now its time to store the products of the cart in the database and also implement the final order and an overview of the order history. But one thing will still be missing, and thats an option to checkout and pay for your order. We cover that with the next section and use Stripe to do that. This means, your users can pay with a credit card, Google Pay and Apple Pay. Additionally, well continue with a smaller section where we implement the option to add a delivery address. And after that, its time for the big administration dashboard. Everything youve learned so far comes together in this section. We utilize lots of features of Blazor WebAssembly, we build several CRUD operations for our entities - meaning an administrator should be able to create, read, update and delete all products, categories, and product variants - and to know if the user is allowed to do all that, we introduce role-based authorization. As you can see, theres a lot to learn! Here’s an overview of what you will learn in this course: Introduction- Install the .NET 6 Framework & Visual Studio 2022- Get the source code from GitHubFull Stack Foundations - Building a Walking Skeleton- Create a Blazor WebAssembly ASP.NET Core Hosted Project- Debug your project- Learn about the new Hot Reload feature of .NET 6 & Visual Studio 2022- Create Razor Components & utilize CSSIsolation- Implement a Web API Controller & test it with SwaggerUI- Install & use SQL Server Express and Entity Framework Core 6- Utilize Code-First Migrations with EF Core 6 & Seed Data programmatically- Create a Git repository and push your code to GitHubAdding & Using Best Practices- Implement a Service Response with Generics- Use the Repository Pattern and Dependency Injection- Create Services for the client and the serviceIt’s all about Products - Blazor WebAssembly in Action- Add more models & entities to your web application like categories, variants, and more- Use several features of EF Core 6 like composite primary keys, more migrations & relationships- Utilize several built-in components of Blazor WebAssembly- Realize a search feature & pagination- Implement a custom layout- Add a cart using the local storage to your applicationLet’s add Users - Authentication with JSON Web Tokens- Implement user registration & login- Use data annotations & validation- Introduce the user model- Add token authentication with JSON Web Tokens (JWT)- Implement a custom AuthenticationStateProvider- Add a return URL to the login- Utilize the [Authorize] attributeLet’s buy some Products - Cart & Orders- Store the cart of a user in the database- Use the HttpContextAccessor to access the user in the services- Store the orders in the database- View an order history- Utilize the authentication state of the userKa-Ching! - Payment with Stripe Checkout- Introduce Stripe- Use Stripe Checkout for payments- Fulfill an Order with WebHooks- Enable a shipping address in Stripe CheckoutWhere are you from? - Add a Delivery Address- Add an address model with a new migration- Create a shared component for the cart and the user profile pageWe need more stuff! - Admin Dashboard- Introduce role-base