Series
Clean Architecture: Contact Management Application
12 posts filed under Clean Architecture: Contact Management Application.
Best Practices for Creating and Using DTOs in the API
Best practices for designing DTOs in Clean Architecture: purpose-specific DTOs, mapping strategies, and better API performance and maintainability.
Clean Architecture: Introduction to the Project Structure
A working Clean Architecture setup in .NET, explained through a real Contact Management API — layer responsibilities, dependency flow, project structure.
Dependency Injection Setup Across Layers
How to configure Dependency Injection in Clean Architecture across layers — registering services, repositories, and utilities for testable .NET apps.
Dockerizing the .NET Core API, Angular and MS SQL Server
How to containerize .NET Core and SQL Server with Docker — optimized Dockerfiles, multi-container Docker Compose setups, and networking for dev and prod.
Error Handling and Exception Management in the API
Implement reliable error handling in Clean Architecture with centralized middleware, custom exceptions, and consistent HTTP responses.
Handling Authorization and Role-Based Access Control (RBAC)
Implement secure, permission-based authorization in Clean Architecture with custom attributes, dynamic policy providers, and JWT integration.
Implementing Activity Logging with Custom Attributes
Build a clean, non-intrusive activity logging system in .NET Core using custom attributes to track user actions with minimal code changes.
Implementing AutoMapper for DTO Mapping with Audit Details
How the Contact Management Application uses AutoMapper in Clean Architecture to map DTOs to entities and populate audit fields in one place.
Seeding Initial Data Using Docker Compose and SQL Scripts
How to seed a database in a containerized environment with Docker Compose and SQL scripts — automated initialization and reproducible dev environments.
Unit of Work Pattern and Its Role in Managing Transactions
Implementing the Unit of Work pattern over Dapper in a Clean Architecture .NET API — atomic multi-table operations, rollback, and when it's not worth it.
Using Dapper for Data Access and Repository Pattern
High-performance data access with Dapper in Clean Architecture — integrating the Repository Pattern and Unit of Work for SQL and transactions.
Validating Inputs with FluentValidation
Input validation in Clean Architecture using FluentValidation — custom validation rules, DI integration, and data integrity across app layers.











