Introduction In this article, we will explore how the Contact Management Application integrates Dapper for efficient data access. Dapper is a micro-ORM (Object-Relational Mapper) that excels in performance by directly interacting with SQL. We...
Introduction Role-Based Access Control (RBAC) ensures that users only perform actions they are authorized to. In the Contact Management Application, a robust RBAC system enforces permissions like Contacts.Create, Contacts.Update, and Contacts.Delete using dynamic policies and custom attributes. This...
Introduction In this article, we will explore how to implement input validation in the Contact Management Application using FluentValidation. FluentValidation is a robust .NET library that facilitates the creation of flexible and extensible validation...
Introduction Dependency Injection (DI) is a key aspect of Clean Architecture, ensuring decoupling between layers while enabling seamless communication. In the Contact Management Application, the DI setup is structured into API, Application, and Infrastructure layers, with each layer...
Introduction In any well-architected API, managing errors effectively is critical for ensuring stability, security, and ease of use. In the Contact Management Application, we follow clean architecture principles to implement structured error handling, ensuring...
Introduction In any enterprise-level application, logging user actions is essential for both auditing and security purposes. The Contact Management Application leverages middleware and a custom ActivityLogAttribute to implement detailed activity logging. This approach ensures...
Introduction In clean architecture, Data Transfer Objects (DTOs) play a vital role in decoupling the domain model from the external presentation layer, providing a clean and manageable way of interacting with external systems like...
Introduction When developing an API, there are situations where it is important to populate the database with initial or sample data for testing and development purposes. In this article, we will discuss how to...
Automate docker image build, tag and push to container registry In the previous article, we explained how to manually push custom Docker images to Docker Hub using the Docker CLI. Now, we’ll streamline that...