I tumbled into Aspect-oriented programming. It is very interesting concept. The basic idea is to decorate implicitly or explicitly classes or methods (or event statements) to trigger events which will be intercepted across the program.
The immediate use I can think of is logging, transaction and security checking. However some of these aspects had been addressed in C# 2.0 through declarative method and class attributes. I am wondering how much C# will be evolved to address the other aspects of the Aspect-oriented programming.