Introduction

After reading Eric Evans' book Domain-Driven Design, Tackling Complexity in the Heart of Software, my way of designing software systems completely changed. Before that, I used to design software object models in a very data-centric way, and I did not really focus on how to combine behavior and data in objects. I was so inspired with this new way of thinking that I started trying to find any code samples I could get my hands on that demonstrated the concepts from Eric's awesome book. I did the usual Googling for answers to my Domain-Driven Design (DDD) questions, and I usually did find something that would help me, but I still thirsted for more knowledge on the subject.

I had to search for DDD answers in .NET because Eric's book is technology-agnostic. The main point of the book was the architectural concepts. There were code samples here and there in Java and Smalltalk, but that was about it. Then along came Jimmy Nilsson's book Applying Domain-Driven Design and Patterns, and it was then that I started to see a lot more of the patterns that could be used in conjunction with the DDD concepts. Jimmy tied together some of the concepts from Martin Fowler's excellent book Patterns of Enterprise Application Architecture and showed how they could help with good DDD design principles. Jimmy also did a great job providing lots of good .NET code examples in his book, as well as leading the reader down several paths to accomplish things the DDD way. Right after I finished Jimmy's ...

Get .NET Domain-Driven Design with C#: Problem – Design – Solution now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.