James World (4) [Avatar] Offline
I just wanted to ask the obvious question. I loved the first edition - I'm wondering what the motivation is for the second edition, or in short, what's new? For example, is it getting up to date with newer frameworks or will we see new content on theory? Mark's more recent published blog articles and videos seems to be much more focused on DI alternatives in functional paradigms (although I note he is clear that this in no way invalidates DI when appropriate). It would be interesting to see this angle addressed in the book.
Steven van Deursen (8) [Avatar] Offline
Hi James,

The main motivation for us was to be able to be able to share our new knowledge with a broad audience. Although blog posts, presentations and Pluralsight videos allow us to get this message across, there is no medium as suited to get a complicated story across as a book.
Since writing a new book is a major undertaking, Mark has asked me to help him with this. It was simply too much to chew off for Mark alone.

What will not change:
The second edition will still be solely about implementing DI in Object Oriented languages. Examples are still just in C#. Functional Programming has its own patterns and practices and that would deserve a book of its own.
Each chapter will still start with a cooking analogy.

What will change:
The second edition focusses even more on patterns & practices than the first edition did. There are several areas you will notice this.
• First of all, the discussion of DI Containers is completely moved to Part 4. The first 3 parts of the book will be completely container agnostic.
• More examples are added and many parts are completely re-written throughout the book.
• Ambient Context is now an anti-pattern.
• The original refactoring chapter (6) is almost completely rewritten, and now describes code smells.
• We added new sidebars and new sections where we warn about bad practices and bad design decisions.
• We start referring to the SOLID principles much earlier in the book (in the first edition they were first mentioned in chapter 9).
• The Interception chapter (9) will be completely rewritten and will talk about CQRS-like architectures.
• In chapter 9 we will focus on the Decorator pattern as method for Interception instead of Dynamic Proxy generation.
With the help of one of Manning’s readability experts, the second edition will now do an even better job to get the message across.
The book focusses on .NET Core and its frameworks. Although there is still a lot of code that works for any .NET version, especially the parts that show how to integrate, are focused on .NET Core and ASP.NET Core.
We will try to incorporate many of the lessons we learned and knowledge we gained after the first edition was published. This will sometimes manifest itself in small notes or warnings, up to sidebars or even complete sections.

Note the following obvious warning: This book hasn’t been released yet, so keep in mind that everything written above could theoretically change.


James World (4) [Avatar] Offline
If your book is as comprehensive and well written as this clarification, it should be good!

Thank you for the speedy response and I look forward to enjoying the finished work.