Extensive work has gone into identifying and promoting best practices for web application development. But surprisingly little attention has been given to the effective design and architecture of modern desktop clients. This information is crucial: within enterprise applications, user interfaces can be surprisingly complex, and since they depend so heavily on human interaction, they are a huge source of potential bugs. Presentation Patterns fills this gap, bringing together state-of-the-art design patterns for managing the complexity of desktop user interface code and improving its reliability, robustness, and flexibility. Using the popular patterns format, Jeremy Miller introduces proven patterns for organizing the responsibilities of a single screen, coordinating the activities of multiple screens within an application, and architecting structures that make it easier to extend desktop applications over a longer lifecycle. Miller illuminates his platform-independent techniques with practical Java and .NET examples. Together, Miller's patterns and code samples empower development teams to achieve multiple goals that have often conflicted in the past.Using them, desktop client developers can deliver richer user interfaces, create composite applications that serve as common infrastructures for multiple smaller applications; improve performance, responsiveness, and value; and at the same time mitigate the complexity that might otherwise lead to failure.