Working with Composite Application Guidance for WPF
The last few days I’ve been working on a sample application (Composite Mail Client) using Composite Application Guidance for WPF.
In this post I’ll explain the steps I took for understanding the guidance reviewing the assets included with the Composite Application Guidance for WPF package, and a small preview of the sample application I’m developing.
Steps for getting familiar with the guidance
The first step was to read the documentation included with the package, which is very complete and prove to be useful during the whole application development. Even though I had little background working with WPF and Unity Application Block (the container used for dependency injection) the induction was quite natural and after the first module, the other modules were very easily created.
Once I understood the architecture and the HOW-TOs for the basic tasks I reviewed the Quickstarts, these sample applications show specific tasks implementations and are very useful as a reference when addressing particular tasks (dynamic module discovery, interaction of different views in a decoupled way, etc.).
Figure 2: UI Composition Quickstart sample application
Finally, for a complete features review, I checked out the Stock Trader Reference Implementation included in the package. In this solution you can get a full sample of the capability of the Composite Application Guidance for WPF, and turned to be an useful guidance while I was developing my sample application.
Developing the sample application
My app is still under development, but I’ll give you a quick review of it.
The scenario
The application represents a basic e-mail client, where you have 3 panels: Contact Groups List, Contacts List and Mail List; there is also a second window where you can read the e-mails (by double-clicking on the mail at the Mail List panel).
Implementation
For implementing the application, each of the 3 panels is represented as a module, with a Service that retrieves data from XML, a View and a Presentation Model. For the Mail List there is an extra View for the mail reader window with a Presenter class.
And ff course it’s being fully TDDed!
Figure 4: Composite Mail Client layout on beta version
Figure 5: Composite Mail Client solution’s structure
I hope I’ll be able to finish developing it soon so the moment I’ve done with it I’ll post the code…
You can get the guidance from: http://www.codeplex.com/CompositeWPF. Enjoy it!
