About the repository: Open source project written in the latest version of ASP.NET Core, implementing the concepts of DDD (Domain Driven Design), S.O.L.I.D, Clean Code, CQRS (Command Query Responsibility Segregation)
This project serves as a robust and domain-focused backend solution, demonstrating key architectural concepts to ensure scalability, maintainability, and clarity.
- ASP.NET Core 8
- Entity Framework Core 8
- Dapper
- Unit & Integration Tests + xUnit + FluentAssertions
- MediatR
- FluentValidator
- Postgres
- Docker & Docker Compose
The project follows the principles of Clean Architecture and Domain-Driven Design to ensure a separation of concerns and a focus on the core business logic. Key architectural layers include:
- Full architecture with responsibility separation concerns, SOLID and Clean Code
- Domain Driven Design (Layers and Domain Model Pattern)
- Domain Events
- Domain Notification
- Domain Validations
- CQRS
- Event Sourcing
- Unit of Work
- Repository Pattern
- Result Pattern
-
Domain Layer: Contains the domain entities, aggregates, value objects, and domain services.
-
Application Layer: Orchestrates the application's use cases by interacting with the domain layer. It's free from business logic but responsible for coordinating application behavior.
-
Infrastructure Layer: Implements the details of external concerns such as databases, external services, and frameworks. It includes repositories, database access, and external service integrations.
-
Presentation Layer: Represents API. It communicates with the application layer to execute use cases.
-
Tests: Include unit tests to ensure the correctness of the application.
After cloning the repository to the desired folder, run the command in the terminal at the root of the project:
dotnet clean && dotnet build
Next step, run the command in the terminal:
docker-compose up --build
dotnet test
This project is licensed under the MIT License. See the LICENSE file for details.