on on 0 Aspect-Oriented Programming (AOP) complements OOP by providing another way of thinking about program structure. Whereas OO decomposes applications into a hierarchy of objects, AOP decomposes programs into aspects or concerns.  This enables the modularization of concerns such as transaction management that would otherwise cut across multiple objects (such concerns are often termed crosscutting concerns).

]]>
AOP Quickstart included in the distribution is a good starting point to explore the functionality offered in Spring.NET's AOP Framework.]]> Provides Spring's Aspect Oriented Programming (AOP) functionality.  Spring AOP offers:

  • Introduction support
  • A Pointcut abstraction, supporting "static" pointcuts  (class and method-based) and "dynamic" pointcuts (also considering method arguments).
  • A full range of advice types, including around, before, after returning and throws advice.
  • Extensibility allowing arbitrary custom advice types to be plugged in without modifying the core framework.

    Spring AOP can be used programmatically or (preferably) integrated with the Spring IoC container.
]]>
AOP Alliance API.]]> AOP Alliance interception interfaces. Core Spring.NET AOP interfaces, built on top of and implementing all of the AOP Alliance AOP interoperability interfaces.

Spring.NET AOP also offers:

  1. Introduction support
  2. A pointcut abstraction, supporting "static" pointcuts (class and method-based) and "dynamic" pointcuts (also considering method arguments).
  3. A full range of advice types, including around, before, after returning and throws advice.
  4. Extensibility points allowing arbitrary custom advice types to be plugged in without modifying the core framework.

Spring.NET AOP can be used programmatically or (preferably) in conjunction with the Spring.NET IoC container.

]]>
Custom schema for configuration Basic AOP infrastructure compliant with the AOP Alliance interfaces.

Spring.NET AOP supports proxying interfaces or classes, introductions, and offers static and dynamic pointcuts.

Any Spring.NET AOP proxy can be cast to the %ProxyConfig:Spring.Aop~Spring.Aop.Framework.ProxyConfig% AOP configuration interface in this namespace to add or remove interceptors.

The %ProxyFactoryObject:Spring.Aop~Spring.Aop.Framework.ProxyFactoryObject% is a convenient way to create AOP proxies in an IObjectFactory or IApplicationContext. However, proxies can be created programmatically using the %ProxyFactory:Spring.Aop~Spring.Aop.Framework.ProxyFactory% class.

]]>
Service Provider Interface (SPI) namespace allowing Spring.NET AOP framework to handle arbitrary advice types.

Users who want to use the Spring.NET AOP framework, rather than extend its capabilities, don't need to concern themselves with this namespace.

]]>
 

The various post-processors in this package need only be added to an IApplicationContext (typically in an XML object definition document) to automatically proxy selected objects.

]]>
Generic support classes for target source creation.

]]>
Contains functionality relating to the creation of dynamic proxy instances. This namespace contains implementations of the %Spring.Aop.ITargetSource:Spring.Aop~Spring.Aop.ITargetSource% interface.

The simplest implementation is the %SingletonTargetSource:Spring.Aop~Spring.Aop.Target.SingletonTargetSource%, which is used in the AOP framework to wrap a single target instance. This is normally appropriate, and is the current default.

Other features include pooling implementations, that provides a target from a pool for each request, ensuring a single threaded programming model; and a "prototype" implementation, that uses a new target instance for each invocation. (Much like single-call .NET remoting semanics).

]]>
Caching asepct Exception handling aspect Logging aspect Parameter validation aspect