Mô tả

*** Now updated to .Net 7.0 and Angular 15 as at January 2023***

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.

  • Using Automapper in ASP.NET Core

  • Building a great looking UI using Bootstrap

  • 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 Linux

  • 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.  

Bạn sẽ học được gì

.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

Yêu cầu

  • 3-6 Months prior coding experience

Nội dung khoá học

27 sections

Introduction

4 lectures
Introduction
06:10
Setting up the developer environment
04:01
Setting up VS Code for C# development
07:38
Where to get the source code and course assets
01:38

API Basics

15 lectures
Introduction
04:44
Creating the Web API project
07:26
Running the API using the DotNet CLI
08:36
Reviewing the Web API startup files
11:16
Adding our first API Controller
11:13
Adding a C# Entity class
03:34
Setting up Entity Framework
07:31
Adding a connection string
04:37
Adding an Entity Framework migration
05:19
Updating the database
03:53
Reading the data from the Database in the API
09:59
Postman Collections
03:45
Creating the additional projects
09:31
Saving our project into source control using Git and GitHub
06:56
Summary of section 2
04:21

API Architecture

12 lectures
Introduction
03:15
The Repository Pattern
06:27
Adding a Repository and Interface
06:41
Adding the repository methods
05:29
Extending the products entity and creating related entities
05:19
Creating a new migration for the entities
05:10
Configuring the migrations
11:36
Applying the migrations and creating the Database at app startup
06:15
Adding Seed data
09:27
Adding the code to get the product brands and types
08:38
Eager loading of navigation properties
05:49
Summary of section 3
02:30

API Generic Repository

16 lectures
Introduction
08:05
Creating a Generic repository and interface
06:02
Implementing the methods in the Generic repository
09:10
Introduction to the specification pattern
06:03
Creating a specification class
11:33
Creating a specification evaluator
06:55
Implementing the repository with specification methods
06:31
Using the specification methods in the controller
08:06
Getting a single product with specification
08:43
Using the Debugger to view the spec pattern in action
08:31
Shaping the data to return with DTOs
08:06
Adding AutoMapper to the API project
05:41
Configuring AutoMapper profiles
05:58
Adding a Custom Value Resolver for AutoMapper
08:18
Serving static content from the API
03:35
Summary of section 4
02:35

API Error Handling

10 lectures
Introduction
04:02
Creating a test controller for errors
10:27
Creating a consistent error response from the API
06:20
Adding a not found endpoint error handler
04:20
Creating Exception handler middleware
13:00
Improving the validation error responses
06:45
Adding Swagger for documenting our API
06:13
Improving the swagger documentation
05:30
Cleaning up the Startup class
05:48
Summary of section 5
01:00

API Paging, Filtering, Sorting & Searching

11 lectures
Introduction
05:12
Adding a sorting specification class
05:15
Adding a sorting specification part 2
05:17
Working around the decimal problem in Sqlite
06:13
Adding filtering functionality
05:33
Adding Pagination Part 1
04:21
Adding Pagination Part 2
10:40
Adding Pagination Part 3
09:52
Adding the search functionality
05:10
Adding CORS Support to the API
05:02
Summary of section 6
01:02

Client - Angular setup

7 lectures
Introduction
05:41
Setting up the developer environment for Angular
07:46
Creating the Angular project
02:44
Reviewing the Angular project files in the template
07:34
Setting up Angular to use HTTPS
06:14
Adding bootstrap and font-awesome
09:59
Adding VS Code extensions for Angular
02:12

Client - Angular Basics

10 lectures
Introduction
02:11
Adding a Nav Bar component
04:44
Adding the NavBar HTML code
07:31
Styling the nav bar
05:25
Intro to the Http Client Module
12:43
Observables
06:49
Intro to Typescript
07:58
Typescript Demo
11:47
Creating a products interface
06:51
Summary of section 8
03:20

Client - Building the UI for our shop

20 lectures
Introduction
05:09
Organising our files and folders
09:55
Intro to Angular services
04:48
Consuming services in the component
05:34
Designing the shop page
08:17
Adding a child component for the product items
02:41
Passing down data to child components
08:20
Adding the product filters
05:06
Adding the filter functionality
05:33
Hooking up the filter to the HTML
03:10
Adding the sort functionality
04:32
Adding the pagination functionality
05:38
Adding the pagination functionality part 2
07:10
Adding the pagination functionality part 3
03:53
Adding a pagination header
06:01
Making the pagination component a shared component
05:24
Pagination and Output properties
07:46
Adding the search functionality
07:25
Resolving the Bug!
03:10
Summary of section 9
01:24

