Composite UI application block provides common infrastructure components and a programming model for smart client applications that are composed out of views and business logic that might come from different teams or need to evolve independently. It has been architected considering many a convergence of many patterns observed in large successful customer applications and where the platform and tools are going in the future in this space.
The benefits of using Composite UI application block can be immense, especially considering the infrastructure of it.
• WorkItems: a programming abstraction to simplify encapsulating use cases into 'contexts' that have shared state and orchestrating logic and nested recursively
• Plug-in infrastructure: providers for enumerating available modules and loading them into the environment, and orchestration of the application bootstrap
• Shared shell abstractions: a set of interfaces that allow logic to 'share a shell' and to facilitate separation of concerns between UI-intensive shell development and business logic development
o Workspaces - a set of interfaces that specify how to show controls in an a given area or style - such as portal, tabbed, MDI windows, etc
o UI Extension sites - named 'slots' in a shell where controls are to be added such as menus or status bar panes
o Commands - a common way of hooking up multiple UI events to a specific callback inside the application
• Composition infrastructure that helps objects find each other and communicate - such as the ability to share state, auto-wire-up of pub-sub of events
• A service locator/lifetime container/dependency injection++ foundation
o Built on ObjectBuilder - which allows extending the architecture specifying what it means to 'contextualize' an object.
• A reflective architecture that can be explored to see the current state of the application, and a visualization architecture that allows architects and troubleshooters have views that exploit this reflective nature and can show you the internals of the application structure and how it's running while it's live
Moreover 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 centres 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 centre staff, IT support desks, or stock traders
The good thing is that all these benefits from the Composite UI application block can be had for free of cost as this is a freely available tool on the Microsoft patterns and practices website. Support is available in terms of forums and user groups who actively contribute and thus highlighting the advantages of using this block as well as troubleshooting guidelines.