I would not say that PostSharp is without performance overhead. Actually, Windsor generates proxies using Reflection Emit, so once the proxy is emitted, Windsor is as fast as PostSharp.
The big difference is somewhere else: Windsor enables AOP typically only on service boundaries, the set of available aspects is more limited, it forces you to use factories.
To be more precise, if you use PostSharp Core to inject ad-hoc MSIL instructions, there will be no difference in performance w.r.t. hand-tuned code. But if you use PostSharp Laos, the high-level library offering a similar performance of functionality as Windsor, performance will be similar — since the level of abstraction is similar.
May 10, 2008 at 7:05 am
I would not say that PostSharp is without performance overhead. Actually, Windsor generates proxies using Reflection Emit, so once the proxy is emitted, Windsor is as fast as PostSharp.
The big difference is somewhere else: Windsor enables AOP typically only on service boundaries, the set of available aspects is more limited, it forces you to use factories.
To be more precise, if you use PostSharp Core to inject ad-hoc MSIL instructions, there will be no difference in performance w.r.t. hand-tuned code. But if you use PostSharp Laos, the high-level library offering a similar performance of functionality as Windsor, performance will be similar — since the level of abstraction is similar.
Happy PostSharping!
Gael