Simple application for managing person contacts. Users can create contacts with some details, then add addresses to them. One contact can have 0 or multiple addresses.
Note: The purpose of this project is only to demonstrate the used technologies and patterns. Some of the functionalities are not completed, but as a whole the main features are implemented.
- Frameworks and libraries used:
- .NET 7
- ASP Web API
- FluentValidation
- AutoMapper
- MediatR
- EntityFramework
- Swagger Open API
-
Architecture
Considering the requirements to use FluentValidation, CQRS Pattern and rich domain models, I've used clean architecture with DDD approach.
In this project the above diagram is a bit simplified.
In the center we have the domain layer
ContactsBook.Domain
. It is independent from the other projects and encapsulates the domain logic.The Application layer has access to the domain layer and is responsible for processing the CQRS operations.
The actual database operations are managed in the infrastructure layer. This layer communicates with the database.