AOP in .NET: Practical Aspect-Oriented Programming