I just finished reading
this book by Jimmy Nilsson, and I have a mixed review of it. The general consensus (e.g. see
here and
here) out there is that this book is one of the most fantastic books out there on how to architect systems using C#. I do agree that the book is well-written, with a very unique insight into the thoughts and decisions to make along the way in designing a robust application from an OO viewpoint. It got me thinking about how I view TDD and architecture from a domain model perspective.
The negative for this book outweighs the benefits, in my opinion. The fact that there is no sample/reference application leaves the reader frustrated. If the design techniques can't even be proven in a simple application that was discussed over 450 pages, how can one have faith to apply the techniques in their own production applications? I searched on the book's forum, but the general attitude there is "If you need a sample, you can't understand all the decisions made to create your own application". My reply to that is "Hogwash". As mentioned earlier, 450 pages were used to talk about why certain architectural decisions were made.
All in all, I would skip this book until the major deficiency of no sample application is fixed.