1. Attaching Behaviors / Controllers - I don't think I want these to be different things. Behaviors are pretty much like Controllers in OpenFlux, but can be assigned to any object. The behavior might have expectations of the target (implements ISelectable, IList, etc), but if the target doesn't meet those expectations it basically just doesn't do anything. I think it would be confusing to try to seperate out these concepts. You could still implement an IBehavior that just doesn't use the metadata and such though.
Possibly I worded it wrong. I don't see them as different things, I see a Controller (or maybe call it ComponentBehavior) as something that extends from Behavior and adds all of the common controller functionality I loved in OpenFlux.
Correct me if I'm wrong, but I think the idea is that Controller/ComponentBehavior/Behavior are all the same thing. We're just taking the functionality you know and love from OpenFlux and giving it a new name. The difference is that its target is no longer typed to the interface IComponent. In reference to Ben's whitepaper we don't have an IComponent interface.
There's no use for a behavioral base class except where we deal directly with components, so the plan is to just have the single base with all the great functionality built in.
Tyler