Урок 1.00:01:46
Introduction
Урок 2.00:05:32
The Scope
Урок 3.00:01:15
Prerequisites
Урок 4.00:02:21
Application Requirements
Урок 5.00:05:45
Setting Up the Development Environment
Урок 6.00:09:27
Installing SQL Server on macOS / Linux
Урок 7.00:04:12
Creating a New Project
Урок 8.00:04:54
Project Structure
Урок 9.00:07:03
Application Startup
Урок 10.00:04:56
Environments
Урок 11.00:02:49
.NET Watch Tool
Урок 12.00:02:13
Debugging in VSCode
Урок 13.00:01:06
Working with Git
Урок 14.00:05:21
Use Cases
Урок 15.00:01:00
Introduction
Урок 16.00:02:00
Implementation Options
Урок 17.00:05:01
Building the Domain Model
Урок 18.00:04:41
Adding Entity Framework Core
Урок 19.00:04:15
Creating a DbContext
Урок 20.00:04:07
Using Configuration
Урок 21.00:08:31
Creating the Database
Урок 22.00:05:30
Applying Constraints
Урок 23.00:07:17
Seeding the Database
Урок 24.00:03:52
Building an API
Урок 25.00:02:45
Common Runtime Errors
Урок 26.00:03:33
API Resources
Урок 27.00:06:10
Using AutoMapper
Урок 28.00:00:48
Introduction
Урок 29.00:04:15
Adding a New Angular Component
Урок 30.00:01:43
Creating a Route
Урок 31.00:03:50
Using Bootstrap Forms
Урок 32.00:03:11
Creating a Service
Урок 33.00:03:31
Populating Drop-down Lists
Урок 34.00:07:27
Implementing Cascading Drop-down Lists
Урок 35.00:04:43
Rendering Dynamic Check Boxes
Урок 36.00:06:05
Refactoring: Merging Services
Урок 37.00:03:47
Discussion: Merging Controllers
Урок 38.00:02:53
Adding Radio Buttons
Урок 39.00:02:13
Adding Text Boxes
Урок 40.00:00:35
Introduction
Урок 41.00:01:33
Revisiting the Domain Model
Урок 42.00:03:16
Extending the Domain Model
Урок 43.00:06:09
Dealing with Many-to-many Relationships
Урок 44.00:02:57
Building an API to Create Objects
Урок 45.00:06:02
API Resources vs Domain Classes
Урок 46.00:02:13
Creating an API Resource
Урок 47.00:05:15
Mapping API Resources to Domain Classes
Урок 48.00:05:27
Adding a Record to the Database
Урок 49.00:09:56
Implementing Server-side Validation
Урок 50.00:04:11
Building an API to Update Objects
Урок 51.00:00:00
Mapping Collections
Урок 52.00:05:13
Refactoring: Using LINQ
Урок 53.00:02:41
Building an API to Delete Objects
Урок 54.00:02:03
Building an API to Get Objects
Урок 55.00:01:01
Introduction
Урок 56.00:06:04
Separating API Resources
Урок 57.00:06:20
Refactoring: Separating API Resources
Урок 58.00:04:38
Refactoring: Using KeyValuePairResource
Урок 59.00:04:41
Changing the Return Type of APIs
Урок 60.00:02:35
The Repository Pattern
Урок 61.00:05:16
Dependency Injection
Урок 62.00:08:55
Decoupling from Entity Framework
Урок 63.00:06:56
The Unit of Work Pattern
Урок 64.00:03:33
Fixing a Few Bugs
Урок 65.00:03:58
False Argument 1: Repository over Repository
Урок 66.00:00:37
False Argument 2: Increased Complexity
Урок 67.00:01:28
False Argument 3: Simple or Complex Apps
Урок 68.00:04:46
False Argument 4: Repository Coupled to Entity Framework
Урок 69.00:02:50
False Argument 5: Persistence Model
Урок 70.00:06:33
Dependency Inversion Principle
Урок 71.00:02:59
Layers vs Tiers
Урок 72.00:00:36
Introduction
Урок 73.00:03:52
Binding the Drop-down Lists to the Model
Урок 74.00:02:47
Binding the Checkboxes
Урок 75.00:01:23
Binding the Textboxes
Урок 76.00:02:01
Submitting the Form
Урок 77.00:03:54
Client-side Validation
Урок 78.00:07:27
Displaying Toast Notifications
Урок 79.00:05:01
Global Error Handling
Урок 80.00:07:59
Zones in Angular
Урок 81.00:05:42
Logging Errors
Урок 82.00:03:06
Development vs Production Environment
Урок 83.00:05:33
Implementing Editing
Урок 84.00:05:00
Sending Parallel Requests
Урок 85.00:06:27
Creating Interfaces
Урок 86.00:02:40
Populating the Form
Урок 87.00:02:13
Implementing the Update
Урок 88.00:02:47
Implementing the Delete
Урок 89.00:00:31
Introduction
Урок 90.00:03:12
Code Review: Vehicles List
Урок 91.00:04:39
Adding the Filters
Урок 92.00:03:37
Filtering on the Client
Урок 93.00:04:34
Filtering on the Server
Урок 94.00:06:23
Passing the Filters to the Server
Урок 95.00:04:33
Sorting on the Server
Урок 96.00:04:51
Refactoring: Using Dictionaries
Урок 97.00:02:20
Refactoring: Extract Method
Урок 98.00:07:47
Refactoring: Using Extension Methods and Generics
Урок 99.00:02:24
Sending the Sort Parameters to the Server
Урок 100.00:03:27
Adding the Sort Icon
Урок 101.00:02:59
Rendering the Columns Dynamically
Урок 102.00:05:23
Paging on the Server
Урок 103.00:02:59
Adding a Pagination Component
Урок 104.00:05:53
Calculating the Total
Урок 105.00:03:28
Edge Cases
Урок 106.00:00:23
Introduction
Урок 107.00:03:13
The Approach
Урок 108.00:04:58
Code Review
Урок 109.00:02:16
Extending the Domain Model
Урок 110.00:10:45
Building an API
Урок 111.00:01:27
Testing the API
Урок 112.00:03:05
Adding Validation
Урок 113.00:05:34
Refactoring to Use Configuration
Урок 114.00:06:41
Building the Client-side
Урок 115.00:04:48
Rendering the Uploaded Photos
Урок 116.00:07:33
Tracking the Upload Progress
Урок 117.00:04:49
Adding a Bootstrap Progress Bar
Урок 118.00:07:50
Fixing the Memory Leaks
Урок 119.00:03:12
Handling the Errors
Урок 120.00:00:59
Introduction
Урок 121.00:00:58
Requirements
Урок 122.00:04:57
Architecture
Урок 123.00:02:21
Setting Up an Auth0 Account
Урок 124.00:04:38
Securing APIs
Урок 125.00:00:49
Inspecting a JSON Web Token (JWT)
Урок 126.00:07:30
Securing Client Apps
Урок 127.00:06:41
Login and Logout
Урок 128.00:04:31
Using Hosted Login Pages
Урок 129.00:08:11
Setting the Audience for the Token
Урок 130.00:00:44
Exercise
Урок 131.00:05:30
Getting the User's Profile
Урок 132.00:04:46
Adding Additional Signup Fields
Урок 133.00:03:33
Using Rules
Урок 134.00:02:19
Assigning Users to Roles
Урок 135.00:02:53
Returning Custom Claims
Урок 136.00:06:58
Showing/Hiding Content Based on the User's Role
Урок 137.00:06:13
Refactoring
Урок 138.00:06:48
Protecting Routes
Урок 139.00:05:42
Calling Secured APIs
Урок 140.00:03:35
Restricting API Access to Certain Roles
Урок 141.00:02:30
Implementing the Authorization Requirements
Урок 142.00:04:38
Adding Charts
Урок 143.00:03:57
Optimizing Queries
Урок 144.00:02:00
Fixing a Bug
Урок 145.00:12:29
Extracting a Service Layer
Урок 146.00:06:42
Supporting Multiple Storages
Урок 147.00:08:18
Using the Secret Manager