Difference between revisions of ".NET AOP"

From Richard's Wiki
Jump to: navigation, search
(Surveys of .NET AOP Frameworks)
(.NET Aspect Oriented Programming Frameworks)
Line 3: Line 3:
 
* [http://msdn.microsoft.com/en-us/library/cc511729.aspx Policy Injection Application Block] (pseudo-AOP framework, runtime aspect injection, from Microsoft P&P group, getting old...)
 
* [http://msdn.microsoft.com/en-us/library/cc511729.aspx Policy Injection Application Block] (pseudo-AOP framework, runtime aspect injection, from Microsoft P&P group, getting old...)
 
* [http://www.springframework.net/doc-latest/reference/html/aop.html Spring.NET] (Runtime aspect injection via proxies)
 
* [http://www.springframework.net/doc-latest/reference/html/aop.html Spring.NET] (Runtime aspect injection via proxies)
 +
** [http://www.codeproject.com/KB/architecture/AOP_UsingSpringPart1.aspx AOP Using Spring.NET - Part 1] (CodeProject, June 2008)
  
 
== Surveys of .NET AOP Frameworks ==
 
== Surveys of .NET AOP Frameworks ==

Revision as of 01:59, 23 July 2009

.NET Aspect Oriented Programming Frameworks

Surveys of .NET AOP Frameworks

# Approach Advantages Disadvantages
1 Remoting Proxies Easy to implement, because of the .Net framework support Somewhat heavy weight, Can only be used on interfaces or MarshalByRefObjec
2 Deriving from ContextBoundObject Easiest to implement, Native support for call interception Very costly in terms of performance
3 Compile-time subclassing ( Rhino Proxy ) Easiest to understand Interfaces or virtual methods only
4 Runtime subclassing Castle Dynamic Proxy ) Easiest to understand, Very flexible Complex implementation (but already exists), Interfaces or virtual methods only
5 Compile time IL-weaving ( Post Sharp / Cecil ) Very powerful, Good performance Very hard to implement
6 Runtime IL-weaving, ( Post Sharp / Cecil ) Very powerful, Good performance Very hard to implement
7 Hooking into the profiler API ( Type Mock ) Extremely powerful Performance?, Complex implementation (COM API, require separate runner, etc)