Proof of item:
ASP.NET Core is the next generation of ASP.NET MVC. It’s a complete re-write of this framework but in a modular, cloud-optimized and cross-platform way. So it can run on Windows, Linux and Mac. If you’re on Mac or Linux and want to build ASP.NET applications without running Windows in a virtual machine, you’re going to love ASP.NET Core! You can use Visual Studio Code (VSCode) or your favorite code editor to build ASP.NET Core applications with C#. Say goodbye to VMWare, Parallels, and other virtualization software.
Many companies have already started building their new applications with ASP.NET Core. And they’re asking their new interviewees if they are familiar with .NET Core. So, whether you want to stay in the marketplace and get a better job with better pay, or you just love to work with the latest technology, it’s time to learn about ASP.NET Core and Entity Framework Core.
In this course, I teach you how to build a real-world application with ASP.NET Core, Entity Framework Core and Angular. If you’re familiar with ASP.NET MVC 5 and Entity Framework 6 and are looking for a course to quickly get up to speed with .NET core, this is the course for you. Not only will you learn about the changes and the new tooling in ASP.NET Core, you’ll also learn how to properly integrate it with Angular to build real-world single page applications (SPAs).
A REAL-WORLD APP
The app you build in this course is for an imaginary vehicle dealer. I’ve carefully designed the features in this app to help you master the core skills you need to build real-world apps with ASP.NET Core and Angular.
By the end of watching this course, you’ll be able to:
- Build APIs with ASP.NET Core
- Test APIs with PostMan
- Integrate Angular and ASP.NET Core
- Implement a clean and decoupled architecture
- Understand and apply the Dependency Inversion Principle (DIP)
- Properly implement the repository and unit of work patterns
- Use the new dependency injection feature in ASP.NET Core
- Troubleshoot common runtime errors
- Store and retrieve data with Entity Framework Core (code-first workflow)
- Use AutoMapper
- Implement CRUD operations (including one-to-many and many-to-many relationships)
- Implement filtering, sorting and paging data
- Handle and logging errors
- Display toast notifications
- Implement cascading drop-down lists
- Implement photo upload with progress bars
- Add authentication and authorization with Auth0 (including roles with different privileges)
- Display charts
- And more…
On top of all these, you’ll learn how to write quality code, not just how to build apps. There are a lot of developers out there who can build apps but they write poor quality code. I show you how to refactor bad code into clean, maintainable and quality code. I also share my knowledge and 15 years of experience about software design and architecture. So this course is more than just technology. It teaches you how to think like a software engineer.
These are the essential skills that you take with you to nearly every real-world project. Whether you want to get prepared for a job interview or simply want to take your coding skills to the next level, this course is the means to the destination.
THE TOOLING
There are two ways to build ASP.NET Core applications. You can use Visual Studio 2017 or Visual Studio Code, a light-weight cross-platform code editor. In this course, I use VSCode and the command-line to build an app, but what you learn can be applied in Visual Studio 2017 as well.
WHO THIS COURSE IS FOR
In order to take this course, you should have at least 3 months experience with ASP.NET MVC 5, Entity Framework 6 and Angular 2 (or higher).
If you need to strengthen your understanding of these frameworks, you can watch my related courses prior to or in parallel with this course:
- Angular 4: Beginner to Pro
- The Complete ASP.NET MVC 5 Course
- Entity Framework 6 in Depth
60 DAY CHALLENGE PROGRAM
Depending on your level of experience, there are different ways to take this course. You can watch it, section by section, just like other courses. You may prefer to code along with the videos or watch a section first and then code.
But if you like to get out of your comfort zone and take your coding skills to the next level, you should take advantage of the 60 day challenge program that comes with this course.
Imagine you and I are team mates and are working on a real-world project. Every week I give you a challenge or a task to complete. You have one week to complete this task. The following week I publish a new section and show you how he completes that task myself. This is a fantastic learning opportunity for you. You can compare your code with mine and find areas for improvement.
WHAT THIS COURSE IS NOT
While you use ASP.NET Core and Entity Framework to build an app, the focus of this course is on application building skills and not a deep overview of ASP.NET Core and Entity Framework. Because in any real-world applications, you use only a subset of the features in any frameworks. So, it’s impossible to cover everything about ASP.NET Core and Entity Framework in one app. But you’ll learn about the key things that you need to know in order to get the job done.
Also, the following topics are outside the scope of this course:
- Complex domains and domain-driven design (DDD)
- Design patterns
- Continuous integration and deployment
- Automated testing
Finally, the application you’ll build in this course has a very simple user interface since the focus of this course is on coding not building visually engaging user interfaces.
Course Curriculum
Getting Started (1h)
PreviewCourse Introduction (1:45)
PreviewScope (5:30)
PreviewPrerequisites (1:13)
PreviewApplication Requirements (2:20)
PreviewSetting Up the Development Environment (5:44)
PreviewInstalling SQL Server on macOS : Linux (9:26)
PreviewCreating a Project (4:11)
PreviewProject Structure (4:53)
PreviewApplication Startup (7:02)
StartEnvironments (4:55)
Start.NET Watch (2:47)
StartDebugging in VSCode (2:12)
StartWorking with Git (1:05)
StartUse Cases (5:20)
Building API’s with ASP.Net Core (1h)
StartIntroduction (0:58)
StartImpementation Options (1:59)
StartBuilding the Domain Model (4:59)
StartInstalling Entity Framework Core (4:39)
StartCreating a DbContext (4:14)
StartUsing Configuration (4:06)
StartCreating the Database (8:30)
StartApplying Constraints (5:28)
StartSeeding the Database (7:16)
StartBuilding an API (3:51)
StartCommon Runtime Errors (2:44)
StartAPI Resources (3:32)
StartAutoMapper (6:08)
StartChallenge 2- Building Forms
Building Angular Forms (50m)
StartIntroduction (0:47)
StartCreating an Angular Component (4:13)
StartCreating a Route (1:42)
StartBuilding a Bootstrap Form (3:49)
StartCreating a Service (3:10)
StartPopulating Drop-down Lists (3:30)
StartImplementing the Cascading Behaviour (7:25)
StartRendering Dynamic Checkboxes (4:42)
StartRefactoring- Merging Services (6:04)
StartDiscussion- Merging Controllers (3:46)
StartAdding Radio Buttons (2:51)
StartAdding Text Boxes-final (2:12)
StartChallenge 3- Building APIs for CRUD Operations
Implementing CRUD Operations – API’s (1h10m)
StartIntroduction API (0:34)
StartRevisiting the Domain Model (1:31)
StartExtending the Domain Model (3:15)
StartDealing with Many-to-many Relationships (6:08)
StartBuilding an API to Create an Object (2:55)
StartWhy API Resources Should be Different from Domain Classes (6:00)
StartCreating API Resources (2:12)
StartMapping API Resources to Domain Objects (5:14)
StartAdding a Record to the Database (5:26)
StartImplementing Validation (9:55)
StartBuilding an API to Update Objects (4:09)
StartMapping Collections (6:15)
StartRefactoring Using LINQ (6:11)
StartBuilding an API to Delete an Object (2:40)
StartBuilding an API to Get an Object (2:02)
StartChallenge 4- Refactoring Towards the Clean Architecture
Refactoring Towards the Clean Architecture (1h15m)
StartIntroduction (1:00)
StartSeparating API Resources (6:03)
StartRefactoring- Separating API Resources (6:19)
StartRefactoring- Using Key Value Pairs (4:37)
StartChanging the Return Type of APIs (4:40)
StartRepository Pattern (2:33)
StartDependency Injection (5:15)
StartDecoupling from Entity Framework (8:54)
StartThe Unit of Work Pattern (6:55)
StartFixing a Few Bugs (3:32)
StartFalse Argument 1- Repository over Repository (3:57)
StartFalse Argument 2- Increased Complexity (0:36)
StartFalse Arguments 3- Simple or Complex Apps (1:27)
StartFalse Argument 4- Repository coupled to EF (4:44)
StartFalse Arguments Against the Repository Pattern (2:49)
StartDependency Inversion Principle (6:32)
StartLayers vs Tiers-final (2:57)
StartChallenge 5- Populating and Submitting Forms
Populating and Submitting Forms (1h25m)
StartIntroduction (0:35)
StartBinding the Drop-down Lists (3:51)
StartBinding the Dynamic Check Boxes (2:45)
StartBinding the Text Boxes (1:22)
StartSubmitting the Form (2:00)
StartClient-side Validation (3:53)
StartDisplaying Toast Notifications (7:25)
StartGlobal Error Handling (5:00)
StartZones in Angular (7:58)
StartLogging Errors (5:41)
StartDevelopment vs Production Environment (3:04)
StartImplementing Editing (5:32)
StartSending Parallel Requests (4:59)
StartCreating Interfaces (6:26)
StartPopulating the Form (2:39)
StartImplementing the Delete (2:46)
StartChallenge 6- Filtering, Sorting and Pagination
Filtering, Sorting and Paging (1h20m)
StartIntroduction (0:29)
StartCode Review (3:11)
StartAdding the Filters (4:38)
StartFiltering on the Client (3:36)
StartFiltering on the Server (4:33)
StartPassing the Filters to the Server (6:22)
StartSorting Data on the Server (4:32)
StartRefactoring- Using Dictionaries (4:49)
StartRefactoring- Extract Method (2:19)
StartRefactoring- Extension Methods (7:46)
StartSending the Sort Parameters to the Server (2:23)
StartAdding the Sort Icons (3:26)
StartRendering Columns Dynamically (2:58)
StartImplementing Paging on the Server (5:22)
StartPagination Component (2:58)
StartCalculating the Total (5:52)
StartEdge Cases (3:27)
StartChallenge 7
StartAdditional Resources
Uploading Photos (1h15m)
StartIntroduction (0:21)
StartThe Approach (3:12)
StartCode Review (4:56)
StartExtending the Domain (2:15)
StartBuilding an API (10:44)
StartTesting the API (1:26)
StartImplementing Validation (3:04)
StartUsing Configuration (5:33)
StartBuilding the Client-side (6:40)
StartRendering the Uploaded Photos (4:47)
StartTracking the Upload Progress (7:32)
StartAdding a Bootstrap Progress Bar (4:47)
StartFixing the Memory Leaks (7:48)
StartHandling the Errors (3:10)
StartChallenge 8- Authentication and Authorization
Authentication and Authorization (1h45m)
StartIntroduction (0:57)
StartAuthentication Requirements (0:57)
StartArchitecture (4:55)
StartSetting Up an Auth0 Account (2:20)
StartSecuring APIs (4:37)
StartInspecting a JWT (0:48)
StartSecuring Client Apps (7:29)
StartLogin and Logout (6:40)
StartHosted Login Pages (4:30)
StartSetting the Audience (8:09)
StartBreak (0:43)
StartGetting the User’s Profile (5:29)
StartAdding Additional Signup Fields (4:44)
StartUsing Rules (3:32)
StartAssigning Users to Roles (2:18)
StartShowing or Hiding Content (6:57)
StartRefactoring (6:12)
StartProtecting Routes (6:47)
StartCalling Secured APIs (5:40)
StartRestricting API Access to Certain Roles (3:34)
StartImplementing the Authorization Requirements (2:28)
StartAdditional Resources
Final Improvements (25m)
StartAdding Carts (4:37)
StartOptimizing Queries (3:55)
StartFixing a Bug (1:59)
StartExtracting a Service Layer (12:28)
StartSupporting Multiple Storages (6:41)
StartUsing the Secret Manager (8:17)
Great seller, nice products, FAST SHIPPING!!! | Mosh Hamedani – Build a Real-world App with ASP.NET Core 1.0+ and Angular 2+