This application block is a reusable, source code–based component based on the Microsoft .NET Framework 2.0. It provides proven practices to build complex smart client user interfaces based on well known design patterns such as the Composite pattern, in which simple user interface parts can be combined to create complex solutions, but at the same time allowing these parts to be independently developed, tested, and deployed.
The Composite UI Application Block is designed to help you build these complex, enterprise-ready Windows Forms–based solutions. It provides a proven architecture and implementation that helps you to build applications using the common patterns found in line-of-business front-end applications.
Common Scenarios
The application block is designed to support the development of smart client line-of-business applications such as the ones found in the 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 shell architecture that can host the user interface and business logic "parts," and varying degrees of centralized control of the functionality 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.
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
Finding and Loading Modules
A key goal of the Composite UI Application Block is to support the development of applications through the use of independent, but collaborating, 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 without changing the provided core Composite UI Application Block implementation because all of the main subsystems work as plug-ins. For example, your application could obtain the list of modules to be loaded for a particular user of the application from a centrally managed Web service instead of reading them from a file.
Consolidating User Interface and Shell Expertise
Seldom does every developer of an application have both knowledge of the business logic requirements and deep expertise in user interface or shell development. In large projects, productivity and consistency can be achieved if the developers with expertise in building shells can build reusable components encapsulating that knowledge.
The Composite UI Application Block provides an architecture around these components and 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 business logic, controls, and services). The Composite UI Application Block's extensibility mechanism allows you to add and extend it with your own behaviors and services in the same way it implements its functionality.
Getting Started
The Composite UI Application Block has been developed as a result of analyzing common enterprise development challenges and successful solutions to these challenges. However, because each application is unique, you will have to analyze whether this application block is suitable for your particular needs. To evaluate this application block and determine its applicability to your projects, it is suggested that you dedicate at least half of a day to explore the application block. The following is a suggested evaluation approach:
* Download the code and documentation in the language of your preference.
here is the link to download http://www.microsoft.com/downloads/details.aspx?FamilyId=7B9BA1A7-DD6D-4144-8AC6-DF88223AEE19&displaylang=en
* Install the Composite UI Application Block and compile it.
* Read the "Introduction" and "Scenarios and Goals" sections of the documentation.
* Compile and run the QuickStart samples.
* Start with the "Walkthrough - Designing and Building a CAB Application" QuickStart and read the related documentation.
In next article i will consentrate diffrent types of blocks and their utilities. Keep have a lok on the blog to find some thing interesting :)
Friday, January 25, 2008
Composite UI Application Block
Posted by
sivashiva
at
6:34 PM
1 comments
Subscribe to:
Posts (Atom)