I have just completed reading Agile Principles, Patterns and Practices in C# by Robert C. Martin and Micah Martin. I learned a lot while reading this book, particularly about patterns. This book contains a lot of information with its’ 38 chapters and 700 pages, but it is written in a easy to read language and have plenty of figures and code examples. I think that everyone involved in software development will benefit from reading this book, particularly developers and solution architects.
Section 1 in this book focuses on agile development covering practices, Extreme programming, planning, testing, refactoring and a case study.
Section 2 is about agile design with principles and UML diagrams. Principles taught: The Single Responsibility Principle, The Open/Closed Principle, The Liskov Substitution Principle, The Dependency-Inversion Principle and the Interface Segregation Principle.
Section 3 is a case study where patterns are taught through a Payroll case. Patterns: Command, Template method, Strategy, Facade, Mediator, Singleton, Monostate and Null Object. This section also explains how create simple use cases from user stories, find underlying abstractions and implement the use cases.