We may earn an affiliate commission when you visit our partners.
Packt - Course Instructors

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.

Read more

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.

Enroll now

What's inside

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.
Read more
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.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Emphasizes real-world applications, which allows learners to directly apply SOLID principles and Clean Architecture to practical scenarios they may encounter in their professional work
Covers CQRS and MediatR patterns, which are essential for building robust and scalable applications, and are highly sought after in modern software development environments
Teaches secure API development with Blazor WebAssembly, which is a valuable skill for creating modern web applications with enhanced security features using Identity and JWT authentication
Requires Visual Studio 2022 and .NET 7 experience, which may pose a barrier to entry for learners using older versions or different development environments
Explores Entity Framework Core's no-tracking feature, which can significantly improve performance in read-heavy applications by reducing the overhead of change tracking
Uses .NET 5 and up, which means that learners will not be exposed to older, deprecated .NET technologies that are no longer relevant in modern software development

Save this course

Save ASP.NET Core - SOLID and Clean Architecture (.NET 5 and Up) to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in ASP.NET Core - SOLID and Clean Architecture (.NET 5 and Up) with these activities:
Review SOLID Principles
Reinforce your understanding of SOLID principles before diving into the course. This will provide a solid foundation for understanding the course's architecture.
Browse courses on SOLID Principles
Show steps
  • Read articles and blog posts about each SOLID principle.
  • Watch videos explaining SOLID principles with examples.
  • Try to apply SOLID principles to a small coding project.
Review 'Clean Code: A Handbook of Agile Software Craftsmanship'
Deepen your understanding of clean code practices. This book provides practical examples and advice relevant to the course's focus on clean architecture.
View CLEAN CODE on Amazon
Show steps
  • Read the book cover to cover, taking notes on key concepts.
  • Apply the principles from the book to your own code.
  • Discuss the book's concepts with other developers.
Implement a Simple CQRS Pattern
Practice implementing the CQRS pattern in a small project. This will solidify your understanding of how to separate read and write operations in an application.
Show steps
  • Create a new .NET Core project.
  • Define commands and queries for a simple domain.
  • Implement handlers for the commands and queries.
  • Test the implementation with unit tests.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Blog Post: SOLID Principles in ASP.NET Core
Solidify your understanding of SOLID principles by explaining them in a blog post. Teaching others is a great way to reinforce your own knowledge.
Show steps
  • Choose a specific SOLID principle to focus on.
  • Research the principle and find real-world examples.
  • Write a clear and concise explanation of the principle.
  • Include code examples in ASP.NET Core.
  • Publish the blog post on a platform like Medium or your own blog.
Create a Secure API with JWT Authentication
Apply your knowledge of JWT authentication by building a secure API. This will give you practical experience with securing ASP.NET Core applications.
Show steps
  • Set up an ASP.NET Core API project.
  • Implement user authentication with Identity.
  • Generate JWT tokens upon successful authentication.
  • Secure API endpoints with JWT authentication.
  • Test the API with tools like Postman or Swagger.
Review 'Domain-Driven Design: Tackling Complexity in the Heart of Software'
Explore Domain-Driven Design principles to enhance your understanding of application architecture. This book provides a broader context for the clean architecture concepts covered in the course.
Show steps
  • Read the book, focusing on the strategic and tactical patterns.
  • Relate the DDD concepts to the clean architecture principles.
  • Consider how DDD could be applied to the course project.
Contribute to an Open-Source .NET Project
Apply your skills by contributing to an open-source project. This will give you real-world experience working with a team and contributing to a larger codebase.
Show steps
  • Find an open-source .NET project on GitHub.
  • Review the project's code and documentation.
  • Identify a bug or feature to work on.
  • Submit a pull request with your changes.
  • Respond to feedback from the project maintainers.

Career center

