Appendix A. Ecosystem of .NET AOP tools


The majority of this book focuses on two major general-purpose AOP tools for .NET: PostSharp and Castle DynamicProxy. I often paired Castle DynamicProxy with StructureMap, which is an IoC container. I also touched briefly on more specific-purpose tools, including NotifyPropertyWeaver, ASP.NET MVC ActionFilters, and ASP.NET HttpModules.

These are the tools I am most familiar and comfortable with, and that’s why I chose them as the canvas on which to write about AOP. However, there are many tools in the .NET space that also allow you to write and use aspects. My intention is that this book will teach you how to use PostSharp and Castle DynamicProxy in-depth and help you explore the breadth of other tools.

This appendix is a crash course on tools that fit into two categories:

  • Compile-time AOP tools. Like PostSharp, these tools make themselves part of the build process and modify the compiled CIL to perform weaving.
  • Runtime AOP tools. Like Castle DynamicProxy, these tools generate decorators at runtime using Reflection, and they are usually closely related to an IoC tool (such as Castle Windsor).

A.1. Compile-time AOP tools

A.2. Runtime AOP tools