I just finished reading Architecting Applications for the Enterprise.
This book is a must read for any .Net developer. Though aimed at Architects or those who are on track to become an Architect, the information contained inside is something that any developer, from “Junior” to “Architect” should know. It’s extremely easy to read, and the authors don’t drag you down into concept hell when trying to explain things.
The first few sections are a well explained overview of what the authors think architecture means, and the pitfalls it tries to avoid. Then the book digs a bit deeper with descriptions of SOLID Principles, design patterns and testability. These sections are where the book really shines, taking a bunch of abstract concepts and boiling them down to what situations they help prevent.
Finally, the last half of the book delves deep into the domain model and domain driven design. These sections are peppered with scenarios and even a few code samples to take an extremely complex topic and make it understandable without putting the reader to sleep.
There are some things covered in the first edition that I wish would have carried over to the second edition. Also, The book is very heavily focused on Domain Driven Design, I wish there would have been a bit better comparison and contrast with other design methods. While I agree with the authors preference for DDD, it would have been nice to see pros and cons of different approaches.
Just have to say again, this is an awesome book. You can buy it here http://www.informit.com/store/