This is my gripe. I understand why the inheritance is needed, and I
understand proxies. The thing I don't get is that adding these types of
services is know as adding aspects. They should be transparent, considering
they have very little to do with the algorithm you are coding (i.e. method
call ). Also considering the single inheritance model it forces you into
corner. That's all nothing more nothing less.
Oh joy of interface coloring .. those were the days :>)
The proxying is a relatively transparent way of doing aspects, but has a few
problems:
1. require ContextBoundObject, which are a performance headache
2. not automatic, not trivial
I think Microsoft thought a lot of AOP, especially with COM+ and, for
example, EntrepriseServices objects. The thing is, they did discover one
thing, which is that as soon as you use AOP in an arbitrary way, you have to
take into account:
1. The fact that each aspect might have a problem and would want to stop
execution
2. The chain of aspects needs to know there was this problem
3. Some aspects may require other aspects.
That's why, I believe, Microsoft did provide a good tool for aspects, but
only usable internally at Microsoft, and try to discourage anyone from doing
it themselves. Chris Brumme already said the performance of
ContextBoundObjects should be enhanced. At the same way, their scope is
being reduced (if not dropped) by Indigo.
I think that AOP might have a new life when method-call scoped contexts
appears in the Indigo time frame. Till then, just don't rely on it :)

Signature
Sebastien Lambla
http://thetechnologist.is-a-geek.com/blog/
> This is my gripe. I understand why the inheritance is needed, and I
> understand proxies. The thing I don't get is that adding these types of
[quoted text clipped - 32 lines]
> > >
> > > Donald