Export (0) Print
Expand All
1 out of 1 rated this helpful - Rate this topic

Guidelines for Choosing Composite UI Deliverables from patterns & practices

Retired Content

This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This page may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.

The patterns & practices team has several deliverables for building composite applications. The following list highlights the scenarios where you should consider using each:

  • If you need to develop a composite Windows Forms application, consider using Smart Client Software Factory:
    • It leverages the most mature platform.
    • It offers a good development and debugging experience (including tooling, control support, drag and drop, and rapid application development experience).
    • It includes code generation (this is provided with guidance package support and recipes).
    • It includes capabilities for occasionally connected clients.
  • If you need to develop a composite Windows Forms application with islands of Windows Presentation Foundation (WPF) content, consider using Smart Client Software Factory and WPF interop:
    • It can be leveraged with an existing Smart Client Software Factory infrastructure.
    • It includes guidance automation (in the form of guidance package support and recipes).
  • If you want to migrate an existing Composite UI Application Block application to WPF, consider using WPFCAB in the SCSFContrib CodePlex project:
    • It allows building pure WPF-based applications with the Composite UI Application Block.
    • It can be leveraged with an existing Smart Client Software Factory infrastructure, except for views.
    • It is not maintained or owned by the patterns & practices team; instead, it is supported by community.
    • It is a literal port of Composite UI Application Block to WPF and not optimized to take advantage of WPF.
    • It does not include guidance automation.
  • If you want to create a composite application with WPF or upgrade an existing WPF application to a composite application, use Composite Application Guidance for WPF:
    • It targets WPF composite application development.
    • It is designed for best use WPF capabilities.
    • It includes a lightweight library—you can choose the library capabilities you want to include.
    • It integrates with existing applications and libraries.
    • It does not include guidance automation.

Comparing to the Composite UI Application Block

This is not simply a new version of the patterns & practices Composite UI Application Block. It is a new set of libraries and guidance, built from the ground up, that is designed to help you develop new WPF composite applications. Although it is not a new version of the Composite UI Application Block, it uses the core concepts of the Composite UI Application Block, such as modularity, user interface (UI) composition, services, dependency injection, and event brokering. These concepts are essential for building composite applications and Composite Application Guidance uses them; however, the implementation differs from the Composite UI Application Block for several reasons:

  • Composite Application Guidance incorporates customer feedback. Over the years, the patterns & practices team has received great feedback, positive and negative, about the Composite UI Application Block implementation. Some of the negative feedback includes that it is too heavy, too complicated, too tightly coupled, and too hard to get going. Additionally, customers expressed a need for an approach that allows incremental adoption of the library and to work with existing libraries. The patterns & practices team determined that the best way to address the concerns and tackle the new ideas was with a clean break.
  • The Composite UI Application Block was not built to support WPF. Although you can port the Composite UI Application Block to WPF, the application block was not built to take advantage of WPF's core functionality. In many instances, the application block introduced mechanisms that are now native to WPF. For example, WPF introduces attached properties that aid in UI composition in a lighter-weight way than what existed in the application block. WPF is also an inherently different paradigm than Windows Forms. There are many flexible ways to compose your UI over the traditional way of using controls. WPF also introduces the idea of using templates to control the way your UI renders.
  • The Composite UI Application Block relies on the Windows Forms development experience. Composite UI Application Block development scenarios depend on the tooling and productivity experience provided for Windows Forms by Microsoft Visual Studio. Currently, the WPF developer experience is a very different paradigm. In Visual Studio 2008, a good portion of WPF application development still requires manually working with XAML. The built-in Visual Studio designers provide only a small subset of the capabilities Windows Forms developers are accustomed to. Tools such as Expression Blend offer some of these capabilities, but they are not targeted for developers and do not integrate into the development environment. This experience will be improved in future versions of the platform. Based on the current state of WPF development, the transition from Windows Forms to WPF currently requires substantial effort and developers face a steep learning curve. For these reasons, this guidance is optimized for new composite application development in WPF.

Retired Content

This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This page may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.

Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft. All rights reserved.