Client - Routing

9 lectures
Introduction
02:36
Creating additional components to route to
03:05
Creating the routes
05:37
Setting up the nav links
04:14
Making the links active
06:13
Getting an individual product
06:27
Adding the product detail page
05:50
Lazy loading angular modules
07:11
Summary of section 10
00:47

Client - Error handling

8 lectures
Introduction
01:48
Creating an error component for testing the error responses
12:35
Creating additional error components
02:30
Using the Http Interceptor to catch errors
07:15
Adding toast notifications
06:53
Handling validation errrors
04:12
Improving the internal server error component
09:26
Summary of section 11
01:27

Client - Pazzazz

11 lectures
Introduction
01:11
Adding a section header
04:31
Adding breadcrumbs
04:38
Using the breadcrumb service
04:26
Setting the section header title from the breadcrumb service
06:37
Styling the product items
08:39
Changing the bootstrap theme
05:11
Adding loading indicators
11:35
Cleaning up loading issues
04:13
Adding the home page content
06:04
Summary of section 12
01:47

API - Basket

11 lectures
Introduction
07:07
Setting up Redis
03:34
Setting up the basket class
03:51
Creating a basket repository interface
03:30
Implementing the basket repository
08:24
Adding the basket controller
06:14
Installing Redis with Docker
07:03
Installing Redis on a Mac
04:12
Installing Redis on Windows
06:07
Testing the basket functionality
03:35
Summary of section 13
01:04

Client - Basket

16 lectures
Introduction
01:12
Creating the basket module
04:11
Creating the basket types
04:09
Basket service methods
05:02
Adding an item to the basket service method
09:36
Adding the add item to basket in the component method
03:22
Persisting the basket on startup
02:44
Displaying the basket item count in the nav bar
04:58
Styling the basket page
11:09
Adding the basket totals to the service
05:11
Creating the order summary component
07:58
Adding the increment and decrement functionality
08:31
Adding the basket component functions
04:40
Hooking up the product detail component to the basket
15:01
Adding the checkout module
04:45
Summary of section 14
00:38

API - Identity

18 lectures
Introduction
02:37
Setting up the identity packages
05:27
Setting up the identity classes
06:29
Adding the IdentityDbContext
06:09
Adding a new migration
04:59
Seeding identity data
04:46
Adding the Startup services for identity
03:23
Adding identity to program class
04:08
Adding an Account controller
11:52
Registering a user
06:30
Adding a token generation service
10:03
Setting up identity to use the token
04:10
Testing the token
08:24
Troubleshooting auth issues
11:21
Adding additional account methods
09:33
Adding user manager extension methods
08:01
Adding another Dto for the user
09:36
Summary of section 15
00:44

API - Validation

7 lectures
Introduction
01:03
.Net core error responses
04:51
Model validation
04:42
Checking for duplicate email addresses
08:24
Validating the basket
08:58
Updating swagger config for identity
08:36
Summary of section 16
00:55

Client - Identity

21 lectures
Introduction
02:34
Creating the account module
06:08
Creating the account service methods
05:20
Creating the login form
03:10
Angular forms introduction
03:50
Using reactive forms in Angular
04:55
Submitting data to the server
02:54
Updating the nav bar for the logged in user
03:17
Persisting the login
07:50
Adding a dropdown to the navbar
08:30
Form Validation in Angular
05:09
Displaying validation errors
03:41
Creating a reusable text input
06:06
Reusable text input template
06:34
Creating a register form
08:17
Dealing with modelstate errors
03:39
Async validation
06:08
Improving the async validator
08:04
Creating an auth guard
09:34
Using the replay subject
07:33
Summary of section 17
01:52

API - Orders

22 lectures
Introduction
01:39
Creating the order aggregate part 1
08:52
Creating the order aggregate part 2
07:26
Configuring the order entities
06:34
Store context update and seeding delivery methods
02:50
Creating the order migration
04:23
Creating an order service
05:15
Implementing the create order method
10:38
Creating the order controller
10:25
Debugging the order method
10:34
Introducing the Unit of work
05:39
Implementing the Unit of work
09:37
Updating the generic repository
04:38
Refactoring the Order service to use the Unit of work
06:04
Using the debugger to view the order creation
04:35
Implementing the Order get methods
07:32
Order controller get methods
04:14
Testing the order controller get methods
03:19
Shaping the order data
09:36
AutoMapper config for orders
03:04
Another AutoMapper value resolver
05:14
Summary of section 18
01:33

