It probably comes as no surprise to anyone with any real-world software development experience that Object-Oriented inheritance modeling can’t cleanly solve every class of problem we face as software engineers. AOP (Aspect-Oriented Programming) provides us with an alternative perspective on our objects and their behaviors that can be leveraged to powerfully and flexibly solve whole classes of recurring software engineering challenges that OO systems routinely face.
In this talk we will both illuminate the fundamental principles and patterns of AOP as well as demystify the different available techniques for adding AOP to the design of OO systems in .NET. We’ll explore techniques like compile-time and load-time IL-Weaving, Static and Dynamic Proxying, and others. We’ll also examine several tools and frameworks (both Open-Source/free and commercial options) that make it easier for for the .NET developer to add AOP techniques to their toolbox for their everyday work.