Dependency Injection Principles, Practices, and Patterns

The book Dependency Injection Principles, Practices, and Patterns has gone to print.

For the last two years I’ve been coauthoring the book Dependency Injection Principles, Practices, and Patterns. This is a revised and expanded edition of Manning‘s bestselling classic Dependency Injection in .NET by Mark Seemann.

I always loved the first edition as it was a game changer for me. I learned a lot about DI, DI Containers, and software design. The book even had a big influence on Simple Injector‘s philosophy. This influence on Simple Injector even started well before the book was published, as I was a vivid reader of early access version that was first released in October 2009.

For the second edition, Mark decided to join forces with me. This allowed us to combine our ideas and visions, which has led to some interesting directions and new insights. For instance, we changed the status of the Ambient Context pattern to an anti-pattern and explain in much detail why this is an anti-pattern, and we provide better alternatives.

The general theme of this second edition is the focus on the principles, practices, and patterns that underpin Dependency Injection, which is the main reason for the change in the book’s title. There are several areas where you will notice this:

Apart from these changes related to the focus of the book, there are many other changes as well, for instance:

I think that this book has a lot to bring, even to seasoned developers that are familiar with DI, and even for developers working in different OOP languages. The book is first and foremost about DI, but the common thread throughout the book is that of writing well-designed code, as the two concepts are inseparable.

I’m extremely glad I was able to be part of this process and was able to make an awesome book even better.

I would like to thank, Mark, Manning, everybody who provided feedback, and everyone who purchases the Early Access edition.

I hope you will enjoy my work.


The comments are not loaded because you disabled JavaScript. That's okay—I disable JavaScript myself all the time. The comments for this blog post are loaded dynamically from GitHub. To read these comments, just click here.

Wish to comment?

You can add a comment to this post by commenting on this GitHub issue.

Found a typo?

The MarkDown file of this blog post can be found here. I accept pull requests.

Buy my book

Dependency Injection Principles, Practices, and Patterns Cover Small I coauthored the book Dependency Injection Principles, Practices, and Patterns. If you're interested to learn more about DI and software design in general, consider reading my book. Besides English, the book is available in Polish, Russian, and Chinese.