And so it releases. This has been a great project and team to work with. I feel privileged to have been able to work with all the folks who made it possible, and to have made such a step forward implementing a close customer connection throughout the project.

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag2/html/cab.asp

So what is CAB? It's an application block that 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 whre the platform and tools are going in the future in this space.

It contains:

  • 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 
    • 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
    • UI Extension sites - named 'slots' in a shell where you want to add controls such as menus or status bar panes
    • Commands - a common way of hooking up multiple UI events to a specific callback inside your 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
    • Built on ObjectBuilder - which allows you to extend the architecture specifying what it means to 'contextualize' an object.
  • A reflective architecture that you can explore 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 (see the sample visualization in a separate download).

This is a 'large' app block - you will probably want to do the hands-on-labs and see the webcasts to understand the key concepts in depth. But you can get going with little effort by looking at the quicktstarts and included how-to documentation.

When the time comes around, we'll be working on showing how WinFX technologies such as Windows Workflow and WPF (Avalon) can be used in CAB applications. As always, the goal of these p&p assets is to help you build your applications in that make the best use of the existing platform and sets you up for simplified adoption of the next generation.

I hope you enjoy it. To all the customers who participated in our expert advisory board, on-site visits, workshops, webcasts and gotDotNet community - THANK YOU.

//7-12 Updated to add link to Visualization download