Extending CAB, and what is to come in v1 of CAB

Topics: CAB & Smart Client Software Factory
Jul 21, 2005 at 5:09 AM
originally posted by: andersmh

We are implementing the use of CAB in our organisation, and are going to extend som parts of it to suit our needs. We chose to use CAB for its excellent possibilities for implementation of MVC, UseCases, loose coupling, and generally good design and quality of work as we see in the CAB.

We are thinking about extending the loading of workitems/modules from the shell. When the module loads it now is asked to initialize itself, and the views to a workspace of its choosing.

We want to extend this so that where the module is loaded by the shell. The catalog xml contains mapping information about the views and which workspace it is to be loaded into. This can probably be done by the shell reading the information from the xml, and passing an information object to the module/workspace intialize method.

We are also thinking about including the information about UIElements (Menu) in the catalog so that the workitems dont know anything about them. This will allow a second shell later, to load the same module, in which a toolbar instead of a menu is used as a UIElement, even if the URIs are different ( since the mapping is specified).

Extending the CAB this way, would solve some of our requirements, but we dont want to
1) Extend the CAB with functionality which is already there but we havent found, or dont understand.
2) Do a lot of effort extending the CAB with functionality the CAB team will be implementing in a future release.

So, are we missing some features of CAB here ?
And we would very much like to know what features the CAB team might be adding towards their final release (version 1) ?

We are thinking along these lines to further loosen the connection between the shell, the modules and workitems, so that modules/workitems can be shared among different shells, or the shell redeveloped freely without requiring new development of the modules/workitems.