This guidance is intended for software architects and software developers building enterprise Windows Presentation Foundation (WPF) or Silverlight applications. Such applications typically feature multiple screens, rich, flexible user interaction and data visualization, and role-determined behavior. Additionally, these applications typically use layered architectures that may be physically deployed across tiers, strong separation of concerns, and loosely coupled components. They are "built to last" and "built for change." This means that the application's expected lifetime is measured in years and that it will evolve in response to new, unforeseen requirements. Applications that do not demand these features and characteristics may not benefit from the Composite Application Library.
The Composite Application Library is built on the Microsoft .NET Framework 3.5 SP1 (this includes WPF) and Silverlight 3, and it uses a number of software design patterns. Familiarity with these technologies and patterns is useful for evaluating and adopting the Composite Application Library.
The Composite Application Guidance is not difficult to learn, but developers must be ready and willing to embrace patterns and practices that may be new to them. Management understanding and commitment is crucial and the project deadline must accommodate some upfront investment of time to learn and embrace these patterns and practices.
The Composite Application Guidance expects you to have hands-on experience with WPF or Silverlight.
If you need general information about WPF, see the following sources:
- Windows Presentation Foundation on MSDN
- MacDonald, Matthew. Pro WPF in C# 2008: Windows Presentation Foundation with .NET 3.5. Second Edition, Apress, 2008.
- Nathan, Adam. Windows Presentation Foundation Unleashed. Indianapolis, IN: Sams Publishing, 2006.
- Sells, Chris and Ian Griffiths. Programming WPF: Building Windows UI with Windows Presentation Foundation. Second Edition. O'Reilly Media, Inc., 2007.
- Anderson, Chris. Essential Windows Presentation Foundation (WPF). Addison-Wesley Professional, 2007.
If you need general information about Silverlight, see the following sources:
- Microsoft Silverlight Home Page
- Microsoft Silverlight Resources
- Microsoft Silverlight Community
- Silverlight Documentation on MSDN
- Silverlight Books
- Project Rosetta
Specifically, there are a few concepts that the Composite Application Guidance uses heavily. You should familiarize yourself with the following:
- Data binding. This is how user interface (UI) elements are connected to data in WPF and Silverlight.
- Resources. These are how styles, data templates, and control templates are created and managed in WPF and Silverlight.
- Routed commands. These are how user gestures and input are connected to controls.
- Routed events. These allow multiple listeners in a visual tree receive and handle events, instead of just the object raising the event.
- User controls. These are components that provide custom behavior or custom appearance.
- Dependency properties. These are extensions to the common language runtime property system to enable property setting and monitoring in support of data binding, routed commands, and events.
- XAML (Extensible Application Markup Language) programming. This is a language to declaratively initialize structured values and objects.
To effectively evaluate whether the Composite Application Library is right for your team, it is important to have an understanding of the problems that the Composite Application Guidance was designed to address. For more information, see When to Use This Guidance.