Expert Domain-Driven Design (DDD) Implementation in .NET
2h 30mAdvanced2024-10-10
Authors

Rodrigo Díaz Concha
Solutions Architect, Microsoft Regional Director, and Microsoft MVP
Course details
This course is aimed at .NET developers and architects interested in applying domain-driven design (DDD) in their projects. Instructor Rodrigo Díaz Concha takes you through the steps for creating a solution for a fictional pet medicine company to show you practical techniques to implement DDD using .NET and C#. Learn about using entities, value objects, aggregates, domain events, and more. This course is ideal for those looking to integrate DDD strategies and tools into their development solutions, as well as for software architects and .NET project stakeholders who want to understand how to implement DDD in their current or future initiatives.
Learning objectives
Structure your application around domains and entities.
Establish aggregate classes and determine appropriate behaviors.
Interact with your domains through events and commands.
Learning objectives
Structure your application around domains and entities.
Establish aggregate classes and determine appropriate behaviors.
Interact with your domains through events and commands.
Skills covered
Software Design.NETWeb Development ToolsSoftware Development ToolsWeb DevelopmentMicrosoftSoftware DevelopmentOne-Off
Concepts
0. Introduction
- 01 - Unleash the power of Domain-Driven Design in your .NET projects
- 02 - What you should know
- 03 - Preparing the development environment
- 04 - Domain-Driven Design refresher
- 05 - Understanding what you are going to build
1. Defining and Implementing Entities and Value Objects
- 06 - Creating the initial project for the Management domain model
- 07 - Implementing an entity
- 08 - Refactoring the logic into an entity base class
- 09 - Encapsulating and protecting entity state
- 10 - Avoiding the primitive obsession anti-pattern
- 11 - Implementing a value object for a pet's weight
- 12 - Implementing a second entity for pet breeds
- 13 - Invoking a domain service in a value object
- 14 - Implementing business rules in the Pet entity
- 15 - Implementing implicit operators in value objects
2. Defining and Implementing Aggregates
- 16 - Refactoring the solution to add a shared kernel mapping
- 17 - Adding necessary properties to the aggregate
- 18 - Implementing logic in the aggregate to end a consultation
- 19 - Implementing behavior to manage drugs
- 20 - Implementing behavior to record multiple vital sign readings
- 21 - Unit testing the aggregate
3. Implementing the Infrastructure Layer
- 22 - Creating the ManagementDbContext
- 23 - Configuring type and property mappings in the DbContext
- 24 - Registering the DbContext in the dependency injection container
- 25 - Refactoring the code into a repository interface and class
4. Implementing the Application Layer
- 26 - Implementing the ManagementApplicationService class
- 27 - Persisting data in the ManagementApplicationService class
- 28 - Rehydrating persisted entities and invoking their behavior
- 29 - Creating a command handler interface for handling commands
- 30 - Challenge - Implementing the Clinic API
- 31 - Solution - Implementing the Clinic API
- 32 - Challenge - Refactoring the consultation date and time
- 33 - Solution - Refactoring the consultation date and time
5. Implementing Domain Events
- 34 - Implementing domain events
- 35 - Publishing domain events
- 36 - Subscribing to domain events
6. Mixing the Event Sourcing Pattern with DDD
- 37 - Refactoring the AggregateRoot class for tracking events
- 38 - Implementing the first domain event to be tracked
- 39 - Implementing more domain events related to the consultation
- 40 - Refactoring the DbContext for handling domain events
- 41 - Persisting domain events in the database
- 42 - Loading domain events from the database
Conclusion
- 43 - Next steps in Domain-Driven Design (DDD)
Related courses
- Strategic Monoliths and Microservices
- Snowflake SnowPro Core Cert Prep
- CompTIA A+ Core 2 (220-1102) Cert Prep: 4 Command-Line Interface and Scripting Languages
- Lean Foundations: Lean Daily Management Systems
- Business Development Foundations: Alliances & Partnerships
- Microsoft Azure DevOps Engineer Expert (AZ-400) Cert Prep: 1 Configure Processes and Communications
- Microsoft Azure DevOps Engineer Expert (AZ-400) Cert Prep: 2 Develop a Security and Compliance Plan
- Microsoft Azure DevOps Engineer Expert (AZ-400) Cert Prep: 3 Manage Source Control
Related learn paths
- Develop Your Skills in Agile Software Development
- Prepare for the Azure Data Scientist Associate (DP-100) Certification
- Become an IT Security Specialist
- Getting Started with Software Testing
- Building AI Products: Prototyping Essentials Professional Certificate
- Prepare for the Power BI Data Analyst Associate (PL-300) Certification
- Succeeding as a Senior Manager Professional Certificate by LinkedIn Learning
- Prepare for the MTA: Software Development Fundamentals Exam (98-361)