July 19, 2019
Hot Topics:

Smart Client: Composite UI Application Block

  • July 10, 2007
  • By Mark Strawmyer and Rachel Wireman
  • Send Email »
  • More Articles »

Managing the Parts

Part of the appeal of the CAB is being able to adapt the application to fit the needs of the user. SmartParts can be loaded programmatically. The CAB will load modules based on the contents of the ProfileCatalog.xml file. A module is a collection of components (WorkItems, services, and so forth) that are needed when performing a certain task or assuming a specific role in the application. It is also possible to enable the application to load SmartParts based on custom configuration settings in an XML or other means of configuration. This allows you to adapt the UI and load modules based on criteria such as user roles. For example, the UI could load a shop floor console, manager console, and administrator console based on the current user's assigned permissions.

Items of Interest

The following additional information should assist you in your endeavors with the Composite UI Application Block:

  • Hands-on labs: Free training content for the CAB. This contains in-depth detail about the contents of the CAB, including descriptions of the sample applications that are included.
  • Community Site: Public site targeted at helping CAB users.
  • Smart Client Software Factory: See below for more information.

Smart Client Software Factory (SCSF)

The Smart Client Software Factory is a great resource for getting started with the CAB. In addition to documentation, examples, and source code, it provides a "guidance package" that automates portions of the design process that are often repeated by developers of CAB-like applications. The link provided above provides extensive information about setting up the SCSF and making the most of its functionality.


Although we didn't show source code, you have learned about the CAB at a very high level that has been so graciously shared by the Microsoft Patterns and Practices group. It allows you to create Windows Forms-based applications that have sophisticated capability without being as sophisticated to create.

Future Columns

The topic of the next column is yet to be determined. If you have something in particular that you would like to see explained here, you could reach me at mstrawmyer@crowechizek.com.

About the Authors

Mark Strawmyer, MCSD, MCSE, MCDBA is a Senior Architect of .NET applications for large and mid-size organizations. Mark is a technology leader with Crowe Chizek in Indianapolis, Indiana. He specializes in architecture, design, and development of Microsoft-based solutions. Mark was honored to be named a Microsoft MVP for application development with C# for the third year in a row. You can reach Mark at mstrawmyer@crowechizek.com.

Rachel Wireman is a developer of applications for large and mid-size organizations. She specializes in the development of Smart Client applications. Rachel is with Crowe Chizek in Oak Brook, Illinois and contributed to the examples within the article. You can reach Rachel at rwireman@crowechizek.com.

Page 2 of 2

Enterprise Development Update

Don't miss an article. Subscribe to our newsletter below.

Thanks for your registration, follow us on our social networks to keep up-to-date