Client - Checkout

21 lectures
Introduction
01:47
Checkout page layout
02:33
Creating a stepper component
04:15
Setting up the stepper component
09:59
Creating the checkout components
02:25
Adding the checkout form
03:48
Creating the address form
05:31
Creating the delivery form
04:28
Delivery method template
05:12
Using the Http interceptor to send the token
05:34
Making the basket summary shared
10:01
Checkout review component
06:15
Adding the forward back buttons for the stepper
04:50
Using the form status to mark the step complete
03:41
Populating the address form from API
06:52
Letting the user save the address
05:17
Updating the shipping price
04:13
Creating the order interface
02:32
Order submission
09:19
Problem solution and redirect to success
07:30
Summary of section 19
01:06

Client - Order Module

1 lectures
Introduction
05:21

Taking Payments

25 lectures
Introduction
03:15
PCI DSS
04:56
Strong Customer Authentication
07:14
Setting up stripe
03:41
Creating the payment service and interface
04:07
Implementing the payment intent
13:55
Creating the payment controller
08:47
Updating the client basket
06:33
Adding the payment intent function
05:19
Persisting the shipping price
06:40
Implementing stripe elements
06:59
Adding stripe elements to the components
07:11
Displaying card validation errors
03:59
Using the app stepper as an input property
03:12
Submitting the payment
06:32
Testing card failures
07:02
Tying the payment intent to the order
09:09
Making the submission a better experience
12:02
Loading indicators
04:04
Enabling linear mode
07:27
Stripe validation
06:46
Webhooks
08:08
Updating the payments service
06:25
Testing our webhooks with the stripe CLI
07:42
Summary of section 21
03:14

Performance

9 lectures
Introduction
02:00
Setting up caching on the API
08:55
Creating a cache attribute class
11:27
Testing the caching
06:22
Caching on the client part 1
08:08
Caching on the client part 2
08:25
Caching on the client part 3
19:17
Pre-publishing adjustments
05:46
Summary of section 22
01:52

Publishing

11 lectures
Introduction
01:58
Angular build configuration
11:42
Creating Angular production build
06:46
Installing PostgreSQL
06:33
Switching DB Servers
05:54
Switching to the production database
05:16
Pre deployment work
08:08
Deploying app to Linux server part 1
15:47
Deploying app to Linux part 2
14:25
Getting an HTTPS certificate from Lets encrypt
13:04
End of course summary
06:56

Bonus - Updating project to .Net 5 and Angular 11

2 lectures
Updating .Net project from .Net Core 3.1 to .Net 5.0
09:06
Updating Angular project from Angular v9 to Angular v11
12:38

Bonus - Updating project to .Net 6, Angular 12 and Bootstrap 5

4 lectures
Updating .Net project from .Net 5 to .Net 6
14:08
.Net 6 Project changes and new features
17:21
Updating from Angular 11 to Angular 12
08:58
Updating from Bootstrap 4 to Bootstrap 5
12:44

Bonus - Updating project to .Net 7, Angular 15 and Bootstrap 5

9 lectures
Updating the .Net projects to .Net 7
06:48
Update to .Net 7 Minimal hosting model
14:30
Update to Angular 15
16:29
Update to Bootstrap 5
11:01
Basket Service Improvements - section 14 onwards
11:06
Basket component update - section 14-19
08:54
Basket component update - section 19 onwards
20:43
Product-Details component update
11:16
Enabling strict mode in Angular (optional)
09:59

Legacy - Publishing to a LAMP server using MySQL (.Net Core 3.1 only)

7 lectures
Installing MySQL - Legacy
04:23
Switching DB Servers - Legacy
10:27
Switching to the production database - Legacy
14:39
Pre deployment work - Legacy
13:31
Setting up a linux server part 1 - Legacy
16:14
Setting up a linux server part 2 - Legacy
17:37
Getting an HTTPS certificate from Lets Encrypt - Legacy
08:14

Đánh giá của học viên

Chưa có đánh giá
Course Rating
5
0%
4
0%
3
0%
2
0%
1
0%

Bình luận khách hàng

Viết Bình Luận

Bạn đánh giá khoá học này thế nào?

image

Đăng ký get khoá học Udemy - Unica - Gitiho giá chỉ 50k!

Get khoá học giá rẻ ngay trước khi bị fix.