Domain-Driven Design Fundamentals

by Steve Smith and Julie Lerman

This course teaches the fundamentals of Domain-Driven Design (DDD) through a demonstration of customer interactions and a complex demo application, along with advice from Eric Evans.

What you'll learn

Hello, and welcome to Domain-Driven Design Fundamentals, part of the ASP.NET MVC 5 Learning Path here at Pluralsight. Your authors, Steve Smith and Julie Lerman, are looking forward to helping you learn the fundamentals of Domain-Driven Design (DDD) through a demonstration of customer interactions and a complex demo application.

Along the way, you’ll learn about elements of a domain model, aggregates in Domain-Driven Design, and repositories. You’ll also get hands on modeling problems, and learn about technical components of DDD, and how to manage complexity.

So if you’re ready to get started, Domain-Driven Design Fundamentals is waiting for you. Thanks again for visiting us here at Pluralsight!

Table of contents

Course FAQ

What is Domain Driven Design?

Domain Driven Design (DDD) is a way of more easily developing complex software by strongly connecting all of the software's related pieces into an ever-evolving model of the core business logic.

What exactly is "domain" in DDD?

The domain in domain driven design is the "sphere of knowledge and activity around which the application logic revolves". It's the thing we want the application to apply to.

What will I learn in this course?

You will learn:

  • Elements of a domain model
  • The benefits of Domain-Driven Design
  • Aggregates in Domain-Driven Design
  • Repositories
  • How DDD solves modeling problems in software
  • Domain events and anti-corruption layers
  • Much more
Are there prerequisites for this course?

Before diving into Domain Driven Design you should have a good understanding of an object-oriented language like C#, Ruby, JavaScript, Python, Java, or another. A basic understanding of software architecture would also be helpful.

What are the benefits of domain driven design?

Some benefits of DDD include that it provides patterns to solve difficult software problems, and even business problems, it creates business logic by putting everything in terms of the business domain, and it mitigates misunderstanding between dev teams and domain experts.

About the authors

Steve Smith (@ardalis) is an entrepreneur and software developer with a passion for building quality software as effectively as possible. He provides mentoring and training workshops for teams with the desire to improve. Steve has been recognized as a Microsoft MVP for over 10 consecutive years, and is a frequent speaker at software developer conferences and events. He is the top contributor to the official documentation on ASP.NET Core and enjoys helpings others write maintainable, testable app... more

Julie Lerman is a software coach with over 30 years of experience building software. As a coach, Julie provides support for DDD and architecture implementation, facilitates Event Storming workshops and domain discovery. She also provides deep dives into Entity Framework for her clients in the .NET world. Julie is a long-time Pluralsight author, Microsoft MVP, Microsoft Regional Director and Docker Captain who lives in the hills of Vermont and continues to be known as the world’s top expert in E... more

Ready to upskill? Get started