Geeks With Blogs

News
View Szymon Kobalczyk's profile on LinkedIn

Szymon Kobalczyk's Blog A Developer's Notebook

I spent last two days trying to learn the Composite UI Application Block (CAB) recently published by Microsoft's patterns&practices group. This application block provides practices and components to build complex smart client user interfaces.

I've been working on similar frameworks in the past but I always wasn't quite happy of my design. The problem such frameworks are trying to solve is to allow to build the application from independent modules. The module here can consist of views (i.e. forms and other controls), business objects and logic, and something to glue all this together. The final application is “composed” by registering currently available modules. The focus here is to minimize the dependencies between modules and allow rapid development with a team of programmers.

The most prevalent problem I had was to allow the parts to communicate with one another and yet don't introduce too much dependencies. The solution I settled on recently is to implement an automation model that is accessible for all parts and publishes events the parts can subscribe to. You can learn this from great articles from Omar Al Zabir. But still I have problems with connecting this model with the business objects and logic.

So my interest in CAB is to see how they intend to solve such issues and maybe implement similar mechanisms in my framework. The design of CAB is based on few really sophisticated patterns like inversion of control, event broker, commands and of course composite items. Altogether this builds a flexible framework that promises great extensibility. But it also makes it all really hard to comprehend (or maybe it's just for me). The quick-starts aren't much help here because they focus on narrow concepts. What I would really like to see is how all this elements work together in a complete n-tier application like TaskVision, IssueVision or FotoVision.

Through lack of any I decided to create one myself. I thought it would be interesting to re-implement some existing application, and was looking for something that already had well designed data access and business logic layers with good separation of presentation layer. In the end I choose the .NET PetShop, one of Microsoft's benchmark applications,which makes it more interesting as originally this is a web application.

I will write along as I work my way through.

Posted on Friday, January 6, 2006 6:40 AM Development , Smart Client | Back to top


Comments on this post: Understanding Composite UI Application Block

# re: Understanding Composite UI Application Block
Requesting Gravatar...
I think CAB is quite hard to learn...
Left by rasyadi on Jan 06, 2006 9:12 AM

# re: Understanding Composite UI Application Block
Requesting Gravatar...
I'm starting to think the same thing, looks like a monster and not very designer friendly.
Left by Jose Fuentes on Jan 27, 2006 6:51 PM

# re: Understanding Composite UI Application Block
Requesting Gravatar...
Jose,
Actually I think CAB is really well designed, flexible and realy powerful app block. Of course it is only the core on which you need to build up your own application framework. But before you start adding automation and templates it's worth to spend some time and try to build few example screen, or small but complete application to learn and understand how it works and what patterns you can use or extend later.

I will try to remmember to send you the code later this weekend (it even doesn't compile at the moment :-)). For more feature-reach example see the SmartClient Baseline Architecture Toolkit. Latest release contains preliminary GAT package.
Left by Szymon on Jan 27, 2006 8:04 PM

# re: Understanding Composite UI Application Block
Requesting Gravatar...
Hi, have to learn it in my job.
Problem is, its not very good documented.
So its very hard to learn.
Would be glad if anyone knows about additional documents.
Hope that there is more existing than just the December release and Guidance Automation.
Please tell me if there is something.

Thanks

My mail: rpipsen@hotmail.de
Left by Roman Pawlig on Jul 19, 2006 3:19 PM

# re: Understanding Composite UI Application Block
Requesting Gravatar...
Hi,
We use CAB in one of our new projects.

I took me two weeks to learn the CAB framework and to understand the concepts. If you understand the ObjectBuilder which CAB is based upon then CAB is a useful framework.

After the two weeks CAB makes it more and more easy to implement parts of the project.
Left by Bjoern on Dec 01, 2006 6:49 PM

# CAB isn't so easy to learn...
Requesting Gravatar...
After spending a few hours trying to figure out the responsibilities of all the elements of CAB, I found
Left by Guy Burstein's Blog on Mar 09, 2007 5:14 PM

# re: Understanding Composite UI Application Block
Requesting Gravatar...
When I first started learning CAB, I had trouble getting over the steep learning curve.
I have set up a blog where users can read examples/tutorials and ask questions.

Left by Composite UI Application Block on May 09, 2007 6:51 PM

# re: Understanding Composite UI Application Block
Requesting Gravatar...
Hi All,

We are using CAB in our project and i have just started on CAB buit the document (Help file)provided is not good.Could anyone provide me with additional document.

Thanks



Left by suresh on Jul 26, 2007 1:23 PM

# re: Understanding Composite UI Application Block
Requesting Gravatar...
Hi All,

We are using CAB in our project and i have just started on CAB buit the document (Help file)provided is not good.Could anyone provide me with additional document.

My Emai Id is suresh.09@gmail.com

Thanks


Left by suresh on Aug 03, 2007 11:28 AM

# re: Understanding Composite UI Application Block
Requesting Gravatar...
Great intro article. one quick question before I continue on, Is this based on the latest release of CAB, I noticed the date was 2006. Thanks for your efforts.
Left by Spartan on Sep 11, 2007 7:26 PM

# re: Understanding Composite UI Application Block
Requesting Gravatar...
Hi suresh!

IF you are interested in more material about CAB than have a look at http://www.codeplex.com/cabext
Left by JBE on Mar 08, 2008 12:50 AM

# re: Understanding Composite UI Application Block
Requesting Gravatar...
Please advice .

Once the projected loaded with many module on the CAB project , can be load few more module based on user inputs ( if the user is in the inventory and he / she wants to navigate payroll module which in not loaded as a part of initial load. )

Left by Mohamed on Oct 29, 2008 6:51 AM

# re: Understanding Composite UI Application Block
Requesting Gravatar...
Worst framework ever seen. Poor design and steep learning curve. Will never recommend to anyone.
Left by Ravi San on Jan 24, 2011 5:20 PM

# re: Understanding Composite UI Application Block
Requesting Gravatar...
CAB Framework is poorly documented and overly complex for the minimal advantages it provides.
Left by David on Nov 29, 2012 5:35 PM

Your comment:
 (will show your gravatar)


Copyright © Szymon Kobalczyk | Powered by: GeeksWithBlogs.net