PostSharp Features
General
- Full Support of .NET 2.0, 3.0 and 3.5 for purely managed assemblies (C#, VB.NET, J#, ...).
- Produces Plain and Verifiable .NET Assembly that will be compatible with most tools of your ecosystem!
- Seamless Integration with Visual Studio and MSBuild.
- Extensive Debugging Experience: debugging simply works as usually, and you can step into aspect handlers.
- Highest Quality of API design and implementation, tested and praised by a large community.
PostSharp Laos
- Pay-As-You-Use Complexity: we have kept simple things simple.
-
Large Choice of Aspects including method enhancement,
method call interception, field-level aspects, and type composition.
Aspect Type Available Handlers Typical Use Case Around Method On Exit, On Entry, On Success, On Exception Instrumentation; Exception Handling; Transactions; Security Method Interception On Invocation Cache; Instrumentation of External Method Method Implementation On Invocation Automatic implementation of external or abstract methods. Field Access On Get Value, On Set Value Field-Level Security; Validation; Class Persistence; In-Memory Transactions Interface Composition Get Interface Implementation Mix-In, Multiple Inheritance by Composition Compound Aspect Get Aspects Complex Aspects - Easily build Libraries of Aspects and reuse them between different projects.
- Object-Oriented Aspects: aspects are plain .NET classes with full support for inheritance and abstract or virtual methods.
- Declarative and Imperative Validation of aspect usage at compile time: make sure that your custom attribute is only used where it makes sense.
- Compile-Time Initialization of aspects: don't compute at run-time what can be done at compile-time.
PostSharp Core
PostSharp Core is a true compiler back-end, and is actually much more than that. Besides offering an exhaustive object model of .NET assemblies, it provides the architecture that runs complex task-based and plug-in-enabled projects on assemblies.
- Comprehensive Object Model representing all features of managed .NET assemblies. (only purely managed assemblies are supported)
- Low-Level Aspect Weaver abstracting the complex process of MSIL instruction injection for high-level aspect weavers as PostSharp Laos.
- Extensible Platform Infrastructure managing the whole assembly transformation process as a set of tasks and let you package your custom tasks as a plug-in. Yes, Laos is 'only' a plug-in of PostSharp Core.