[Main Page]

Tools for Developers

Revision as of 13:32, 27 February 2006 by Durbdn (Talk | contribs)

Main Page | Recent changes | View source | Page history | Log in / create account |

Printable version | Disclaimers | Privacy policy | Current revision

This page is intended to list tools suitable for use in production systems.

The page is divided into two parts: the first part lists tools known to have a significant number of commercial users; the second part lists tools that do not yet have a significant number of commercial users, but are nonetheless of suitable quality for production use.

You may also want to explore the tools described as Research Projects.

Tools with a Significant User Base

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. (from March 2005 Aspectwekz has been merged with AspectJ)

JBoss-AOP is the Java AOP architecture used for the JBOSS application server.

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.

Other Development Quality Tools

abc is a full implementation of the AspectJ language, with an emphasis on extensibility and optimisations. It is used by over 10 research groups around the world.

Aspect# is an AOP framework for the CLI (.Net and Mono). It relies on Castle's DynamicProxy and offers a built-in language to declare and configure aspects, and is compliant with AopAlliance.

AspectC++ is an aspect-oriented extension to the C++ programming language.

AspectDNG is a .NET multi-language aspect weaver.

phpaspect is a PHP language extension which implements aspect-oriented programming for PHP 5.

[AspectS] is an AOP framework for Smalltalk. There are two versions: one for Visual Works, and another for Squeak.

AspectXML is an attempt to sound out, brainstorm, and generally try out the aspect oriented approach in relation to XML.

Eos is an aspect-oriented extension to C# for .NET Framework. Eos supports a very simple unified model of AOP.

FeatureC++ supports feature-oriented and aspect-oriented programming in C++. The highlight of FeatureC++ is the combination of FOP and AOP concepts.

JAC is a Java framework for aspect-oriented distributed programming.

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.

PAT (Persistent Applications Toolkit) is a persistence aspect for plain, Java objects.

PostSharp is a post-compiler for Microsoft .NET. It ships with a complete module reader/writer and code object model. It may be used as a base for AOP development.

SetPoint is an aspect-oriented tool based on semantic pointcuts, developed using Microsoft's .NET framework.

Sophus is an .NET platform high performance and easy to use AOP framework. It is simple and fast.

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).

Teddy's Aspect Weaver is an AOP framework resulting a static aspect weaver based on AspectDNG's ILML library and provides easier configuration format (both meta xml way and custom attribute way) and more advice types support.

MFAOPHP is a simple implementation of AOP in PHP, it supports JoinPoints, PointCuts and the before, after and around Aspects. No pre-PHP processor, but real-time Aspect Weaving. Download your own free version under GPL licence.

AOP Library for PHP This download-free (GPL licence) package can be used to implement Aspect Oriented Programming (AOP) by executing the code of classes that enable orthogonal aspects at run-time.

DotSpect (.SPECT) is a .NET, Compile-time (Static-injection), Language-Independent Aspect Weaver. It provides a language similar to AspectJ with some additional syntactic elements. Advice code can be written in any language. By default, there is support for C# and VB.NET. It also provides an IDE for writing and testing aspects.

A detailed description of how to edit can be found on the Help:Editing page.


Instant Feedback

Edited by the AOSD Steering Committee.  Maintained by the webmaster