Agile Principles, Patterns, and Practices in C# by Robert C. Martin

Leave a comment

Source: http://druss.co/wp-content/uploads/2013/10/Agile-Principles-Patterns-and-Practices-in-C.pdf

| Index
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
Agile Principles, Patterns, and Practices in C#
By Martin C. Robert, Martin Micah
………………………………………..
Publisher: Prentice Hall
Pub Date: July 20, 2006
Print ISBN-10: 0-13-185725-8
Print ISBN-13: 978-0-13-185725-4
Pages: 768
Table of Contents | Index
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.

Agile Principles, Patterns, and Practices in C#
By Martin C. Robert, Martin Micah
………………………………………..
Publisher: Prentice Hall
Pub Date: July 20, 2006
Print ISBN-10: 0-13-185725-8
Print ISBN-13: 978-0-13-185725-4
Pages: 768
Table of Contents | Index
Copyright
Robert C. Martin Series
Foreword
Foreword
Preface
Acknowledgments
About the Authors

Section I. Agile Development

Chapter 1. Agile Practices
The Agile Alliance
Principles
Conclusion
Bibliography

Chapter 2. Overview of Extreme Programming
The Practices of Extreme Programming
Conclusion
Bibliography

Chapter 3. Planning
Initial Exploration
Release Planning
Iteration Planning
Defining “Done”
Task Planning
Iterating
Tracking
Conclusion
Bibliography

Chapter 4. Testing
Test-Driven Development
Acceptance Tests
Serendipitous Architecture
Conclusion
Bibliography
Chapter 5. Refactoring
A Simple Example of Refactoring: Generating Primes
Conclusion
Bibliography

Chapter 6. A Programming Episode
The Bowling Game
Conclusion
Overview of the Rules of Bowling
Section II. Agile Design

Chapter 7. What Is Agile Design?
Design Smells
Why Software Rots
The Copy Program
Conclusion
Bibliography

Chapter 8. The Single-Responsibility Principle (SRP)
Defining a Responsibility
Separating Coupled Responsibilities
Persistence
Conclusion
Bibliography

Chapter 9. The Open/Closed Principle (OCP)
Description of OCP
The Shape Application
Conclusion
Bibliography

Chapter 10. The Liskov Substitution Principle (LSP)
Violations of LSP
Factoring Instead of Deriving
Heuristics and Conventions
Conclusion
Bibliography

Chapter 11. The Dependency-Inversion Principle (DIP)
Layering
A Simple DIP Example
The Furnace Example
Conclusion
Bibliography

Chapter 12. The Interface Segregation Principle (ISP)
Interface Pollution
Separate Clients Mean Separate Interfaces
Class Interfaces versus Object Interfaces
The ATM User Interface Example
Conclusion
Bibliography

Chapter 13. Overview of UML for C# Programmers
Class Diagrams
Object Diagrams
Collaboration Diagrams
State Diagrams
Conclusion
Bibliography

Chapter 14. Working with Diagrams
Why Model?
Making Effective Use of UML
Iterative Refinement
When and How to Draw Diagrams
Conclusion

Chapter 15. State Diagrams
The Basics
Using FSM Diagrams
Conclusion
Chapter 16. Object Diagrams
A Snapshot in Time
Active Objects
Conclusion

Chapter 17. Use Cases
Writing Use Cases
Diagramming Use Cases
Conclusion
Bibliography

Chapter 18. Sequence Diagrams
The Basics
Advanced Concepts
Conclusion

Chapter 19. Class Diagrams
The Basics
An Example Class Diagram
The Details
Conclusion
Bibliography

Chapter 20. Heuristics and Coffee
The Mark IV Special Coffee Maker
OOverkill
Bibliography
Section III. The Payroll Case Study

Chapter 21. COMMAND and ACTIVE OBJECT: Versatility and Multitasking
Simple Commands
Transactions
Undo Method
Active Object
Conclusion
Bibliography

Chapter 22. TEMPLATE METHOD and STRATEGY: Inheritance versus Delegation
Template Method
Strategy
Conclusion
Bibliography

Chapter 23. Facade and Mediator
Facade
Mediator
Conclusion
Bibliography
Chapter 24. Singleton and Monostate
Singleton
Monostate
Conclusion
Bibliography
Chapter 25. Null Object
Description
Conclusion
Bibliography

