.NET 7 Web Api - Clean Architecture Full Guide
What you'll learn
- Identify the principles of CQRS and how it can be used to separate commands and queries in an application.
- Describe the use of Entity Framework Core as an Object-Relational Mapping (ORM) framework in .NET applications.
- Explain the benefits of Eager Loading in reducing database round trips when retrieving related data.
- Define the Repository Pattern and how it can be used to isolate data access logic and provide a uniform interface for working with data.
- Understand the concept of Database Migrations with MSSQL Server Database
- Understand the role of FluentValidation as a popular library for validating data in .NET applications.
- Describe how AutoMapper simplifies object-to-object mapping in .NET applications.
- Define MediatR as a lightweight library that helps implement the Mediator pattern in .NET applications.
- Understand the roles of MediatR Request and RequestHandler as the components that handle MediatR requests in .NET applications.
- Explain the use of MediatR Request Pipeline Behaviours to add additional logic to MediatR requests, such as caching and validation.
- Understand the features and advantages of Redis Cache as a popular in-memory data store used to speed up data access in .NET applications and how to clear it.
- Describe the use of IServiceCollection Extensions as a mechanism to extend the IServiceCollection in .NET applications.
- Understand the concept of Custom Exceptions and how they can be used to create application-specific exceptions that inherit from the base Exception class.
- Explain the use of Global Exception Handling Middleware as a mechanism to handle exceptions globally in .NET applications.
- Understand the use of IOptions for configurations to inject configuration values into .NET applications.
- Describe the features and advantages of SwaggerUI Request Duration, a feature that displays the time it took for a request to complete.
- C# Programming Language
This course is designed for developers who want to deepen their understanding of .NET architecture and data management. The course covers a range of topics, including the CQRS architectural pattern, EntityFrameworkCore, Eager Loading, Repository Patterns, Database Migrations, MSSQL Database, FluentValidation, AutoMapper, MediatR, and Redis Cache.
You will learn how to implement these tools and techniques in your .NET applications to improve performance, scalability, and maintainability. We will explore MediatR Request and RequestHandler, MediatR Request Pipeline Behaviours, and Global Exception Handling Middleware, and discuss best practices for using IServiceCollection Extensions, Custom Exceptions, and IOptions for configurations.
In addition, we will dive into the importance of DTOs - Data Transfer Objects, and how they can be used to separate the domain data model from outgoing models in .NET applications. We will also cover SwaggerUI Request Duration, a feature that displays the time it takes to complete requests in SwaggerUI, and how it can be used to monitor and optimize application performance.
Throughout the course, you will work on hands-on project and assignments that will help you apply what you have learned to real-world scenarios. By the end of the course, you will have a comprehensive understanding of advanced .NET architecture and data management, and the skills and knowledge to implement these tools and techniques in your own applications.
Who this course is for:
- Beginners, Junior Software developers who are looking to learn and grown in .NET ecosystem.
- Senior Software developers who are looking to expand their knowledge.
- Software Solution Architects who would like to design Software following Clean Architecture Guidelines
Junior Matlou is a Software Solutions Architect with over 7 years of experience in designing and implementing complex software systems. He has a proven track record of successfully delivering projects on time and within budget, and has worked with clients in various industries including finance, constructions, eLearning, and manufacturing, etc.. Junior is highly skilled in software architecture, system integration, and cloud technologies. He is committed to delivering innovative solutions that meet his clients' business needs and drive their success. Teaching is part of Junior's daily work.