Agile Principles, Patterns, and Practices in C# by Robert C. Martin and Micah Martin describes how to write software using C#. Book covers also most important design patterns and object-oriented development principles. There are very good, close to reality examples for every topic and that makes this book pretty easy to read and understand.
Everything in this book is organized logically. Knowledge given and explained in one section is well used in real context during all following sections. I think it makes this book interesting as you develop your skills step-by-step without jumping from one context to another.
Authors build couple of simple applications in this book to illustrate programming and testing practices. It is interesting process because they start with pretty simple code and then refactor it continuously, write tests and apply patterns to get well designed applications.
You can find also examples about application packaging, packages analysis and different metrics that give you overview of parts of applications. Book contains all equations and gives you exampler of calculations based on code presented by authors.
I think this book is a good starting material for everybody who wants to start serious software development.
Editorial review from Amazon
With the award-winning book Agile Software Development: Principles, Patterns, and Practices, Robert C. Martin helped bring Agile principles to tens of thousands of Java and C++ programmers. Now .NET programmers have a definitive guide to agile methods with this completely updated volume from Robert C. Martin and Micah Martin, Agile Principles, Patterns, and Practices in C#. This book presents a series of case studies illustrating the fundamentals of Agile development and Agile design, and moves quickly from UML models to real C# code. The introductory chapters lay out the basics of the agile movement, while the later chapters show proven techniques in action. The book includes many source code examples that are also available for download from the authors’ Web site. Readers will come away from this book understanding *Agile principles, and the fourteen practices of Extreme Programming *Spiking, splitting, velocity, and planning iterations and releases *Test-driven development, test-first design, and acceptance testing *Refactoring with unit testing *Pair programming *Agile design and design smells *The five types of UML diagrams and how to use them effectively *Object-oriented package design and design patterns *How to put all of it together for a real-world project Whether you are a C# programmer or a Visual Basic or Java programmer learning C#, a software development manager, or a business analyst, Agile Principles, Patterns, and Practices in C# is the first book you should read to understand agile software and how it applies to programming in the .NET Framework.
Table of contents
Foreword    
Preface     
Acknowledgments     
About the Authors
Section: I Agile Development
Chapter 1. Agile Practices    
Chapter 2. Overview of Extreme Programming     
Chapter 3. Planning     
Chapter 4. Testing     
Chapter 5. Refactoring     
Chapter 6. A Programming Episode
Section: II Agile Design
Chapter 7. What Is Agile Design?    
Chapter 8. The Single-Responsibility Principle (SRP)     
Chapter 9. The Open/Closed Principle (OCP)     
Chapter 10. The Liskov Substitution Principle (LSP)     
Chapter 11. The Dependency-Inversion Principle (DIP)     
Chapter 12. The Interface Segregation Principle (ISP)     
Chapter 13. Overview of UML for C# Programmers     
Chapter 14. Working with Diagrams     
Chapter 15. State Diagrams     
Chapter 16. Object Diagrams     
Chapter 17. Use Cases     
Chapter 18. Sequence Diagrams     
Chapter 19. Class Diagrams     
Chapter 20. Heuristics and Coffee 
Section: III The Payroll Case Study
Chapter 21. COMMAND and ACTIVE OBJECT: Versatility and Multitasking    
Chapter 22. TEMPLATE METHOD and STRATEGY: Inheritance versus Delegation     
Chapter 23. Facade and Mediator     
Chapter 24. Singleton and Monostate     
Chapter 25. Null Object     
Chapter 26. The Payroll Case Study: Iteration 1     
Chapter 27. The Payroll Case Study: Implementation 
Section: IV Packaging the Payroll System
Chapter 28. Principles of Package and Component Design    
Chapter 29. Factory     
Chapter 30. The Payroll Case Study: Package Analysis     
Chapter 31. Composite     
Chapter 32. Observer: Evolving into a Pattern     
Chapter 33. Abstract Server, Adapter, and Bridge     
Chapter 34. PROXY and GATEWAY: Managing Third-Party APIs     
Chapter 35. Visitor     
Chapter 36. State     
Chapter 37. The Payroll Case Study: The Database     
Chapter 38. The Payroll User Interface: MODEL VIEW PRESENTER 
Bibliography    
Appendix A. A Satire of Two Companies     
Appendix B. What Is Software?     
Afterword
View Comments (1)
+1 from me! If all developers had the knowledge that this book contains, the world would be a better place. I think it's a must read together with Uncle Bob's Clean Code book.