Microsoft Patterns & Practices: Composite Application Guidance for WPF

I'm sure many of you have seen Microsoft's Patterns & Practices website and I'll bet a large number of you have read the best practices guidance there and used the application blocks available there.

Well, a new guidance stream is available on the site, this one specific to providing prescriptive guidance on WPF (Windows Presentation Foundation) applications.  It was formerly code-named Prism, but is now available publicly as the Composite Application Guidance for WPF .

The Composite Application Guidance for WPF is designed to help you more easily build enterprise-level Windows Presentation Foundation (WPF) client applications. This guidance will help you design and build flexible composite WPF client applications—composite applications use loosely coupled, independently evolvable pieces that work together in the overall application.

Using the guidance streamlines the WPF team development experience. You can build solutions that take advantage of the full power of WPF and that are highly maintainable, testable, and whose pieces can be developed by separate teams.

The code for the application block itself is available as open source from CodePlex and can be found here.

So, what's "in the box", so to speak?  Well, lots of stuff.  Below is a list of the things available as part of this Patterns & Practices release:

  • Stock Trader Reference Implementation
  • Composite Application Library for WPF
  • Quickstarts (4)
  • Hands on Lab (1)
  • Documentation (300 pages)
    • Composite Baseline Architecture
    • UI Designer Guidance
    • Design Concepts (3)
    • Technical Concepts (8)
    • Patterns (6) + Patterns Overview
    • How-to’s (20)

From a perspective of which challenges it addresses for WPF development, this release is meant to provide the following jumpstart functionality:

  • Modularity: The Composite Application Library promotes modularity by allowing you to implement business logic, visual components, infrastructure components, presenter or controller components, and any other objects the application requires, in separate modules. Developers can easily create the UI and implement business logic independently of each other.
  • User Interface Composition: The Composite Application Library promotes user interface composition by allowing you to implement visual components from various loosely coupled visual components, known as views, which may reside in separate modules. The visual components may display content from multiple back-end systems. To the user, it appears as one seamless application.