Which is the better in terms of capabilities, easy of use, documentation, samples, community/support, VS integration, known implementations, long-term viability, and build speed to implement a custom AOP framework?
I'll start with what I know (I have only tried PostSharp to so far):
- Microsoft Common Compiler Instrastruture (CCI): I've read that is used for FxCop, ILMerge, Spec# and Code Contracts. It seems to be very low level as it does not even take care of correcting offsets for branch codes that are borken when IL is modified with it.
- PostSharp is 5 years old, has many capabilities for AOP (e.g. abstracts some things you would need to have to do manually with IL away), source code available, developed/supported by only one guy but he is planning on making this a business, has documentation but could be better, builds take about twice as long, very little samples on how to inject IL and version 2.0 will be released soon which promises to be much improved.
- Mono Cecil: Written by one guy, part of the Mono suite and there is a plug-in for Reflector called Reflexil that uses Mono Cecil.