December 2005
This page provides an overview of the Composite UI ApplicationBlock. This application block is a reusable, source code–basedcomponent based on the Microsoft .NET Framework 2.0. It provides provenpractices to build complex smart client user interfaces based on wellknown design patterns such as the Composite pattern, in which simpleuser interface parts can be combined to create complex solutions, butat the same time allowing these parts to be independently developed,tested, and deployed.
Downloads | |
Hands-on Labs | |
Whitepaper | |
Community | |
License |
Overview
Getting Started
Community
Future Plans
Feedback and Support
Authors and Contributors
Related Titles
How can you build complex user interfaces that take advantage of thepower of the Microsoft Windows desktop, interact with multiple back-endsystems, are easily deployed and configured, provide a rich userexperience, use complex data manipulation mechanisms that enhance userinterface responsiveness and yet are developed in a predictable andagile way? How can you architect an end-user application so it can beeasily updated and maintained or in environments where multipledevelopment teams can collaborate over time in the most effective way?
The Composite UI Application Block is designed to help you buildthese complex, enterprise-ready Windows Forms–based solutions. Itprovides a proven architecture and implementation that helps you tobuild applications using the common patterns found in line-of-businessfront-end applications.
The application block is designed to support the development ofsmart client line-of-business applications such as the ones found inthe following scenarios:
All these scenarios require rich user interaction, a shellarchitecture that can host the user interface and business logic"parts," and varying degrees of centralized control of thefunctionality and behavior that the application exposes to its users.
The Composite UI Application Block facilitates the design and implementation of your client applications in three areas:
There are many real-world examples that have successfullyimplemented some of these underlying design patterns in differentscenarios, such as the Integrated Dell Desktop and the scenarios enabled by the Microsoft Customer Care Framework
Figure 1 shows an example of a smart client application with thesame underlying design principles of the Composite UI ApplicationBlock. In this call center application, the main screen is built usingmultiple collaborating parts, each one addressing a specific aspect ofa business process (for example, billing, claims, or customerinformation). All of these parts could potentially be developed bydifferent teams. The parts may interact with different back-end systemsand can be independently versioned, deployed, and updated. However,they are integrated to provide a consistent user experience, shareinformation between each other, and communicate to help the end usercomplete a specific task. Shell developers are responsible for buildingthe components that give this application its custom, yet consistent,appearance and behavior (look and feel). The Composite UI ApplicationBlock implements the underlying architecture that helps build thesetypes of applications.
Figure 1. Sample call center application (reproduced with permission of Microsoft Customer Care Framework)
This guidance is intended for software architects and softwaredevelopers. To develop using this guidance, you should have anunderstanding of the following technologies:
Applications built using this guidance will require the .NET Framework 2.0 to run.
To use the Composite UI Application Block in your development environment, you need the following:
The design of the Composite UI Application Block is based around three main areas:
Figure 2 shows how these main subsystems are grouped.
Figure 2. Subsystems of the Composite UI Application Block
This section describes how the subsystems in Figure 2 help you achieve the goals of the application block.
A key goal of the Composite UI Application Block is to support thedevelopment of applications through the use of independent, butcollaborating, modules. This is achieved by:
These implementations can be customized for your own needs withoutchanging the provided core Composite UI Application Blockimplementation because all of the main subsystems work as plug-ins. Forexample, your application could obtain the list of modules to be loadedfor a particular user of the application from a centrally managed Webservice instead of reading them from a file.
Seldom does every developer of an application have both knowledge ofthe business logic requirements and deep expertise in user interface orshell development. In large projects, productivity and consistency canbe achieved if the developers with expertise in building shells canbuild reusable components encapsulating that knowledge. The CompositeUI Application Block provides an architecture around these componentsand an implementation based on Windows Forms. It includes:
The functionality that focuses on helping you achieve loose coupling between your modules includes:
Internally, the design is based on concepts of services (components that provide an implementation of functionality) and containers(components that hold references to your objects containing businesslogic, controls, and services). The Composite UI Application Block'sextensibility mechanism allows you to add and extend it with your ownbehaviors and services in the same way it implements its functionality.
The Composite UI Application Block has been developed as a result ofanalyzing common enterprise development challenges and successfulsolutions to these challenges. However, because each application isunique, you will have to analyze whether this application block issuitable for your particular needs. To evaluate this application blockand determine its applicability to your projects, it is suggested thatyou dedicate at least half of a day to explore the application block.The following is a suggested evaluation approach:
This application block, like many patterns & practices deliverables, is associated with a community site.On this community site, you can post questions, provide feedback, orconnect with other users for sharing ideas. Community members can alsohelp Microsoft plan and test future guidance offerings, and downloadadditional content such as extensions and training material.
Microsoft considers the use of this application block and otherpatterns & practices guidance as part of the roadmap to adoptingWindows Presentation Foundation (WPF) in large smart clientapplications. The patterns & practices group is already consideringthe path toward "WinFX" technologies such as WPF, Windows CommunicationFoundation, and Windows Workflow Foundation.
Users of earlier releases of the User Interface Process ApplicationBlock might recognize some of the scenarios addressed by the CompositeUI Application Block. The Composite UI Application Block builds on theknowledge and feedback gained from releases of the User InterfaceProcess Application Block, but it represents a significant change inhow those scenarios are addressed.
Adding navigation features to the Composite UI Application Blockwill be done in subsequent releases. Interim versions of the featurewill be released on the community site before final release.
Questions? Comments? Suggestions? To provide feedback about thisapplication block, or to get help with any problems, please visit the Composite UI Application Block community site.The message board on the community site is the preferred feedback andsupport channel because it allows you to share your ideas, questions,and solutions with the entire community. Alternatively, you can sende-mail directly to the Microsoft patterns & practices team at devfdbck@microsoft.com, although we are unable to respond to every message.
The Composite UI Application Block is a guidance offering, designedto be reused, customized, and extended. It is not a Microsoft product.For more information, see the following table.
Attribute | Description |
---|---|
Support | Code-based guidance is shipped "as is" and without warranties. Customers can obtain support through Microsoft Support Services for a fee. The code will be considered user-written by Microsoft support staff. The patterns & practices team works with product support and will assist them with escalations as needed. In addition to this, customers are encouraged to sign up with the patterns & practices online user communities, where experience is shared among users. |
Functionality | Provides a flexible and architecturally sound solution to a common enterprise development challenge. The guidance addresses the challenges by using base platform features and adhering to best practices. The guidance is designed to be extended and customized by users. |
Release | Guidance releases are typically developed in a 3–6 month life cycle. Assets are released as they become ready on the currently available platform. New versions of existing assets (possibly revised to run on later versions of the platform) are released if there is sufficient customer demand. |
Compatibility | Code-based guidance is designed to help solve problems over specific versions of Microsoft products. As the products change, the guidance issued may change or become obsolete. Guidance is developed with future releases in mind when possible. There are no guarantees about compatibility with earlier releases of guidance, or with past or future platform releases. A phased upgrade strategy is recommended, and coexistence of multiple versions of the guidance is given high priority by the patterns & practices team. |
Form factor | This guidance is released as source code. Variability is provided through configuration and defined extensibility points, as well as through direct modification of the source code. Documentation focuses on how to use the asset, how to extend it, and the goals, patterns, and tradeoffs driving its design. |
The Composite UI Application Block was produced by the following individuals:
Many thanks to the following advisors who provided invaluable assistance:
Mobile Client Software Factory
联系客服