Szymon Kobalczyk's Blog

A Developer's Notebook

  Home  |   Contact  |   Syndication    |   Login
  82 Posts | 5 Stories | 150 Comments | 380 Trackbacks

News

View Szymon Kobalczyk's profile on LinkedIn

Twitter












Article Categories

Archives

Post Categories

Image Galleries

Blogs I Read

Tools I Use

A year ago I've published a series of articles on understanding Composite UI Application Block (CAB). Although I've never got to finish it I still occasionally receive comments and questions on this subject.

Recently I came across two great papers on CAB and SCSF that I would like to share:

  • Designing Smart Clients Based on CAB and SCSF by Mario Spuszta, is architectural guidance created for RACON Software GmbH, and later published as white paper on MSDN. It contains complete overview of CAB and SCSF, with many interesting tips on implementation and project management. It answers many question I had when I was learning CAB. What I particularly liked is the use case-driven strategy for identifying work items.
  • Commonwealth Bank of Australia CommSee Solution: Case Study. Commonwealth Bank of Australia designed, developed, and implemented its CommSee application, a relationship banking solution custom-built by the Commonwealth Bank of Australia. This project was major success and has been successfully deployed to 30,000 users at more than 1,700 sites across Australia. Its architecture inspired patterns&practices implementation of CAB and serves as great source of ideas on building composite smart clients and SOA applications. Ron Jacob recorded series of video interviews with the CommSee core team available on Channel 9.
posted on Saturday, January 13, 2007 11:09 AM

Feedback

# re: White paper: Designing Smart Clients Based on CAB and SCSF 1/26/2007 8:06 PM Donna
I've really learned a lot about CAB from reading your blog...but there's still one thing I haven't been able to figure out. I need to pass in command-line arguments into my CAB application, and I'm not sure how to pass them from the shell Main into my workitem. The app goes from Main to the ModuleInit class in the related project. I think if I could get the command line args into Module Init, I could figure out how to get the data into my workitem, but how do I get it from the shell Main to the ModuleInit of the related project?

Thank you!

# re: White paper: Designing Smart Clients Based on CAB and SCSF 2/20/2007 4:35 PM Marek
You could store your command line argument in the RootWorkItem's state which you could then access from your modules. Something like the simplified example below.

Marek

public class ShellApplication : FormShellApplication<WorkItem, ShellForm>
{
[STAThread]
static void Main(string[] args)
{
try
{
ShellApplication shellApp = new ShellApplication();
shellApp.MyParam = args[0];
shellApp.Run();
}
catch (Exception ex)
{
HandleException(ex);
}
}

string _myParam;

public string MyParam
{
get { return _myParam; }
set { _myParam = value; }
}

protected override void AfterShellCreated()
{
base.AfterShellCreated();
RootWorkItem.State["MyParam"] = MyParam;
}
}

# re: White paper: Designing Smart Clients Based on CAB and SCSF 2/20/2007 6:20 PM Szymon
Also note that you can use the System.Environment.GetCommandLineArgs static method at any point in your application, which returns the same string array you'd get inside Main method.

# re: White paper: Designing Smart Clients Based on CAB and SCSF 4/21/2007 1:33 PM Sue
In the "CAB Infrastructure Usage Guidelines" it advises to use command pattern between the components if it is active communication and Event broker system for passive communication. Also it states that if you need immediate response the event broker system is the wrong system.
Could you explain why the event broker system should be used minimally? What are the disadvantages of using event broker system? Also, what is the underlying mechanism for the Command Pattern? Is it not using events mechanism?

Thanks

# re: White paper: Designing Smart Clients Based on CAB and SCSF 5/2/2007 10:34 PM keith
Well I really wish someone had a complete CAB or SCSF implementation. We have not seen anywhere it leverages the EAB caching as a case study... doco is really hard to come by and the learning curve for a large enterprise application has been steep.

Post Feedback

Title:
Name:
Email: (never displayed)
Url:
Comments: 
Please add 2 and 6 and type the answer here: