What problem does it solve?
Domain-Driven Design helps you model complex business rules clearly so invariants stay consistent and side effects remain decoupled as your .NET system grows.
Core Features & Use Cases
- Aggregates and aggregate roots for consistency boundaries: Enforce rules within a single transactional unit and avoid cross-aggregate invariants becoming fragile.
- Value objects for validation and correct equality: Replace primitive obsession with immutable records like Money, EmailAddress, and OrderNumber.
- Domain events to decouple side effects: Raise events in the domain model and handle integration/side effects externally without polluting core business logic.
- Strongly-typed IDs for safety across entities: Prevent mixing identifiers by using strongly-typed structs with EF Core conversions.
Quick Start
Load the skill when designing aggregates and value objects for a DDD + Clean Architecture .NET codebase, then implement a small aggregate root with validated value objects and domain events to capture meaningful state changes.