Chapter 26. The Payroll Case Study: Iteration 1
Rudimentary Specification
Analysis by Use Cases
Reflection: Finding the Underlying Abstractions
Conclusion
Bibliography

Chapter 27. The Payroll Case Study: Implementation
Transactions
Main Program
The Database
Conclusion
About This Chapter
Bibliography

Section IV. Packaging the Payroll System

Chapter 28. Principles of Package and Component Design
Packages and Components
Principles of Component Cohesion: Granularity
Principles of Component Coupling: Stability
Conclusion

Chapter 29. Factory
A Dependency Problem
Static versus Dynamic Typing
Substitutable Factories
Using Factories for Test Fixtures
Importance of Factories
Conclusion
Bibliography

Chapter 30. The Payroll Case Study: Package Analysis
Component Structure and Notation
Applying the Common Closure Principle (CCP)
Applying the Reuse/Release Equivalence Principle (REP)
Coupling and Encapsulation
Metrics
Applying the Metrics to the Payroll Application
The Final Packaging Structure
Conclusion
Bibliography

Chapter 31. Composite
Composite Commands
Multiplicity or No Multiplicity
Conclusion

Chapter 32. Observer: Evolving into a Pattern
The Digital Clock
The OBSERVER Pattern
Conclusion
Bibliography
Chapter 33. Abstract Server, Adapter, and Bridge
Abstract Server
Adapter
Bridge
Conclusion
Bibliography

Chapter 34. PROXY and GATEWAY: Managing Third-Party APIs
Proxy
Databases, Middleware, and Other Third-Party Interfaces
Table Data Gateway
Using Other Patterns with Databases
Conclusion
Bibliography

Chapter 35. Visitor
Visitor
Acyclic Visitor
Decorator
Extension Object
Conclusion
Bibliography

Chapter 36. State
Nested Switch/Case Statements
Transition Tables
The State Pattern
Classes of State Machine Application
Conclusion
Bibliography

Chapter 37. The Payroll Case Study: The Database
Building the Database
A Flaw in the Code Design
Adding an Employee
Transactions
Loading an Employee
What Remains?

Chapter 38. The Payroll User Interface: MODEL VIEW PRESENTER
The Interface
Implementation
Building a Window
The Payroll Window
The Unveiling
Conclusion
Bibliography

Appendix A. A Satire of Two Companies
Appendix B. What Is Software?
Afterword
InsideFrontCover
Manifesto for Agile Software Development
Principles behind the Agile Manifesto
InsideBackCover
Practices of Extreme Programming
The Principles of Object Oriented Design
Index

Advertisements

Oracle JDeveloper 11g — Online Demonstrations

Leave a comment

Oracle JDeveloper 11g — Online Demonstrations

View the online demonstrations below to see JDeveloper in action! All you need to watch the demos is your web browser with flash plug-in and a sound card. You can use the playback bar at the bottom of each demo to control the speed and flow of the demo. To maximize your viewing area press F11 in your browser.

General IDE

 Oracle JDeveloper Development Experience
 Development Lifecycle with JDeveloper 11 g
 The Java Code Editor Features
 Updated SubVersion Support
 UML Design with Oracle JDeveloper
 Developing Extensions for Oracle JDeveloper

Java EE 5.0 Development

 Developing EJB/JPA Applications with Oracle JDeveloper 11g
 JSF Development With JDeveloper

Rich Internet Applications (RIA) with JSF

 Oracle ADF Faces Rich Client Components Quick Overview
 ADF Faces Rich Client Runtime Capabilities
 Oracle ADF Data Visualizations: Graph Interactivity
 Oracle ADF Data Visualizations: Maps, Gauges and Pivot Tables
 Oracle ADF Data Visualizations: The Hierarchical Viewer New
 ADF Faces Rich Client Development Experience
 ADF Data Visualization : Maps, Gauges and Pivot Table – Development Experience

Advanced JSF Development

 Oracle ADF Taskflows – Extending the JSF Controller
 ADF Declarative Components – Reusable JSF Components

Web Services Development

 Web Services Development in Oracle JDeveloper
 WSDL Editor New Features New
 Web Service Data Control Development with Oracle JDeveloper

