Creating a modular, testable, and maintainable application in .NET Core requires a solid foundation. Setting up an application architecture requires foresight and much consideration as early decisions will impact how easily the application is extended and maintained. In the long run, though, applications need to be maintained and, in this case, extended. Between its design and the way, the code was written, neither is really possible and so the application needs to be redesigned and future-proofed. In this course, we will explore foundational architectural principles that help with the creation of maintainable code. Next, discover how to set up a real-world application architecture with ASP.NET Core. Then, you will learn how to plug in different, common blocks such as email and authentication and have a foundation to plug in other third-party services as needed. By the end of this course, you will have the skills and knowledge of creating a testable and maintainable ASP.NET Core application needed to architect real-world enterprise .NET Core apps.
Overview
COURSE DIFFICULTY
Skills Learned
After completing this online training course, students will be able to:
Learn clean architecture and implement SOLID principles
Build a .NET Core API and Blazor UI Application
Learn about custom exceptions and global error handling
Implement JWT authentication to build API client-secure application
Use Swagger for API documentation and add Email Service using SendGrid
Implement CQRS pattern and Mediator pattern
01. Preliminary Concepts
- Review of S.O.L.I.D. Principles
- Single Responsibility Principle
- DRY Principle
- Dependency Inversion
- Understanding Clean Architecture
- What We Will Be Building
02. Setting Clean Architecture Solution
- Development Environment
- Get Latest Visual Studio
- Setting Up Solution
- Overview of Solution Parts
03. Setting Up the Application Core
- Create the Domain Project
- Create Application Core Project
- Understanding CQRS, Mediator, and AutoMapper
- Add AutoMapper and MediatR
- Set Up Features Folder Structure (Vertical Slice Architecture)
- Creating CQRS Query Request and Handler – Part 1
- Creating CQRS Query Request and Handler – Part 2
- Creating CQRS Command Request and Handler – Part 1
- Creating CQRS Command Request and Handler – Part 2
- Adding Custom Exceptions
- Adding FluentValidation
04. Setting Up Infrastructure Projects
- Create the Persistence Project
- Add Entity Framework and Database Context
- Add Repository Implementations
- EF Core – No Tracking
- Completing Repositories
- Create Infrastructure Project
- Add Third-Party Email Service
- Add Third-Party Logging (SeriLog)
05. Creating the API Project
- Create the API Project
- Scaffolding Database
- Implementing Controller with MediatR – Part 1
- Implementing Controller with MediatR – Part 2
- Complete Leave Allocation Feature
- Complete Leave Request Feature
- Global Error Handling
06. Testing
- Creating Application Unit Project
- Unit Testing the Application Code – Set Up Mocks
- Unit Testing the Application Code – Testing Handlers
- Integration Testing – Entity Framework
07. Adding the UI
- Creating UI Project – Blazor WebAssembly
- Using NSwag and NSwagStudio to Consume API
- Configure App for API
- Set Up Leave Type Management Service
08. Securing API and UI
- Add Security Using Identity
- Add JSON Web Token (JWT) Authentication to API
- Add Authentication Services to Blazor
- Add UI Changes for Security
09. Complete Application Features
- Set Up Leave Allocation Management
- Set Up Leave Request Management – Part 1 – Employee Request
- Set Up Leave Request Management – Part 2 – Admin View
- Set Up Leave Request Management – Part 3 – Approval
- Set Up Leave Request Management – Part 4 – Cancel Request
- Set Up Leave Request Management – Part 5 – Wrap Up
10. Value-Added Features
- Improve Logging
- Improve Data Auditing
- Add Notifications
SKILLS LEARNED
Skills Learned
After completing this online training course, students will be able to:
Learn clean architecture and implement SOLID principles
Build a .NET Core API and Blazor UI Application
Learn about custom exceptions and global error handling
Implement JWT authentication to build API client-secure application
Use Swagger for API documentation and add Email Service using SendGrid
Implement CQRS pattern and Mediator pattern
COURSE OUTLINE
01. Preliminary Concepts
- Review of S.O.L.I.D. Principles
- Single Responsibility Principle
- DRY Principle
- Dependency Inversion
- Understanding Clean Architecture
- What We Will Be Building
02. Setting Clean Architecture Solution
- Development Environment
- Get Latest Visual Studio
- Setting Up Solution
- Overview of Solution Parts
03. Setting Up the Application Core
- Create the Domain Project
- Create Application Core Project
- Understanding CQRS, Mediator, and AutoMapper
- Add AutoMapper and MediatR
- Set Up Features Folder Structure (Vertical Slice Architecture)
- Creating CQRS Query Request and Handler – Part 1
- Creating CQRS Query Request and Handler – Part 2
- Creating CQRS Command Request and Handler – Part 1
- Creating CQRS Command Request and Handler – Part 2
- Adding Custom Exceptions
- Adding FluentValidation
04. Setting Up Infrastructure Projects
- Create the Persistence Project
- Add Entity Framework and Database Context
- Add Repository Implementations
- EF Core – No Tracking
- Completing Repositories
- Create Infrastructure Project
- Add Third-Party Email Service
- Add Third-Party Logging (SeriLog)
05. Creating the API Project
- Create the API Project
- Scaffolding Database
- Implementing Controller with MediatR – Part 1
- Implementing Controller with MediatR – Part 2
- Complete Leave Allocation Feature
- Complete Leave Request Feature
- Global Error Handling
06. Testing
- Creating Application Unit Project
- Unit Testing the Application Code – Set Up Mocks
- Unit Testing the Application Code – Testing Handlers
- Integration Testing – Entity Framework
07. Adding the UI
- Creating UI Project – Blazor WebAssembly
- Using NSwag and NSwagStudio to Consume API
- Configure App for API
- Set Up Leave Type Management Service
08. Securing API and UI
- Add Security Using Identity
- Add JSON Web Token (JWT) Authentication to API
- Add Authentication Services to Blazor
- Add UI Changes for Security
09. Complete Application Features
- Set Up Leave Allocation Management
- Set Up Leave Request Management – Part 1 – Employee Request
- Set Up Leave Request Management – Part 2 – Admin View
- Set Up Leave Request Management – Part 3 – Approval
- Set Up Leave Request Management – Part 4 – Cancel Request
- Set Up Leave Request Management – Part 5 – Wrap Up
10. Value-Added Features
- Improve Logging
- Improve Data Auditing
- Add Notifications