Sample .NET Core REST API CQRS implementation with raw SQL and DDD using Clean Architecture.
⭐
Give a Star! If you like this project, learn something or you are using it in your applications, please give it a star. Thanks!
Description
Sample .NET Core REST API application implemented with basic CQRS approach and Domain Driven Design.
Clean Architecture
ArchitectureCQRS
Read Model - executing raw SQL scripts on database views objects (using Dapper).
Write Model - Domain Driven Design approach (using Entity Framework Core).
Commands/Queries/Domain Events handling using MediatR library.
Domain
Validation
Data validation using FluentValidation
Problem Details for HTTP APIs standard implementation using ProblemDetails
Caching
Using Cache-Aside pattern and in-memory cache.
Integration
Outbox Pattern implementation using Quartz.NET
Related blog articles
Simple CQRS implementation with raw SQL and DDD
Domain Model Encapsulation and PI with Entity Framework 2.2
How to publish and handle Domain Events
Handling Domain Events: Missing Part
Cache-Aside Pattern in .NET Core
How to run application
- Create empty database.
- Execute InitializeDatabase.sql script.
- Set connection string (in appsettings.json or by user secrets mechanism).
- Run!
How to run Integration Tests
- Create empty database.
- Execute InitializeDatabase.sql script.
- Set connection string using environment variable named
ASPNETCORE_SampleProject_IntegrationTests_ConnectionString
- Run tests from project src/Tests/SampleProject.IntegrationTests