Oracle Application Development Framework – Oracle ADF

 Oracle Application Development Framework Overview
 Swing Development with Oracle ADF
 New & enhanced declarative features in Oracle ADF Business Components
 Oracle ADF Mobile
 Oracle ADF Desktop Integration New
 Declarative Application Customization – MDS New
 Integrating Oracle Help with your ADF Applications New

Oracle ADF and Oracle SOA Integration

 Creating SDO from ADF Business Components New
 Consuming ADF Business Components SDO in Composite Applications New
 Creating ADF User Interfaces for Composite Applications New
 Integrating ADF with Human TaskFlows New

Database Development

 Database Development using Templates
 Database Reporting New

Oracle Team Productivity Center

 Team Productivity Center Overview New
 Working with Work Items New
 

Oracle JDeveloper 10g Online Demos Archives

Oracle JDeveloper 11g — Online Demonstrations

View the online demonstrations below to see JDeveloper in action! All you need to watch the demos is your web browser with flash plug-in and a sound card. You can use the playback bar at the bottom of each demo to control the speed and flow of the demo. To maximize your viewing area press F11 in your browser.

General IDE

 Oracle JDeveloper Development Experience
 Development Lifecycle with JDeveloper 11 g
 The Java Code Editor Features
 Updated SubVersion Support
 UML Design with Oracle JDeveloper
 Developing Extensions for Oracle JDeveloper

Java EE 5.0 Development

 Developing EJB/JPA Applications with Oracle JDeveloper 11g
 JSF Development With JDeveloper

Rich Internet Applications (RIA) with JSF

 Oracle ADF Faces Rich Client Components Quick Overview
 ADF Faces Rich Client Runtime Capabilities
 Oracle ADF Data Visualizations: Graph Interactivity
 Oracle ADF Data Visualizations: Maps, Gauges and Pivot Tables
 Oracle ADF Data Visualizations: The Hierarchical Viewer New
 ADF Faces Rich Client Development Experience
 ADF Data Visualization : Maps, Gauges and Pivot Table – Development Experience

Advanced JSF Development

 Oracle ADF Taskflows – Extending the JSF Controller
 ADF Declarative Components – Reusable JSF Components

Web Services Development

 Web Services Development in Oracle JDeveloper
 WSDL Editor New Features New
 Web Service Data Control Development with Oracle JDeveloper

Oracle Application Development Framework – Oracle ADF

 Oracle Application Development Framework Overview
 Swing Development with Oracle ADF
 New & enhanced declarative features in Oracle ADF Business Components
 Oracle ADF Mobile
 Oracle ADF Desktop Integration New
 Declarative Application Customization – MDS New
 Integrating Oracle Help with your ADF Applications New

Oracle ADF and Oracle SOA Integration

 Creating SDO from ADF Business Components New
 Consuming ADF Business Components SDO in Composite Applications New
 Creating ADF User Interfaces for Composite Applications New
 Integrating ADF with Human TaskFlows New

Database Development

 Database Development using Templates
 Database Reporting New

Oracle Team Productivity Center

 Team Productivity Center Overview New
 Working with Work Items New
 

Oracle JDeveloper 10g Online Demos Archives

Source: http://www.oracle.com/technetwork/developer-tools/jdev/viewlet-097827.html

Service-oriented architecture (SOA)

Leave a comment

A service-oriented architecture is essentially a collection of services. These services communicate with each other. The communication can involve either simple data passing or it could involve two or more services coordinating some activity. Some means of connecting services to each other is needed.

Service-oriented architectures are not a new thing. The first service-oriented architecture for many people in the past was with the use DCOM or Object Request Brokers (ORBs) based on the CORBA specification. For more on DCOM and CORBA, see Prior service-oriented architectures (new window).

Services

If a service-oriented architecture is to be effective, we need a clear understanding of the term service. A service is a function that is well-defined, self-contained, and does not depend on the context or state of other services. See Service (new window).

Connections

The technology of Web services (new window) is the most likely connection technology of service-oriented architectures. Web services essentially use XML (new window) to create a robust connection.

The following figure illustrates a basic service-oriented architecture. It shows a service consumer at the right sending a service request message to a service provider at the left. The service provider returns a response message to the service consumer. The request and subsequent response connections are defined in some way that is understandable to both the service consumer and service provider. How those connections are defined is explained in Web Services explained (new window). A service provider can also be a service consumer.

Service-oriented architecture

Source: http://www.service-architecture.com/web-services/articles/service-oriented_architecture_soa_definition.html