AOP and ContextBound objects
AOP (Aspect Oriented Programming) is not new to us at all. We all have implicitly embraced AOP by using MTS/COM+. But the sad part is that implementing AOP in COM is an absolute hack (ATL, Universal Delagator etc) and not for humble VB developers like me.
Come .NET, things are definitely brighter. Interception is no more a rocket science and implementing the same is (almost) a piece of cake. The magic is called ContextBoundObject and some Custom attributes. Have a look at this good article which gives AOP implementation for .NET (as well as for COM). As I already mentioned, leave aside the COM part :)
http://msdn.microsoft.com/msdnmag/issues/02/03/AOP/default.aspx . ContextBound objects allow us to declare aspects of classes declaratively using custom attributes. It is a very very powerful concept indeed.
Attributes on the ServicedComponent class now makes sense. ServicedComponent is just another ContextBound object.