image
The Ultimate Drawing Course Beginner to Advanced...
$179
$79
image
User Experience Design Essentials - Adobe XD UI UX...
$179
$79
Total:
$659

Description

*** This course has been completely re-recorded for .Net 8 and Angular 18***
Have you learnt the basics of ASP.NET Core and Angular?  Not sure where to go next?  This course should be able to help with that.  In this course we start from nothing and build a proof of concept E-Commerce store using these frameworks.
In this course we build a
complete application from start to finish and every line of code is demonstrated and explained.
Here are some of the things you will learn about in this course:
Setting up the developer environment
Creating a multi project .net core application using the dotnet CLI
Creating a client side front-end Angular UI for the store using the Angular CLI
Learn how to use the Repository, Unit of Work and specification pattern in .net core
Using multiple DbContext as context boundaries
Using ASP.NET Identity for login and registration
Using the angular modules to create lazy loaded routes.
Building a great looking UI using Angular Material and Tailwind
Making reusable form components using Angular Reactive forms
Paging, Sorting, Searching and Filtering
Using Redis to store the shopping basket
Creating orders from the shopping basket
Accepting payments via Stripe using the new EU standards for 3D secure
Publishing the application to Azure
SignalR
Role based authentication
Many more things as well
Tools you need for this course
In this course all the lessons are demonstrated using Visual Studio Code, a free cross platform code editor.   You can of course use any IDE you like and any Operating system you like... as long as it's Windows, Linux or Mac.   
Is this course for you?
This course is very practical, about 90%+ of the lessons will involve you coding along with me on this project.  If you are the type of person who gets the most out of learning by doing, then this course is definitely for you.   
Important: If you have never coded before and you want to learn .Net and Angular you would be better starting with my other .Net Core and Angular course before this one.
On this course we will build an example E-commerce store, completely from scratch using the DotNet CLI and the Angular CLI to help us get started.  All you will need to get started is a computer with your favourite operating system, and a passion for learning how to build an application using ASP.NET Core and Angular.  
Who this course is for:
Beginner and intermediate developers who want to enhance their knowledge of .Net and Angular who have some coding experience
Beginner and intermediate developers who wish to learn how to build an e-commerce style of site

What you'll learn

.Net Core

Angular

C# Generics

Repository and Unit of Work Pattern

Specification Pattern

Caching

Angular Lazy loading

Angular Routing

Angular Reactive Forms

Angular Creating a MultiStep form wizard

Accepting payments using Stripe

Angular Re-usable form components

Angular validation and async validation

Requirements

  • You will need a copy of Adobe XD 2019 or above. A free trial can be downloaded from Adobe.
  • No previous design experience is needed.
  • No previous Adobe XD skills are needed.

Course Content

