Building Composite Applications with WPF Tomer Shamam Smart Client Manager Sela Group
Agenda Complex UI Challenges Composite Application Guidance for WPF Q & A Summary
Complex UI Challenges Develop Pieces Independently Application Evolves Over Time Deployment Issues Testability
Composite Application
Modules and Bootstrapper Functional Independent Discoverable Pluggable Deployment Module Views Logic Services ConcernsContainsContains
DEMO Working with Modules
Shell and Views Usually Main Window Multiple views Named regions Top-level elements Appearance and behavior Styles and Templates Region
DEMO Constructing the Shell
Separated Presentation View bounds-to Model Presenter updates View Model Presenter View IView Model Presentation Model View View bounds-to presentation model Presentation model updates, queries and observes model Presentation model notifies View for changes Supervising Controller Presentation Model
DEMO Implementing Separated Presentation
Event Aggregator Site Map Module Site Map Module Endpoints Module Commanding & LCE Details Presenter Endpoints View Endpoints View OpenSite DelegateCommand ExecuteHandle Endpoints Module SiteMap Presentation Model Endpoints View Endpoints View Site Selected Event CompositeWpfEvent Publish Handle
DEMO Communicating through Commands and LCE
Limitations Not relevant for small projects Not applicable for CAB migration New patterns and concepts adoption Strict rules and discipline Performance
Q & A
Summary Complex UI’s are hard to maintain and extend Composite Applications are the solution for Complex UI’s Composite Application Guidance for WPF is the solution for Composite WPF Application
Additional Resources MSDN CodePlex Essential WPF Article (Glenn Block)
© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.