- Learning Path Libraries: This path is only available in the libraries listed. To access this path, purchase a license for the corresponding library.
- Core Tech
Domain-Driven Design
Learn the philosophy and major design patterns that underlie the Domain Driven Design approach to software architecture. Understand the importance of focusing on the core domain and domain logic of your business. Explore techniques for refining the conceptual model by between the technical and domain experts. Learn from practical examples implemented in C# and .NET.
Content in this path
Beginner
Like a building, the strength of your software construction starts with a solid foundation. Here we learn both the basics of clean software architecture design and the fundamental pillars of the Domain Driven Design approach you’ll need in any solution you create.
Intermediate
Once you understand the basic principles, it’s time to learn how to handle the havoc imposed by the real world. Start by learning not just to use DDD in your ground-up designs but how to refactor existing designs to leverage the power of DDD. We’ll also explore how the Specification Pattern can solve a class of problems and how to leverage the power of Modern Object Relational Mapping tools.
Advanced
To complete your journey to becoming a DDD architect, we’ll help you take full advantage of the Command Query Responsibility Segregation pattern. You’ll finish with an exploration of using Event Sourcing not only to understand the current state of your application but a trackable history of how it got there.
- • How to split the problem domain into Core, Generic, and Supporting subdomains and design bounded contexts for them with appropriate level of effort (e.g. rich domain model, transaction script, etc.)
- • How to identify entities and Value Objects in the domain model
- • How to choose aggregate boundaries in the bounded context and identify the root entity in the aggregate
- • How to work with domain events
- • The Specification pattern
- • How to identify an anemic domain model and refactor away from it towards a rich one
- • How to work productively with a legacy project via implementation of an anti-corruption layer
- • How to map complex domain models using modern ORMs, such as EF Core and NHibernate
- • How to apply the CQRS pattern in practice
- • Working with Event Sourcing
- C# programming language
- CQRS
- Clean architecture
- Event Sourcing
- Domain Model
- Clean Code