Dive into ASP.NET Core by mastering SOLID principles and Clean Architecture. This course covers essential SOLID concepts and their application in building maintainable, scalable applications.
-Start by setting up your environment and structuring your solution in Visual Studio, then explore CQRS and MediatR patterns for a robust project.
- Advanced topics include custom exceptions, FluentValidation, and integrating third-party services.
- Learn to develop secure APIs with Blazor WebAssembly and secure them with Identity and JWT authentication.
Designed for intermediate to advanced developers familiar with C# and .NET 5+, this hands-on course emphasizes real-world applications. By the end, you'll master SOLID principles, implement Clean Architecture, configure development environments, develop APIs, and secure applications, and enhance them with testing, logging, and auditing strategies.
Achieve practical skills for high-quality ASP.NET Core applications, preparing you to create scalable, maintainable software with enhanced security and robust testing capabilities. This intermediate course is for C# developers with basic .NET Core skills, ideally with Visual Studio 2022 and .NET 7 experience.
Overview
Syllabus
- Course Introduction
- In this module, we will provide a comprehensive overview of the course. You'll get acquainted with the primary goals, explore the key topics we will cover, and understand the benefits of engaging fully with the course material.
- Preliminary Concepts
- In this module, we will delve into essential preliminary concepts that are foundational for effective software development. You'll review the S.O.L.I.D. principles, understand the importance of clean architecture, and get an overview of the application we'll be developing throughout the course.
- Setting Clean Architecture Solution
- In this module, we will guide you through setting up your development environment to ensure a smooth start. You'll learn how to download and install Visual Studio Code, configure your solution folder, and understand how this setup aligns with clean architecture principles. Additionally, we'll ensure all required dependencies and extensions are properly installed and configured for efficient development.
- Setting Up the Application Core
- In this module, we will establish the core of our application by creating the domain and application core projects. You'll learn about essential patterns like CQRS, Mediator, and AutoMapper, and implement them within the project. We will also set up the features folder structure, add crucial libraries, and review the main concepts to solidify your understanding.
- Setting Up Infrastructure Projects
- In this module, we will focus on establishing the infrastructure projects essential for our application. You'll create the persistence project, integrate Entity Framework, and implement repository patterns. We will also explore EF Core's no-tracking feature, set up an infrastructure project for third-party services, and add email and logging functionalities. Finally, we'll review the main concepts to ensure a solid understanding of the section's content.
- Creating the API Project
- In this module, we will guide you through the development of the API project. You'll start by creating the API project and scaffolding the database. Then, we'll implement controllers using MediatR for handling various API actions. Additionally, you'll complete the leave allocation and leave request features and set up global error handling to ensure robust error management. Finally, we'll review key concepts to solidify your understanding of the section's content.
- Testing
- In this module, we will focus on the crucial aspect of testing our application. You'll learn how to set up a test project for unit tests, create mock repositories, and test application code handlers. We will also cover integration testing using Entity Framework and automate testing processes to enhance efficiency. Finally, we'll review key concepts to ensure a thorough understanding of testing methodologies.
- Adding the UI
- In this module, we will guide you through adding a user interface to the application. You'll start by creating a Blazor WebAssembly project, using NSwag and NSwagStudio to consume APIs, and configuring the app for API interaction. Additionally, you'll set up the leave type management service and develop the user interface to provide a seamless and interactive user experience. Finally, we will review the key concepts to ensure a comprehensive understanding of UI development.
- Securing API and UI
- In this module, we will delve into various methods of securing both APIs and user interfaces. We will start by implementing Identity for robust authentication, followed by integrating JWT for secure API communication. Next, we will add authentication services to Blazor apps and make necessary UI adjustments to ensure security. Finally, we will review the essential security concepts covered in this section.
- Complete Application Features
- In this module, we will focus on building and refining key application features. Starting with setting up leave allocation management, we will then dive into a detailed four-part series on leave request management. This includes handling employee requests, creating admin views, managing approvals, and facilitating request cancellations. Finally, we will consolidate our learning with a comprehensive section review.
- Value-Added Features
- In this module, we will focus on adding value to your application through essential improvements. We will begin by enhancing the logging system to improve error tracking and debugging. Next, we will refine data auditing processes to ensure data integrity and accountability. Finally, we will add notification features to keep users informed and engaged with the application.
- Summary and Closing
- In this module, we will review and summarize the entire course's journey. We will revisit the essential concepts, such as clean architecture and various coding patterns, and discuss how these principles have been applied throughout the course. This conclusion will help reinforce your understanding and provide a clear pathway for future learning and professional growth.
Taught by
Packt - Course Instructors