Урок 1.00:07:18
Introduction to the course
Урок 2.00:05:11
Setting up the developer environment
Урок 3.00:02:54
Getting help
Урок 4.00:02:16
Course assets and source code
Урок 5.00:02:27
Introduction
Урок 6.00:07:22
Creating the .Net API Project using the dotnet CLI
Урок 7.00:07:18
Setting up VS code to work with C#
Урок 8.00:10:06
.Net 6 update - switching to the classic hosting model
Урок 9.00:12:42
Getting to know the API project files
Урок 10.00:05:45
Creating our first Entity
Урок 11.00:06:35
Introduction to Entity Framework
Урок 12.00:03:40
Adding Entity Framework to our project
Урок 13.00:08:42
Adding a DbContext class
Урок 14.00:11:57
Creating the Connection string
Урок 15.00:04:45
Creating the database using Entity Framework Code first migrations
Урок 16.00:11:01
Adding a new API Controller
Урок 17.00:06:22
Making our code Asynchronous
Урок 18.00:10:31
Saving our code into Source control
Урок 19.00:02:41
Section 2 Summary
Урок 20.00:01:57
Introduction
Урок 21.00:08:01
Creating the Angular application
Урок 22.00:10:23
Running the angular project and reviewing the bootstrap of the app
Урок 23.00:02:53
Adding VS Code extensions to work with Angular
Урок 24.00:13:14
Making HTTP requests in Angular
Урок 25.00:04:34
Adding CORS support in the API
Урок 26.00:05:11
Displaying the fetched users in the browser
Урок 27.00:09:32
Adding bootstrap and font-awesome
Урок 28.00:06:32
Using HTTPS in angular - MAC
Урок 29.00:06:36
Using HTTPS in angular - WINDOWS
Урок 30.00:02:17
Saving into source control
Урок 31.00:01:21
Section 3 summary
Урок 32.00:03:11
Introduction
Урок 33.00:07:18
Safe storage of passwords
Урок 34.00:02:52
Updating the user entity
Урок 35.00:03:58
Creating a base API controller
Урок 36.00:11:03
Creating an Account Controller with a register endpoint
Урок 37.00:09:18
Using the debugger
Урок 38.00:07:25
Using DTOs
Урок 39.00:03:38
Adding validation
Урок 40.00:10:40
Adding a login endpoint
Урок 41.00:05:43
JSON web tokens
Урок 42.00:07:16
Adding a token service
Урок 43.00:06:51
Adding the create token logic
Урок 44.00:05:46
Creating a User DTO and returning the token
Урок 45.00:06:48
Adding the authentication middleware
Урок 46.00:06:59
Adding extension methods
Урок 47.00:03:47
Section 4 summary
Урок 48.00:01:45
Introduction
Урок 49.00:10:03
Creating a nav bar
Урок 50.00:06:08
Introduction to Angular template forms
Урок 51.00:05:49
Introduction to Angular services
Урок 52.00:04:01
Injecting services into components
Урок 53.00:06:06
Using conditionals to show and remove content
Урок 54.00:06:49
Using the angular bootstrap components - dropdown
Урок 55.00:09:00
Introduction to observables
Урок 56.00:12:30
Persisting the login
Урок 57.00:05:18
Using the async pipe
Урок 58.00:06:16
Adding a home page
Урок 59.00:05:39
Adding a register form
Урок 60.00:10:08
Parent to child communication
Урок 61.00:05:35
Child to parent communication
Урок 62.00:09:55
Hooking up the register method to the service
Урок 63.00:01:57
Section 5 summary
Урок 64.00:01:50
Introduction
Урок 65.00:07:45
Creating some more components
Урок 66.00:03:35
Adding the nav links
Урок 67.00:02:43
Routing in code
Урок 68.00:09:40
Adding a toast service for notifications
Урок 69.00:08:53
Adding an Angular route guard
Урок 70.00:04:22
Adding a dummy route
Урок 71.00:05:40
Adding a new theme
Урок 72.00:05:38
Tidying up the app module by using a shared module
Урок 73.00:02:24
Section 6 summary
Урок 74.00:01:10
Introduction
Урок 75.00:09:46
Creating an error controller for testing errors
Урок 76.00:07:23
Handling server errors
Урок 77.00:11:38
Exception handling middleware
Урок 78.00:08:08
Testing errors in the client
Урок 79.00:13:18
Adding an error interceptor
Урок 80.00:06:20
Validation errors
Урок 81.00:03:44
Handling not found
Урок 82.00:10:51
Adding a server error page
Урок 83.00:03:10
Section 7 summary
Урок 84.00:01:59
Introduction
Урок 85.00:03:49
Extending the user entity
Урок 86.00:04:15
Adding a DateTime extension to calculate age
Урок 87.00:08:38
Entity Framework relationships
Урок 88.00:06:40
Generating seed data
Урок 89.00:11:08
Seeding data part one
Урок 90.00:07:18
Seeding data part two
Урок 91.00:07:26
The repository pattern
Урок 92.00:06:52
Creating a repository
Урок 93.00:05:10
Updating the users controller
Урок 94.00:02:33
Adding a DTO for Members
Урок 95.00:03:36
Adding AutoMapper
Урок 96.00:05:37
Using AutoMapper
Урок 97.00:02:44
Configuring AutoMapper
Урок 98.00:13:31
Using AutoMapper queryable extensions
Урок 99.00:02:04
Section 8 summary
Урок 100.00:01:47
Introduction
Урок 101.00:07:39
Using TypeScript
Урок 102.00:02:59
Creating the member interface
Урок 103.00:08:23
Adding a member service
Урок 104.00:05:51
Retrieving the list of members
Урок 105.00:04:46
Creating member cards
Урок 106.00:06:11
Adding some style to the cards
Урок 107.00:05:20
Adding animated buttons
Урок 108.00:07:44
Using an interceptor to send the token
Урок 109.00:05:45
Routing to the detailed page
Урок 110.00:06:10
Styling the member detailed page
Урок 111.00:06:30
Styling the member detailed page part two
Урок 112.00:13:08
Adding a photo gallery
Урок 113.00:01:50
Section 9 summary
Урок 114.00:02:18
Introduction
Урок 115.00:05:32
Creating a member edit component
Урок 116.00:07:57
Creating the edit template form
Урок 117.00:08:50
Adding the update functionality
Урок 118.00:07:24
Adding a Can Deactivate route guard
Урок 119.00:08:45
Persisting the changes in the API
Урок 120.00:02:39
Updating the user in the client app
Урок 121.00:10:05
Adding loading indicators
Урок 122.00:09:53
Using the service to store state
Урок 123.00:01:22
Section 10 summary
Урок 124.00:07:12
Introduction
Урок 125.00:06:17
Cloudinary Account
Урок 126.00:04:58
Configuring cloudinary in the API
Урок 127.00:10:53
Adding a photo service
Урок 128.00:09:10
Updating the users controller
Урок 129.00:07:47
Testing the photo upload
Урок 130.00:06:01
Using the Created At Route method
Урок 131.00:04:06
Adding a photo editor component
Урок 132.00:10:28
Adding a photo uploader
Урок 133.00:08:25
Adding a photo uploader part two
Урок 134.00:06:41
Setting the main photo in the API
Урок 135.00:09:34
Adding the main photo image to the nav bar
Урок 136.00:07:37
Setting the main photo in the client
Урок 137.00:06:34
Deleting photos - API
Урок 138.00:05:25
Deleting photos - Client
Урок 139.00:01:35
Section 11 summary
Урок 140.00:02:00
Introduction
Урок 141.00:06:03
Reactive forms introduction
Урок 142.00:02:50
Client side validation
Урок 143.00:06:12
Adding custom validators
Урок 144.00:08:31
Validation feedback
Урок 145.00:13:11
Creating a reusable text input
Урок 146.00:02:32
Using the form builder service
Урок 147.00:05:17
Expanding the register form
Урок 148.00:13:19
Adding a reusable date input
Урок 149.00:06:46
Updating the API register method
Урок 150.00:12:18
Client side registration
Урок 151.00:02:05
Section 12 summary
Урок 152.00:05:40
Introduction
Урок 153.00:09:01
Adding a paged list class
Урок 154.00:08:50
Adding helper classes for pagination
Урок 155.00:11:38
Using the pagination classes
Урок 156.00:10:50
Setting up client pagination
Урок 157.00:05:18
Using the angular bootstrap pagination component
Урок 158.00:06:55
Adding filtering to the API
Урок 159.00:05:59
Adding additional filters
Урок 160.00:11:29
Cleaning up the member service
Урок 161.00:10:39
Adding filter buttons to the client
Урок 162.00:04:32
Adding sorting functionality
Урок 163.00:08:37
Adding an action filter
Урок 164.00:05:26
Making the Last Active action filter more optimal
Урок 165.00:06:51
Sorting on the client
Урок 166.00:05:32
Formatting dates
Урок 167.00:09:20
Restoring the caching for members
Урок 168.00:10:19
Restoring caching for member detailed
Урок 169.00:06:14
Remembering the filters for a user in the service
Урок 170.00:02:00
Section 13 summary
Урок 171.00:02:33
Introduction
Урок 172.00:08:19
Adding a likes entity
Урок 173.00:04:45
Adding a likes repository
Урок 174.00:07:40
Implementing the likes repository
Урок 175.00:11:00
Controller methods for the likes feature
Урок 176.00:07:11
Setting up the likes functions in the Angular app
Урок 177.00:07:29
Adding the likes component
Урок 178.00:07:34
Adding pagination for the likes
Урок 179.00:06:09
Paginating the likes on the client
Урок 180.00:02:12
Section 14 summary
Урок 181.00:01:42
Introduction
Урок 182.00:05:48
Setting up the entities for messaging
Урок 183.00:06:07
Setting up the message repository
Урок 184.00:02:40
Setting up the automapper profiles
Урок 185.00:08:26
Adding a message controller
Урок 186.00:10:20
Getting the messages from the Repo
Урок 187.00:09:41
Getting the message thread for 2 users
Урок 188.00:12:51
Setting up the Angular app for messaging
Урок 189.00:12:19
Designing the inbox
Урок 190.00:05:31
Adding the message thread in the client
Урок 191.00:11:01
Styling the message thread
Урок 192.00:07:33
Activating the message tab
Урок 193.00:09:23
Using query params
Урок 194.00:08:23
Using route resolvers
Урок 195.00:08:04
Sending messages
Урок 196.00:02:48
Fixing the photo weirdness
Урок 197.00:05:58
Deleting messages on the API
Урок 198.00:07:40
Deleting messages on the client
Урок 199.00:01:54
Section 15 summary
Урок 200.00:04:11
Introduction
Урок 201.00:06:20
Setting up the entities
Урок 202.00:06:34
Configuring the DbContext
Урок 203.00:04:37
Configuring the startup class
Урок 204.00:05:46
Refactoring and adding a new migration
Урок 205.00:06:33
Updating the seed method
Урок 206.00:06:12
Updating the account controller
Урок 207.00:06:13
Adding roles to the app
Урок 208.00:08:42
Adding the roles to the JWT token
Урок 209.00:05:06
Adding policy based authorisation
Урок 210.00:04:12
Getting the users with roles
Урок 211.00:05:58
Editing user roles
Урок 212.00:02:13
Adding an admin component
Урок 213.00:09:35
Adding an admin guard
Урок 214.00:09:02
Adding a custom directive
Урок 215.00:07:35
Adding the edit roles component
Урок 216.00:09:15
Setting up modals
Урок 217.00:05:38
Editing roles in the client
Урок 218.00:11:17
Editing roles part two
Урок 219.00:01:26
Section 16 summary
Урок 220.00:04:30
Introduction
Урок 221.00:05:07
Adding a presence hub
Урок 222.00:04:03
Authenticating to SignalR
Урок 223.00:10:30
Client side SignalR
Урок 224.00:11:38
Adding a presence tracker
Урок 225.00:07:51
Displaying online presence
Урок 226.00:09:05
Creating a message hub
Урок 227.00:04:38
Adding the send message method to the hub
Урок 228.00:04:06
Adding the hub connection to the message service
Урок 229.00:06:08
Refactoring the message components to use the hub
Урок 230.00:07:08
Sending messages via the hub
Урок 231.00:10:03
Tracking the message groups
Урок 232.00:06:51
Updating the message hub with group tracking
Урок 233.00:05:26
Dealing with UTC date formats
Урок 234.00:11:02
Notifying users when they receive a message
Урок 235.00:06:50
Optimizing the presence
Урок 236.00:12:36
Optimizing the messages
Урок 237.00:01:39
Section 17 summary
Урок 238.00:03:29
Introduction
Урок 239.00:06:19
Implementing the unit of work
Урок 240.00:07:55
Refactoring the controllers to use the unit of work
Урок 241.00:09:16
Optimizing queries part one
Урок 242.00:05:48
Fixing UTC dates again
Урок 243.00:05:18
Optimizing queries part two
Урок 244.00:07:46
Adding a confirmation service to the angular app
Урок 245.00:07:34
Getting the data from the confirmation modal
Урок 246.00:04:19
Tidying up the member message component
Урок 247.00:02:46
Section 18 summary
Урок 248.00:06:58
Photo management challenge
Урок 249.00:06:50
Introduction
Урок 250.00:05:44
Preparing the angular app and serving this from the API server
Урок 251.00:05:11
Adding a fallback controller
Урок 252.00:04:59
Creating an angular production build
Урок 253.00:07:42
Switching the DB Server to PostGres
Урок 254.00:08:18
Changing the DB Server in our app
Урок 255.00:07:44
Setting up Heroku
Урок 256.00:11:16
Deploying the app to Heroku
Урок 257.00:11:11
Using branches in git and connecting Heroku to GitHub
Урок 258.00:04:44
Merging changes and redeploying
Урок 259.00:05:18
End of course summary
Урок 260.00:11:22
How to update .Net 5 to .Net 6
Урок 261.00:19:08
.Net 6 new features and how to update the project to use them
Урок 262.00:14:03
Updating Angular to v12
Урок 263.00:21:22
How to update Bootstrap to v5
thanks