- An understanding of object-oriented programming and design patterns
- Experience with C# and .NET Core
- Basic knowledge of databases and SQL
Audience
- Developers
- Architects
- Analysts
Domain Driven Design (DDD) is a software development approach that focuses on the domain and the business logic, rather than the technical details. DDD helps to create software that is more maintainable, testable, and aligned with the business needs and goals.
This instructor-led, live training (online or onsite) is aimed at intermediate-level developers, architects, and analysts who wish to learn and apply DDD concepts and practices to their software projects.
By the end of this training, participants will be able to:
- Grasp core DDD concepts (bounded contexts, entities, etc.) and their application in software projects.
- Apply strategic DDD to define and design the domain model, identify subdomains, and establish boundaries.
- Implement tactical DDD using patterns such as CQRS, factories, and event sourcing.
- Refactor and modernize legacy systems effectively with DDD techniques.
- Design and implement product, domain, and team-oriented architectures.
- Utilize data mesh to create a domain-oriented data platform supporting data discovery and governance.
Format of the Course
- Interactive lecture and discussion.
- Lots of exercises and practice.
- Hands-on implementation in a live-lab environment.
Course Customization Options
- To request a customized training for this course, please contact us to arrange.
Introduction
- What is Domain Driven Design (DDD) and its benefits?
- DDD vs other approaches
- Overview of DDD concepts and project structure
Tactical Domain-Driven Design
- Elements of a domain model
- Implementing entities, value objects, aggregates, repositories, and domain services
- Using factories, specifications, CQRS, and event sourcing
Strategic Domain-Driven Design
- Context map patterns
- Designing the domain model with event storming and domain storytelling
- Identifying and classifying subdomains
- Establishing boundaries and relationships with patterns like bounded contexts
DDD & Legacy Workshop
- Challenges and opportunities of legacy systems
- Analyzing and understanding legacy systems with tools like NDepend
- Refactoring and modernizing legacy systems using techniques such as strangler pattern
Product, Domain & Team-oriented Architecture
- Benefits and challenges of product, domain, and team-oriented architecture
- Designing and implementing such architectures with patterns like microservices
- Organizing and collaborating with teams
- Ensuring quality and consistency with automated testing and continuous integration
Data Mesh – Domain-Oriented Data
- Problems with traditional data platforms
- Introduction to data mesh
- Implementing a domain-oriented data platform supporting data discovery, access, and governance
- Technologies like Apache Kafka, Apache Spark, and GraphQL in data mesh
Summary and Next Steps
United Arab Emirates - Domain Driven Design: Concepts and Practices
Qatar - Domain Driven Design: Concepts and Practices
Egypt - Domain Driven Design: Concepts and Practices
Saudi Arabia - Domain Driven Design: Concepts and Practices
South Africa - Domain Driven Design: Concepts and Practices
Brasil - Domain Driven Design: Concepts and Practices
Canada - Domain Driven Design: Concepts and Practices
中国 - Domain Driven Design: Concepts and Practices
香港 - Domain Driven Design: Concepts and Practices
澳門 - Domain Driven Design: Concepts and Practices
台灣 - Domain Driven Design: Concepts and Practices
USA - Domain Driven Design: Concepts and Practices
Österreich - Domain Driven Design: Concepts and Practices
Schweiz - Domain Driven Design: Concepts and Practices
Deutschland - Domain Driven Design: Concepts and Practices
Czech Republic - Domain Driven Design: Concepts and Practices
Denmark - Domain Driven Design: Concepts and Practices
Estonia - Domain Driven Design: Concepts and Practices
Finland - Domain Driven Design: Concepts and Practices
Greece - Domain Driven Design: Concepts and Practices
Magyarország - Domain Driven Design: Concepts and Practices
Ireland - Domain Driven Design: Concepts and Practices
Luxembourg - Domain Driven Design: Concepts and Practices
Latvia - Domain Driven Design: Concepts and Practices
España - Domain Driven Design: Concepts and Practices
Italia - Domain Driven Design: Concepts and Practices
Lithuania - Domain Driven Design: Concepts and Practices
Nederland - Domain Driven Design: Concepts and Practices
Norway - Domain Driven Design: Concepts and Practices
Portugal - Domain Driven Design: Concepts and Practices
România - Domain Driven Design: Concepts and Practices
Sverige - Domain Driven Design: Concepts and Practices
Türkiye - Domain Driven Design: Concepts and Practices
Malta - Domain Driven Design: Concepts and Practices
Belgique - Domain Driven Design: Concepts and Practices
France - Domain Driven Design: Concepts and Practices
日本 - Domain Driven Design: Concepts and Practices
Australia - Domain Driven Design: Concepts and Practices
Malaysia - Domain Driven Design: Concepts and Practices
New Zealand - Domain Driven Design: Concepts and Practices
Philippines - Domain Driven Design: Concepts and Practices
Singapore - Domain Driven Design: Concepts and Practices
Thailand - Domain Driven Design: Concepts and Practices
Vietnam - Domain Driven Design: Concepts and Practices
India - Domain Driven Design: Concepts and Practices
Argentina - Domain Driven Design: Concepts and Practices
Chile - Domain Driven Design: Concepts and Practices
Costa Rica - Domain Driven Design: Concepts and Practices
Ecuador - Domain Driven Design: Concepts and Practices
Guatemala - Domain Driven Design: Concepts and Practices
Colombia - Domain Driven Design: Concepts and Practices
México - Domain Driven Design: Concepts and Practices
Panama - Domain Driven Design: Concepts and Practices
Peru - Domain Driven Design: Concepts and Practices
Uruguay - Domain Driven Design: Concepts and Practices
Venezuela - Domain Driven Design: Concepts and Practices
Polska - Domain Driven Design: Concepts and Practices
United Kingdom - Domain Driven Design: Concepts and Practices
South Korea - Domain Driven Design: Concepts and Practices
Pakistan - Domain Driven Design: Concepts and Practices
Sri Lanka - Domain Driven Design: Concepts and Practices
Bulgaria - Domain Driven Design: Concepts and Practices
Bolivia - Domain Driven Design: Concepts and Practices
Indonesia - Domain Driven Design: Concepts and Practices
Kazakhstan - Domain Driven Design: Concepts and Practices
Moldova - Domain Driven Design: Concepts and Practices
Morocco - Domain Driven Design: Concepts and Practices
Tunisia - Domain Driven Design: Concepts and Practices
Kuwait - Domain Driven Design: Concepts and Practices
Oman - Domain Driven Design: Concepts and Practices
Slovakia - Domain Driven Design: Concepts and Practices
Kenya - Domain Driven Design: Concepts and Practices
Nigeria - Domain Driven Design: Concepts and Practices
Botswana - Domain Driven Design: Concepts and Practices
Slovenia - Domain Driven Design: Concepts and Practices
Croatia - Domain Driven Design: Concepts and Practices
Serbia - Domain Driven Design: Concepts and Practices
Bhutan - Domain Driven Design: Concepts and Practices