Composite Application Block (CAB) Programming Essentials - Crucial For CAB Performance

Rich Newman  posted awesome guides for Composite Application Block (CAB) programming:

Table of Contents: Introduction to CAB/SCSF

Part 1 Modules and Shells

Part 2 WorkItems

Part 3 Introduction to Dependency Injection

Part 4 An Aside on Inversion of Control, Dependency Inversion and Dependency Injection

Part 5 Dependency Injection and the Composite Application Block

Part 6 Constructor Injection in the Composite Application Block

Part 7 Introduction to Services in the Composite Application Block

Part 8 Creating and Using Services in the Composite Application Block

Part 9 The Command Design Pattern

Part 10 Commands in the Composite Application Block

Part 11 Introduction to Events in the Composite Application Block

Part 12 Events in the Composite Application Block

Part 13 Introduction to UIExtensionSites

It is important to understand these core principles. Recently I was involved with a project where CAB was used extensively. Too extensively... The application was actually over-CAB'ed causing performance hit. When we ran the profiler we saw that many functions calls were empty while adding up to execution time. The only solution was redesigning the application and CAB usage.

Lessons Learned:

  • Do not over CAB
  • Load modules on demand
  • Cache static data

Related resources: