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
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
Appendix A. A Satire of Two Companies
Appendix B. What Is Software?