Comprehensive, pragmatic tutorial on Agile development for C# programmers from one of the founding fathers of Agile programming.
* Adapted from the Jolt Award winner Agile Software Development Principles, Patterns, and Practices * Brings together principles of object oriented design, design patterns, UML and software best practices * Uses real-world case studies to show how to plan, test, and refractor
Table Of Contants Agile Development * Agile Practices * Overview of Extreme Programming * Planning * Testing * Refactoring * A Programming Episode
Agile Design * What Is Agile Design? * The Single-Responsibility Principle (SRP) * The Open/Closed Principle (OCP) * The Liskov Substitution Principle (LSP) * The Dependency-Inversion Principle (DIP) * The Interface Segregation Principle (ISP) * Overview of UML for C# Programmers * Working with Diagrams * State Diagrams * Object Diagrams * Use Cases * Sequence Diagrams * Class Diagrams * Heuristics and Coffee
The Payroll Case Study Command and Active Object: Versatility and Multitasking * Template Method and Strategy: Inheritance versus Delegation * Facade and Mediator * Singleton and Monostate * Null Object * The Payroll Case Study: Iteration 1 * The Payroll Case Study: Implementation
Packaging the Payroll System * Principles of Package and Component Design * Factory * The Payroll Case Study: Package Analysis * Composite * Observer: Evolving into a Pattern * Abstract Server, Adapter, and Bridge * Proxy and Gateway: Managing Third-Party APIs 507 * Visitor * State * The Payroll Case Study: The Database * The Payroll User Interface: Model View Presenter