0%

Book Description

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

  1. Title Page
  2. Copyright Page
  3. Manifesto for Agile Software Development
  4. Principles behind the Agile Manifesto
  5. Robert C. Martin Series
  6. Contents
  7. Foreword
  8. Foreword
  9. Preface
  10. Acknowledgments
  11. About the Authors
  12. Section I. Agile Development
    1. 1. Agile Practices
    2. 2. Overview of Extreme Programming
    3. 3. Planning
    4. 4. Testing
    5. 5. Refactoring
    6. 6. A Programming Episode
  13. Section II. Agile Design
    1. 7. What Is Agile Design?
    2. 8. The Single-Responsibility Principle (SRP)
    3. 9. The Open/Closed Principle (OCP)
    4. 10. The Liskov Substitution Principle (LSP)
    5. 11. The Dependency-Inversion Principle (DIP)
    6. 12. The Interface Segregation Principle (ISP)
    7. 13. Overview of UML for C# Programmers
    8. 14. Working with Diagrams
    9. 15. State Diagrams
    10. 16. Object Diagrams
    11. 17. Use Cases
    12. 18. Sequence Diagrams
    13. 19. Class Diagrams
    14. 20. Heuristics and Coffee
  14. Section III. The Payroll Case Study
    1. 21. COMMAND and ACTIVE OBJECT: Versatility and Multitasking
    2. 22. TEMPLATE METHOD and STRATEGY: Inheritance versus Delegation
    3. 23. Facade and Mediator
    4. 24. Singleton and Monostate
    5. 25. Null Object
    6. 26. The Payroll Case Study: Iteration 1
    7. 27. The Payroll Case Study: Implementation
  15. Section IV. Packaging the Payroll System
    1. 28. Principles of Package and Component Design
    2. 29. Factory
    3. 30. The Payroll Case Study: Package Analysis
    4. 31. Composite
    5. 32. Observer: Evolving into a Pattern
    6. 33. Abstract Server, Adapter, and Bridge
    7. 34. PROXY and GATEWAY: Managing Third-Party APIs
    8. 35. Visitor
    9. 36. State
    10. 37. The Payroll Case Study: The Database
    11. 38. The Payroll User Interface: MODEL VIEW PRESENTER
  16. Appendix A. A Satire of Two Companies
  17. Appendix B. What Is Software?
  18. Index
  19. Practices of Extreme Programming
  20. The Principles of Object Oriented Design
  21. Footnotes
    1. Preface
    2. Section I
    3. Chapter 1
    4. Chapter 2
    5. Chapter 3
    6. Chapter 4
    7. Chapter 5
    8. Chapter 6
    9. Chapter 7
    10. Chapter 8
    11. Chapter 9
    12. Chapter 10
    13. Chapter 11
    14. Chapter 13
    15. Chapter 14
    16. Chapter 17
    17. Chapter 19
    18. Chapter 20
    19. Chapter 21
    20. Chapter 22
    21. Chapter 24
    22. Chapter 25
    23. Chapter 26
    24. Chapter 27
    25. Chapter 28
    26. Chapter 29
    27. Chapter 30
    28. Chapter 31
    29. Chapter 32
    30. Chapter 33
    31. Chapter 34
    32. Chapter 35
    33. Chapter 36
    34. Chapter 38
    35. Appendix B