打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Smart Client - Composite UI Application Block
Smart Client - Composite UI Application Block
 

patterns & practices Developer Center

December 2005

Summary

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.

Contents

Overview
Getting Started
Community
Future Plans
Feedback and Support
Authors and Contributors
Related Titles

Overview

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.

Common Scenarios

The application block is designed to support the development ofsmart client line-of-business applications such as the ones found inthe following scenarios:

  • Online transaction processing (OLTP) front-ends, in areas such as stock distribution centers or data entry applications
  • Rich client portals to back-end services, such as portals to government services or bank teller applications
  • UI intensive information-worker standalone applications, such as those used by call center staff, IT support desks, or stock traders

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:

  • It allows your application to be based on the concept of modules or plug-ins.
  • It allows developers with shell expertise to build components that hide user interface complexity from the business logic development.
  • It facilitates development using patterns for loose coupling between modules.

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)

Audience Requirements

This guidance is intended for software architects and softwaredevelopers. To develop using this guidance, you should have anunderstanding of the following technologies:

  • Microsoft Visual C# or Microsoft Visual Basic 2005
  • Microsoft .NET Framework 2.0
  • Windows Forms

Applications built using this guidance will require the .NET Framework 2.0 to run.

System Requirements

To use the Composite UI Application Block in your development environment, you need the following:

  • Microsoft Windows 2000, Microsoft Windows XP Professional, or Microsoft Windows Server 2003 operating system
  • Microsoft .NET Framework 2.0
  • Microsoft Visual Studio 2005 Team Edition for Software Developers (recommended, but not required)
  • NUnit 2.2.0 (Optional; required only if you are running NUnit tests. Available from the NUnit Web site.)

Design Goals

The design of the Composite UI Application Block is based around three main areas:

  • Finding and loading modules at application initialization to dynamically build a solution
  • Separating development requiring user interface and shell expertise from pure business logic development
  • Achieving re-use and modularity of your code by helping with common techniques used for loose coupling

Figure 2 shows how these main subsystems are grouped.

Figure 2. Subsystems of the Composite UI Application Block

Design Highlights

This section describes how the subsystems in Figure 2 help you achieve the goals of the application block.

Finding and Loading Modules

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:

  • An implementation of a catalog that specifies which modules to load.
  • A module loader that actually loads and initializes the modules that comprise your application.

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.

Consolidating User Interface and Shell Expertise

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:

  • A consistent way of showing and hiding controls using Workspaces. A shell developer can consistently introduce visual effects, layout strategies, or other behaviors without affecting the business logic components.
  • A common way of adding and using UIElements into the shell, such as menu items, status bars, so that the developer of an individual piece of business logic does not need to know how or where that element will be shown.
  • A Command architecture that allows a business logic developer to separately define actions a user can take and how they are displayed in a specific shell.

Achieving Modular Design of Your Business Logic

The functionality that focuses on helping you achieve loose coupling between your modules includes:

  • WorkItems that provide an easy way to scope which collaborating components participate in a use case, share state, events, and common services.
  • An Event Broker that provides a many-to-many, loosely coupled event system mechanism between objects in your application.
  • Placeholders for sharing State where multiple components can place or retrieve information.

Inherent Extensibility

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.

Getting Started

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:

  1. Download the code and documentation in the language of your preference.
  2. Install the Composite UI Application Block and compile it.
  3. Read the "Introduction" and "Scenarios and Goals" sections of the documentation.
  4. Compile and run the QuickStart samples.
  5. Start with the "Walkthrough - Designing and Building a CAB Application" QuickStart and read the related documentation.
  6. If the application block looks like a good fit for your application, and for an in-depth, quick immersion on the code, follow the instructions on the Hands-on-Lab training content.

Community

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.

Future Plans

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.

Feedback and Support

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.

AttributeDescription
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.

Authors and Contributors

The Composite UI Application Block was produced by the following individuals:

  • Program and Product Management: William Loeffler, Srinath Vasireddy and Eugenio Pace (Microsoft Corporation)
  • Architect: Edward Jezierski (Microsoft Corporation)
  • Development: Peter Provost and Brad Wilson (Microsoft Corporation); Daniel Cazzulino and Juan Elichirigoity (Clarius Consulting); John Luif (Interlink Group Inc); Javier Arguello (Lagash Systems); Rolando Méndez and Cesar Muñoz (Artinsoft); Matthew Cosier, Philip Beadle, John Bickerstaff, Ray Trattles and Martin Granell (Readify Inc.); Matias Woloski, Mariano Szklanny and Alejandro Jack (Southworks)
  • Test team: Mohammad Al-Sabt and Carlos Farre (Microsoft Corporation); Rohit Sharma, Rajeswari Santhanam, Aruppukotai Periyasamy, Manickavasagam Sundaram, Mohammad Ashraf, Arjun B. M., Balaji Ragupathi, Saravanan Marappan, Deiva Shankar UthayaSankaralingam, and Siddharth Pandey (Infosys Technologies Ltd)
  • Edit team: RoAnn Corbisier (Microsoft Corporation); Alex Homer and Lin Joyner (Content Master Ltd); Melissa Seymour and Tina Burden McGrayne (TinaTech Inc)
  • Release Management: Sanjeev Garg (Microsoft Corporation)

Many thanks to the following advisors who provided invaluable assistance:

  • Microsoft patterns & practices: Wojtek Kozazcynski
  • Microsoft Consulting Services: Paul Nguyen and Alfred Broderick
  • Microsoft Architecture Strategy Team: Brenton Webster and John Devadoss
  • Microsoft Windows Forms .NET Product Team: David Hill, Keith Yedlin, John Rivard, and Niklas Gustafsson
  • Community Members: Norman Headlam (Fidelity Investments); Christian Nielsen and Kai Makipera (Volvo Information Technology AB); Andres Aguiar (DeKlarit); Darren Stokes, Steve Neal, Andrew Flick, and Andrew Smith (Infragistics); Maurice Flanagan (Infusion)

Related Titles

Smart Client Software Factory

Mobile Client Software Factory

Enterprise Library

Microsoft Customer Care Framework

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
张文韬 : 组合界面程序块介绍(Composite UI Application Bloc...
windows server 2008下安装SQL SERVER 2005出现IIS功能要求警告解决方案
How Microsoft Lost the API War
老徐的博客 ? Blog Archive ? 微软企业库(1):Enterprise Library 5.0介绍
安信Windows驱动开发教程:创建一个简单的 Windows 11 应用 本文将引导您完成创建简单 Windows 11 应用程序的步骤,以便您可以开始使用 Windows 11 的新视觉效果和功能。我们将在此处构建的应用程序只是一些已更新
Windows 微软雅黑(Microsoft YaHei)+ Monaco 字体整合方案
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服