To supply the Carbon Component Framework with generic delegation we looked at
a number of options. To be truely generic the system needed an aggregating
object that would handle the inclusion and the delegation to any set of
helper objects. In addition, this system needed to be able to deal with
helpers that are written after the development of the core system and with
features that could not be known at the time of the Core Framework's design.
The generic delegation also had to be able to handle any component to
be written by client developers of the framework. This meant it had to be
able to assume the identity of that Component Implementation and provide
its functionality as well as that of the addition helper or infrastructure
feature providers.
In order to accomplish this we considered the following options:
- Dynamic Proxies
- Runtime Code Generation
- Compile Time Code Generation
- Weakly-typed Message Driven Model
- Hand Coding