Composite UI Application Block – today is the day

Today is the day… I can’t put it off any longer – I have to dive in and learn about the CAB.


“What?” You say “You don’t know the CAB!”


Hey… I’ve been busy.  I thought I would keep a journal of notes on my experience in learning this – maybe you will find the notes useful.


patterns & practices


The first thing I have been warned about is installing it in the default location C:\Program Files\Microsoft patterns & practices\Composite UI Application Block Tech Preview 1


The problem is, this location has that pesky “&” in the name which causes problems for all sorts of things even though the file system allows it.  I don’t know the details but for now I have installed it in Microsoft pnp instead


What to do?

I have the beta version of our hands on labs but I decided first to check out one of the QuickStart apps.  I’m going to start with the bank teller.  I like to see what the end looks like before I begin on the labs.


When I open the project it would be nice if I had some kind of guidance on what to do.  This is a rather large project – I think we can set this up so that when you open the project you get an HTML file open with instructions and such (don’t the starter kits do this?)


I do like how the readme gives me a sense of the architecture and design as well as limitations.


I gave the app a run – very nice – looks good this should be fun!  Now on to the lab.


Lab Module 1 – Introduction

After reading this really great introduction I’m wondering if there should be a quiz on this material?  Would a self-assessment be a good idea?


Ok – I finished module 1.  I took about 30 minutes to get through this and my head is spinning.  This certainly does look pretty cool but there are many new concepts to grok and I most certainly didn’t understand all of them.  I’m tempted to dive in deeper and start tracing through the code in detail but I think a better plan would be to complete the labs.


Lab Module 2 - Building and using WorkItems with the Composite UI Application Block

Cool!  I like the way the labs use the QuickStarts – this is a nice tie in and this one will also have me building unit tests as well – even better!


One thing that would help me to better understand is if we described the use case that the work item is implementing up front.  Right now the lab is taking me by the hand through implementation of a use case but I don’t know what the use case is.


One other thing – people are going to have to understand IOC or Dependency Injection in order to really get how the CAB works.  We talk about it but I’m not sure we explain it enough for people to really get it.


This lab I did in about 44 minutes – it is interesting that the bank teller here looks different than the quickstart one which did not use MDI.  My head is still spinning though.  Perhaps we need a summary at the end of a section which reviews the key concepts and locks them in place?  Right now you just run the thing and see it work.


Lab Module 3- Developing the User Experience


Step 1 tells me to double click on the MdiWorkspace control to open it in the designer as a way to add the controls to the toolbox.  The only problem is that when I do I get an error


Could not load file or assembly 'Microsoft.Practices.ComponentModel, Version=1.0.50630.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)


I’m not sure what to do about this so I think I will press on and see what happens.


Ok – I didn’t get very far until I needed to drop a SmartPart place holder on the form and it isn’t in the toolbox.  I’m going to have to figure this out.  It appears that .NET has located an assembly but it isn’t the one it wants.  I’m going to find all of these assemblies, delete them all and rebuild – perhaps that will solve the problem.


Nope – it didn’t so I’m stuck in the water for now.  Oh well – its lunchtime anyway so I’ll send some mail and see what we can come up with.  That’s all for now….




Skip to main content