27 sections • 95 lectures
Expand All Sections
1-Introduction
4
1.1-Introduction to the course
1.2-Setting up the developer environment
1.3-Setting up VS Code for C# development
1.4-Course assets and source code location
2-API Basics
13
2.1-Introduction
2.2-Creating the .Net projects
2.3-Reviewing the projects in VS Code
2.4-Creating the Product Entity
2.5-Setting up entity framework
2.6-Setting up Sql Server
2.7-Connecting to the Sql Server from the app
2.8-Configuring the entities for the migration
2.9-Creating a products controller
2.10-Using postman to test our new API Endpoints
2.11-Adding the update and delete endpoints
2.12-Saving our code into source control
2.13-Summary
3-API Architecture
10
3.1-Introduction
3.2-Introduction to the repository pattern
3.3-Creating the repository interface and implementation class
3.4-Implementing the repository methods
3.5-Using the repository in the controller
3.6-Seeding data
3.7-Getting the brands and types
3.8-Filtering the products by brand
3.9-Sorting the products
3.10-Summary
4-The specification pattern
14
4.1-Introduction
4.2-Creating a generic repository
4.3-Implementing the generic repository methods
4.4-Using the generic repository in the controller
4.5-Introduction to the specification pattern
4.6-Setting up the specification classes
4.7-Updating the repository to use the specification
4.8-Using the specification pattern
4.9-Adding sorting to the specification
4.10-Using the debugger
4.11-Adding projection to the spec part 1
4.12-Adding projection to the spec part 2
4.13-Adding projection to the spec part 3
4.14-Summary
5-Sorting, Filtering, Searching & Pagination
8
5.1-Introduction
5.2-Creating product spec parameters
5.3-Adding pagination part 1
5.4-Adding pagination part 2
5.5-Adding pagination part 3
5.6-Creating a Base API controller
5.7-Adding the search functionality
5.8-Summary
6-Error handling on the API
6
6.1-Introduction
6.2-Adding a test controller for error handling
6.3-Exception handling middleware
6.4-Validation error responses
6.5-Adding CORS support on the API
6.6-Summary
7-Angular Setup
7
7.1-Introduction
7.2-Creating the angular project
7.3-Reviewing the Angular project files
7.4-Using HTTPS with the Angular project
7.5-Adding Angular Material and Tailwind CSS
7.6-Adding VS Code extensions for Angular and Tailwind
7.7-Summary
8-Angular Basics
10
8.1-Introduction
8.2-Setting up the folder structure and creating components
8.3-Adding a Header component
8.4-Improving the header component
8.5-Making http requests in Angular
8.6-Introduction to observables
8.7-Introduction to TypeScript
8.8-Typescript demo
8.9-Using Types in our Project
8.10-Summary
9-Building the User Interface for the shop
13
9.1-Introduction
9.2-Introduction to Angular services
9.3-Designing the shop page
9.4-Adding a product item component
9.5-Getting the types and brands lists
9.6-Adding the filtering functionality using Material Dialog
9.7-Adding the filtering functionality using Material Dialog part 2
9.8-Hooking up the filters to the service
9.9-Adding the sorting functionality
9.10-Using a class to supply the parameters for the API request
9.11-Adding pagination to the client using Material
9.12-Adding the search functionality to the client
9.13-Summary
10-Angular Routing
6
10.1-Introduction
10.2-Creating components and routes
10.3-Setting up the links in the app
10.4-Getting an individual product using Route params
10.5-Designing the product details page
10.6-Summary
11-Client side error handling and loading
12
11.1-Introduction
11.2-Creating a test error component
11.3-Creating a NotFound and Server Error component
11.4-Creating an HTTP Interceptor for handling API errors
11.5-Adding toast (snackbar) notifications
11.6-Handling validation errors from the API
11.7-Configuring the server error page
11.8-Configuring the Not found page
11.9-Adding an HTTP Interceptor for loading
11.10-Adding a progress bar to indicate loading
11.11-Making the header fixed to the top
11.12-Summary
12-API - Shopping Cart
8
12.1-Introduction
12.2-Creating a Redis instance to use in our app
12.3-Using Redis with .Net
12.4-Creating the Cart classes
12.5-Creating a Cart service
12.6-Creating the Cart controller
12.7-Testing the Cart in Postman
12.8-Summary
13-Client - Shopping Cart
17
13.1-Introduction
13.2-Creating the cart components
13.3-Introduction to Angular Signals
13.4-Adding the Cart service methods
13.5-Adding an item to the cart
13.6-Using the add item functionality in the product item
13.7-Persisting the cart
13.8-Updating the nav bar with the cart item count
13.9-Styling the cart
13.10-Creating the order summary component
13.11-Creating the order summary component part 2
13.12-Creating the order totals
13.13-Adding additional functions to the service
13.14-Adding these functions to the cart
13.15-Adding the update cart functionality to the product details
13.16-Creating the checkout components
13.17-Summary
14-API - Identity
12
14.1-Introduction
14.2-Setting up identity
14.3-Updating the DB and testing the endpoints
14.4-Adding a custom register endpoint
14.5-Testing the authentication
14.6-Creating additional user endpoints
14.7-Creating extension methods
14.8-Validation errors
14.9-Adding a user address class
14.10-Adding an endpoint to update the user address
14.11-Updating the user address part 2
14.12-Summary
15-Client - Identity
18
15.1-Introduction
15.2-Creating the account components
15.3-Introduction to Angular forms
15.4-Creating the login form
15.5-Updating the header component
15.6-Persisting the login
15.7-Adding an auth interceptor
15.8-Adding an Angular Material Menu
15.9-Adding the register form
15.10-Form validation part 1
15.11-Form validation part 2
15.12-Creating a re-usable text input
15.13-Creating an auth guard
15.14-Updating the auth guard to use observables
15.15-Challenge - empty cart guard
15.16-Challenge solution
15.17-Adding an empty state component
15.18-Summary
16-API & Client Checkout
24
16.1-Introduction
16.2-Creating the delivery methods in the API
16.3-Setting up Stripe
16.4-Implementing the payment intent
16.5-Creating a payment controller
16.6-Checkout page layout
16.7-Adding client side Stripe
16.8-Creating the address element
16.9-Populating the address in the address form
16.10-Save the address as default address
16.11-Creating the delivery component part 1
16.12-Creating the delivery component part 2
16.13-Creating the delivery component part 3
16.14-Creating the payment element
16.15-Creating the review component
16.16-Stripe address auto complete functionality
16.17-Validating step completion part 1
16.18-Validating step completion part 2
16.19-Creating a Stripe confirmation token
16.20-Updating the review component with the token information
16.21-Confirming the payment
16.22-Loading and error notifications
16.23-Checkout success page
16.24-Summary
17-API - Orders
14
17.1-Introduction
17.2-Creating the order aggregate part 1
17.3-Creating the order aggregate part 2
17.4-Configuring the order entities
17.5-Introducing the Unit of work
17.6-Implementing the unit of work
17.7-Using the unit of work
17.8-Creating the order controller
17.9-Debugging the order creation
17.10-Adding the get order methods
17.11-Updating the spec for eager loading
17.12-Updating the controller to eagerly load in the get methods
17.13-Shaping the data to return
17.14-Summary
18-Orders & Payments
14
18.1-Introduction
18.2-Creating the order components
18.3-Submitting the order
18.4-Designing the order component to display orders
18.5-Creating the order detailed page
18.6-Updating the address pipe with type guards
18.7-Adding a webhook endpoint in the payments controller
18.8-Testing the WebHook using the Stripe CLI
18.9-Adding SignalR to the API
18.10-Adding SignalR to the client
18.11-Updating the checkout success page
18.12-Adding a guard to the checkout success
18.13-Adding the home page component style
18.14-Summary
19-Publishing to Azure
13
19.1-Introduction
19.2-Preparing the client app for publishing
19.3-Preparing the .Net app for publishing
19.4-Setting up a cloud Redis server
19.5-Setting up an azure account
19.6-Configuring the web app on Azure
19.7-Creating a Azure DB
19.8-Publishing the app to Azure
19.9-Adding Continuous integration
19.10-Troubleshooting Azure issues
19.11-Making the empty state component reusable
19.12-Updating CI to also build the angular app
19.13-Summary
20-The Coupon Challenge
1
20.1-Challenge - coupon challenge
21-Role based authorization
16
21.1-Introduction
21.2-Adding roles to the app
21.3-Using the roles
21.4-Using the roles
21.5-Updating the Base controller CreatePagedResult method
21.6-Adding refund functionality
21.7-Creating the admin components
21.8-Creating an angular directive
21.9-Creating an admin route guard
21.10-Adding the admin service methods
21.11-Adding the admin component code
21.12-Designing the admin component template
21.13-Populating the orders table
21.14-Adding the order table action button functionality
21.15-Adding a confirmation prompt
21.16-Summary
22-Performance
7
22.1-Introduction
22.2-Setting up caching on the API
22.3-Creating an attribute
22.4-Testing the caching
22.5-Invalidating the cache
22.6-Lazy loading in angular
22.7-End of course summary
23-Legacy version of the course
1
23.1-Legacy course