- Demonstration title
Cross-Language Load-Time Aspect Weaving on Microsoft's Common Language Runtime
- John Lam (Naleco Research Inc, Toronto, Canada)
- Wednesday April 24, 2:45-3:30
Thursday April 25, 2:45-3:30
Microsoft's Common Language Runtime (CLR) provides excellent support for both cross-language programming and runtime code instrumentation. This demonstration presents work in progress towards load time aspect weaving on the CLR.
The novel aspect of our implementation is that all aspect weaving occurs at JIT compilation time and at the level of compiled Common Intermediate Language (CIL) instructions. This technique allows us to weave aspects and target code that was written using different CLR programming languages. Furthermore, this technique allows us to weave aspects into both system library code and user-defined code.
This demonstration will show load time aspect weaving using different CLR programming languages. We will demonstrate weaving a generic call tracer into both user-defined and system library code, as well as weaving pre and post conditional assertions into user-defined and system library code to implement design-by-contract semantics. We will discuss the implementation of the runtime aspect weaver, and the novel features of the CLR that make runtime aspect weaving feasible.
You can check on the progress of John's AOP engine by reading his web log at http://www.iunknown.com