Revision as of 17:32, 1 April 2005
Tools for Practitioners
The following tools are actively supported and are being used in a variety of commercial projects.
As such they represent a good starting point for practitioners interested in using AOSD technology in commercial applications. But you may also want to explore the tools described in the research pages.
abc is a full implementation of the AspectJ language, with an emphasis on extensibility and optimisations.
Aspect# is a free AOP framework for .NET.
AspectC++ is an aspect-oriented extension to the C++ programming language.
AspectDNG is a .NET multi-language aspect weaver.
AspectJ is a seamless aspect-oriented extension to Java that enables the modular implementation of a wide range of crosscutting concerns.
AspectWerkz is a dynamic, lightweight and high-performant AOP/AOSD framework for Java.
AspectXML is an attempt to sound out, brainstorm, and generally try out the aspect oriented approach in relation to XML.
JAC is a Java framework for aspect-oriented distributed programming.
JBoss-AOP is the Java AOP architecture used for the JBOSS application server.
LOOM.NET is a static aspect weaver that operates on binary .NET assemblies. The RAPIER-LOOM.NET library is a dynamic aspect weaver.
Nanning is an Aspect Oriented Framework for Java based on dynamic proxies and aspects implemented as ordinary Java-classes.
Spring's approach to AOP differs from that of most other AOP frameworks. The aim is not to provide the most complete AOP implementation (although Spring AOP is quite capable); it is rather to provide a close integration between AOP implementation and Spring IoC to help solve common problems in enterprise applications.
XWeaver is an extensible, customizable and minimally intrusive aspect weaver for C/C++ — it generates source code which differs as little as possible from the base code (preserves layout and comments).
Note that the Aspect-Oriented Software Association (AOSA) does not endorse, explicitly or implicitly, any of these tools. Our separation of the tools into Practitioner and Researcher categories is merely an effort to aid those new to AOSD to quickly determine from among the many tools being developed, which are more appropriately categorized as research projects and which are more appropriately categorized as supported tools. The AOSA accepts no liability whatsoever for any outcome from any use of these tools.