Learners who complete ASP.NET Core - SOLID and Clean Architecture (.NET 5 and Up) will develop knowledge and skills that may be useful to these careers:
API Developer
An API developer focuses on designing, building, and maintaining application programming interfaces that allow different software systems to communicate. This course directly applies to an API developer, as the course covers creating API projects, implementing controllers with MediatR, and securing APIs with Identity and JWT authentication. The course provides practical skills in developing robust and secure APIs, which is critical for an API developer. Learning how to set up development environments, handle errors, and manage API documentation with tools like NSwag is exceptionally relevant to this role.
Backend Developer
A backend developer designs and builds the server-side logic of applications, ensuring smooth data flow and application performance. This course helps backend developers master the implementation of clean architecture with S.O.L.I.D. principles, which is crucial for creating scalable and maintainable systems. The course's focus on setting up application cores, infrastructure projects, and APIs directly aligns with the responsibilities of a backend developer, offering skills in API development, data handling, and integration testing. The detailed modules on testing, logging, and auditing are also highly valuable for ensuring the reliability and robustness of applications.
Full-Stack Developer
A full stack developer works on all parts of a software application, both front-end and back-end. This course helps a full stack developer by enhancing their ability to build scalable and well-structured backends using the S.O.L.I.D principles and Clean Architecture. The course also equips the full stack developer with skills to create APIs, secure applications, and connect them to user interfaces. The practical focus on both API development and UI integration with Blazor WebAssembly provides the full stack developer with an important understanding of architectural design and full application implementation, making them well-rounded coders.
Software Engineer
Software engineers design, develop, and maintain software systems, often working with a variety of technologies and frameworks. This course may be useful for software engineers as it focuses on core principles and practices that are vital for writing high-quality code, such as understanding SOLID principles and implementing clean architecture. The course's focus on structuring code, setting up development environments, implementing APIs, and emphasizing security helps build a foundation for software engineers. The course's modules on testing and implementing value-added features such as logging and auditing further enhance the skill set of a software engineer.
Technical Lead
A technical lead guides a development team, providing technical direction and ensuring that projects are implemented correctly. This course may be useful for a technical lead by providing in depth knowledge of S.O.L.I.D. principles and clean architecture for developing scalable applications and robust APIs. This course allows the technical lead to better guide teams on best practices for designing systems, structuring code, and implementing security. The course's focus on environment setup, testing, and logging also equips a technical lead with the understanding needed to mentor and lead the team, ensuring high standards of code quality and performance.
Application Architect
An application architect is responsible for designing the overall structure of applications, ensuring that they meet user needs and are scalable and maintainable. This course may be particularly useful to an application architect. It will enhance the architect's understanding of S.O.L.I.D. principles and clean architecture and their practical application. The practical focus on domain and application core projects, along with the implementation of CQRS and MediatR patterns, helps to understand how to build robust systems. Additionally, the course’s coverage of testing, logging, and auditing is invaluable for designing applications that are easy to maintain and debug.
Solutions Architect
A solutions architect designs and oversees the implementation of complex systems to meet business needs. This course may be useful for solutions architects by helping them learn about core architectural patterns using S.O.L.I.D. principles and clean architecture. The course covers practical aspects of application design such as environment setup, implementing APIs, and securing applications. These architectural design patterns apply to larger systems that a solutions architect might design and oversee, and the practical exposure to these concepts can help a solutions architect make informed decisions about architecture and technology.
Software Development Manager
A software development manager leads teams of developers, ensuring that projects are completed on time, within budget, and to the required quality. This course may be helpful for a software development manager as it provides a solid understanding of S.O.L.I.D. principles, clean architecture, and sound testing methodologies. Understanding the technologies and processes covered such as setting up environments, creating APIs, designing application cores, and implementing testing strategies helps the software development manager make informed decisions about project planning, resource allocation, and team guidance. The course also provides insight into the technical challenges developers face, helping the manager support their team more effectively.
Quality Assurance Engineer
A quality assurance engineer is responsible for testing software to ensure that it meets quality standards. This course may be useful for a quality assurance engineer who works with .NET applications, because it covers different testing methodologies. The course includes creating unit tests, implementing integration tests with Entity Framework, and automating testing processes. By going through this course, a quality assurance engineer will gain deeper insight into the different ways one can test an application and design better tests.
IT Consultant
An IT consultant provides expert advice to organizations on how to use technology to meet their business goals. This course may be helpful for an IT consultant. The course provides a practical overview of application design, security, and testing that can be important for giving expert advice. Since consultants advise on a wide range of technologies, the practical experience gained when using ASP.NET Core can help in recommending technology decisions for projects that use the .NET framework.
Cloud Engineer
A cloud engineer manages and maintains cloud computing infrastructure. This course may be useful to a cloud engineer, as this role often involves working with APIs, understanding application architecture, and securing cloud resources. The course focuses on setting up application environments, creating scalable APIs, and implementing security measures that are relevant to managing cloud hosted applications including development and deployment. The practical experience in the course would help a cloud engineer understand how different components of cloud infrastructure interact with each other.
DevOps Engineer
A DevOps engineer works to streamline the software development lifecycle, focusing on automation, continuous integration, and continuous delivery. This course may be useful for a DevOps engineer as it can improve their understanding of setting up development environments, developing and testing APIs, and implementing security. The course's focus on building well-structured applications using S.O.L.I.D principles, and its coverage of testing and logging strategies, will give a DevOps engineer insight into improving the reliability and deployability of applications. This knowledge is key for streamlining the software pipeline, a central responsibility of this role.
Systems Analyst
A systems analyst assesses and designs information systems to meet organizational needs. This course may be useful to a systems analyst. While this role is not primarily programming focused, the course will give the analyst insight into the practical aspects of application development, particularly how systems are built and secured. By learning about S.O.L.I.D. principles and clean architecture, the systems analyst can better understand the complexities of software systems when gathering requirements and assessing designs, and this will improve their ability to recommend appropriate solutions. The areas of testing, logging, and auditing will help the systems analyst specify the requirements of new systems.
Database Administrator
A database administrator manages and maintains databases, ensuring their performance, security, and availability. This course may be useful to a database administrator. It introduces database interaction via Entity Framework, and implements repository patterns for data access. While the database administrator does not directly write code as part of their daily duties, understanding the practical implications of how the application code interacts with the database helps a database administrator to design and manage systems that meet the needs of developers. The course also introduces how to incorporate auditing as part of data management systems, further benefiting a database administrator.
Technical Writer
A technical writer produces documentation for software and hardware products. While not directly involved in coding, this course may be useful to a technical writer. The course introduces architectural patterns and design, and by understanding the underlying structure and technologies used in ASP.NET Core applications, a technical writer can better create user guides, API documentation, and other technical documentation. This course will allow the technical writer to create more in-depth and accurate documentation that is accessible to end users and developers alike.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in ASP.NET Core - SOLID and Clean Architecture (.NET 5 and Up).
Cornerstone for understanding clean coding practices and principles. It provides practical guidance on writing maintainable, readable, and testable code. It is highly relevant to the course as it reinforces the concepts of clean architecture and SOLID principles. This book is commonly used as a textbook at academic institutions and by industry professionals.
Provides a deep dive into domain-driven design principles. While the course focuses on clean architecture, DDD provides a complementary approach to structuring complex applications. This book is more valuable as additional reading to expand on the architectural concepts presented in the course. It is commonly referenced by software architects and senior developers.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser