CAB CTP 2 ComponentModel

Topics: CAB & Smart Client Software Factory
Oct 16, 2005 at 4:04 AM
originally posted by: hehnnheh


I was surprised a little that nothing more could be found in the CAB CTP 2 of the ComponentModel. Obviously the ComponentModel was replaced completely by the ObjectBuilder with its various Pattern implementations.

I am very interested how this design decision took place. Were there problems with the ComponentModel? Can you say something about this?

Best wishes
Oct 16, 2005 at 9:54 AM
originally posted by: eugeniop

That's an excellent question. Like Fermat's assertion on the x^n+y^n=z^n theorem "We have discovered a truly remarkable proof of this theorem that the margin of this page is too small to contain"

Too much to say in a short reply, but the team will spend quite a lot explaining Object Builder moving forward.
Oct 17, 2005 at 2:01 PM
originally posted by: wanderer1

Also, what's the performance difference between using the object builder and componentmodel?

Oct 18, 2005 at 5:19 AM
originally posted by: dcazzulino

Performance-wise, they should be pretty much the same.

Functionality-wise, the CM was showing its limitations in that it was originally intended as a lifecycle container + service locator pattern alone (the System.CM, that is). Inside VS, that's all that was needed to provide the rich design-time experience we all enjoy in VS.

However, as a generic dependency injection framework, our extensions started looking more and more alien to its original design and started to look like workarounds to it more than an integral part of it. We even faced some challenges when we found that some controls actually use the CM at runtime. Yuck! (see

Therefore, we decided to do a clean start, and thought about what we really wanted and needed from a generic injection framework. ObjectBuilder is the result of that, and I'm much more happy with what we have now. And that's even considering I was the one responsible for trying to bring the CM to the masses and enhance it for our scenarios. It just wasn't as smooth as I wanted it to be...