A handbook for enterprise system developers guiding them through
the intricacies and lessons learned in application development. http://www.dropshippers.co.za/
° The latest book from noted technology guru Martin Fowler http://www.dropshippers.co.za/
° Provides proven solutions to the everyday problems facing
information systems developers http://www.dropshippers.co.za/
° Patterns are supported by code examples, in both Java and
C# http://www.dropshippers.co.za/
Table of Contents
Preface.
Who This Book Is For.Acknowledgements.Colophon.
Introduction.
Architecture.Enterprise Applications.Kinds of Enterprise
Application.Thinking About Performance.Patterns.The Structure of
the Patterns.Limitations of These Patterns.
I. THE NARRATIVES.
1. Layering.
2. Organizing Domain Logic.
Making a Choice.Service Layer.
- Mapping to Relational Databases.
http://www.dropshippers.co.za/
Architectural Patterns.The Behavioral Problem.Reading in
DataStructural Mapping Patterns.Mapping
Relationships.Inheritance.Building the Mapping.Double Mapping.Using
Metadata.Database Connections.Some Miscellaneous Points.Further
Reading.
- Web Presentation.
http://www.dropshippers.co.za/
View Patterns.Input Controller Patterns.Further Reading.
- Concurrency (by Martin Fowler and David Rice).
http://www.dropshippers.co.za/
Concurrency Problems.Execution Contexts.Isolation and
Immutability.Optimistic and Pessimistic Concurrency
Control.Preventing Inconsistent
Reads.Deadlocks.Transactions.ACID.Transactional Resources.Reducing
Transaction Isolation for Liveness.Business and System
Transactions.Patterns for Offline Concurrency Control.Application
Server Concurrency.Further Reading.
- Session State.
http://www.dropshippers.co.za/
The Value of Statelessness.Session State.Ways to Store Session
State.
- Distribution Strategies.
http://www.dropshippers.co.za/
The Allure of Distributed Objects.Remote and Local
Interfaces.Where You Have to Distribute.Working with the
Distribution Boundary.Interfaces for Distribution.
- Putting it all Together.
http://www.dropshippers.co.za/
Starting With the Domain Layer.Down to the Data Source.Data
Source for Transaction Script. Data Source Table Module (125). Data
Source for Domain Model (116). The Presentation Layer.Some
Technology-Specific Advice.Java and J2EE..NET.Stored Procedures.Web
Services.Other Layering Schemes.
II. THE PATTERNS.
9. Domain Logic Patterns.
- Transaction Script.How It Works.When to Use It.The Revenue
Recognition Problem.Example: Revenue Recognition (Java).Domain
Model.How It Works.When to Use It.Further Reading.Example: Revenue
Recognition (Java).Table Module.How It Works.When to Use
It.Example: Revenue Recognition with a Table Module (C#).Service
Layer(by Randy Stafford).How It Works.When to Use It.Further
Reading.Example: Revenue Recognition (Java).
http://www.dropshippers.co.za/
10. Data Source Architectural Patterns.
Table Data Gateway.How It Works.When to Use It.Further
Reading.Example: Person Gateway (C#).Example: Using ADO.NET Data
Sets (C#).Row Data Gateway.How It Works.When to Use It.Example: A
Person Record (Java).Example: A Data Holder for a Domain Object
(Java).Active Record.How It Works.When to Use It.Example: A Simple
Person (Java).Data Mapper.How It Works.When to Use It.Example: A
Simple Database Mapper (Java).Example: Separating the Finders
(Java).Example: Creating an Empty Object (Java).
- Object-Relational Behavioral Patterns.
http://www.dropshippers.co.za/
Unit of Work.How It Works.When to Use It.Example: Unit of Work
with Object Registration (Java) (by David Rice).Identity Map.How It
Works.When to Use It.Example: Methods for an Identity Map
(Java).Lazy Load.How It Works.When to Use It.Example: Lazy
Initialization (Java).Example: Virtual Proxy (Java).Example: Using
a Value Holder (Java).Example: Using Ghosts (C#).
- Object-Relational Structural Patterns.
http://www.dropshippers.co.za/
Identity Field.How It Works.When to Use It.Further
Reading.Example: Integral Key (C#).Example: Using a Key Table
(Java).Example: Using a Compound Key (Java).Foreign Key Mapping.How
It Works.When to Use It.Example: Single-Valued Reference
(Java).Example: Multitable Find (Java).Example: Collection of
References (C#).Association Table Mapping.How It Works.When to Use
It.Example: Employees and Skills (C#).Example: Using Direct SQL
(Java).Example: Using a Single Query for Multiple Employees (Java)
(by Matt Foemmel and Martin Fowler).Dependent Mapping.How It
Works.When to Use It.Example: Albums and Tracks (Java).Embedded
Value.How It Works.When to Use It.Further Reading.Example: Simple
Value Object (Java).Serialized LOB.How It Works.When to Use
It.Example: Serializing a Department Hierarchy in XML (Java).Single
Table Inheritance.How It Works.When to Use It.Example: A Single
Table for Players (C#).Loading an Object from the Database.Class
Table Inheritance.How It Works.When to Use It.Further
Reading.Example: Players and Their Kin (C#).Concrete Table
Inheritance.How It Works.When to Use It.Example: Concrete Players
(C#).Inheritance Mappers.How It Works.When to Use It.
- Object-Relational Metadata Mapping Patterns.
http://www.dropshippers.co.za/
Metadata Mapping.How It Works.When to Use It.Example: Using
Metadata and Reflection (Java).Query Object.How It Works.When to
Use It.Further Reading.Example: A Simple Query Object
(Java).Repository (by Edward Hieatt and Rob Mee).How It Works.When
to Use It.Further Reading.Example: Finding a Person's Dependents
(Java).Example: Swapping Repository Strategies (Java).
- Web Presentation Patterns.
http://www.dropshippers.co.za/
Model View Controller.How It Works.When to Use It.Page
Controller.How It Works.When to Use It.Example: Simple Display with
a Servlet Controller and a JSP View (Java).Example: Using a JSP as
a Handler (Java).Example: Page Handler with a Code Behind
(C#).Front Controller.How It Works.When to Use It.Further
Reading.Example: Simple Display (Java).Template View.How It
Works.When to Use It.Example: Using a JSP as a View with a Separate
Controller (Java).Example: ASP.NET Server Page (C#).Transform
View.How It Works.When to Use It.Example: Simple Transform
(Java).Two Step View.How It Works.When to Use It.Example: Two Stage
XSLT (XSLT).Example: JSP and Custom Tags (Java).Application
Controller.How It Works.When to Use It.Further Reading.Example:
State Model Application Controller (Java).
- Distribution Patterns.
http://www.dropshippers.co.za/
Remote Facade.How It Works.When to Use It.Example: Using a Java
Session Bean as a Remote Facade (Java).Example: Web Service
(C#).Data Transfer Object.How It Works.When to Use It.Further
Reading.Example: Transferring Information about Albums
(Java).Example: Serializing Using XML (Java).
- Offline Concurrency Patterns.
http://www.dropshippers.co.za/
Optimistic Offline Lock (by David Rice).How It Works.When to
Use It.Example: Domain Layer with Data Mappers (165)
(Java).Pessimistic Offline Lock (by David Rice).How It Works.When
to Use It.Example: Simple Lock Manager (Java).Coarse-Grained Lock
(by David Rice and Matt Foemmel).How It Works.When to Use
It.Example: Shared Optimistic Offline Lock (416) (Java).Example:
Shared Pessimistic Offline Lock (426) (Java).Example: Root
Optimistic Offline Lock (416) (Java).Implicit Lock (by David
Rice).How It Works.When to Use It.Example: Implicit Pessimistic
Offline Lock (426) (Java).
- Session State Patterns.
http://www.dropshippers.co.za/
Client Session State.How It Works.When to Use It.Server Session
State.How It Works.When to Use It.Database Session State.How It
Works.When to Use It.
- Base Patterns.
http://www.dropshippers.co.za/
Gateway.How It Works.When to Use It.Example: A Gateway to a
Proprietary Messaging Service (Java).Mapper.How It Works.When to
Use It.Layer Supertype.How It Works.When to Use It.Example: Domain
Object (Java).Separated Interface.How It Works.When to Use
It.Registry.How It Works.When to Use It.Example: A Singleton
Registry (Java).Example: Thread-Safe Registry (Java) (by Matt
Foemmel and Martin Fowler).Value Object.How It Works.When to Use
It.Money.How It Works.When to Use It.Example: A Money Class (Java)
(by Matt Foemmel and Martin Fowler).Special Case.How It Works.When
to Use It.Further Reading.Example: A Simple Null Object (C#).Plugin
(by David Rice and Matt Foemmel).How It Works.When to Use
It.Example: An Id Generator (Java).Service Stub (by David Rice).How
It Works.When to Use It.Example: Sales Tax Service (Java).Record
Set.How It Works.When to Use It.References
Index. 0321127420T10162002 http://www.dropshippers.co.za/
Patterns of Enterprise Application Architecture descriptions were created by Patterns of Enterprise Application Architecture M40901792 wholesale priced dropshippers.