原文地址:http://teddyma.cnblogs.com/archive/2005/08/31/226688.html
Version: 2.1.1.0
Link:
http://aspectsharp.sourceforge.net/
Status: beta
Dependency: antlr, Castle.DynamicProxy
Description:
Aspect# is an AOP (Aspect Oriented Programming)
framework for the CLI (.Net and Mono). It relies on DynamicProxy and
offers a built-in language to declare and configure aspects, and is
compliant to AopAlliance. It became part of the Castle Project in June
2005.
Main
Features:
-
Custom mini configuration language, not xml.
-
Mix/Intercept classes and methods through dicnamic proxy approach.
Restrictions:
-
Classes to be created dynamic proxy for shouldn’t be sealed and only virtual methods can be intercepted.
-
Using
intercepted classes is not completely transaparent to users that users
should explicit create the dynamically proxied class through the
AspectEngine.
-
No static weaving support.
Version: 0.7
Status: beta
Link:
http://sourceforge.net/projects/aspectdng
Dependency: mono.petoolkit, rail
Description:
AspectDNG is a .NET aspect weaver, that's to say
a tool that can "transplant" code into an existing assembly. This
transplant is made after the standard .NET compilation, which means
that both aspect and the so called "base" code (the one the transplant
will be operated on) can be developped in any programming language that
is compatible with .NET CLS. Another way to say that: AspectDNG works
on assemblies (EXE or DLL) that may have been created out of C#,
VB.NET, Eiffel.NET, Mananged C++...
Main
Features:
-
Xml, Xpath based configuration file format.
-
IL level static Weaving.
-
Custom xml based
disassembled
language
ILML which can be used to convert assemblies to and be modified/combined and then converted to assemblies.
Restrictions:
-
Static weaving only.
-
Not very stable.
3.
Eos
Version: 0.3.3
Link:
http://www.cs.virginia.edu/~eos
Status: beta
Dependency: none
Description:
Eos is an aspect-oriented extension for C# on
Microsoft® .NET Framework™. Eos aims to improve upon the current
aspect-oriented language model in three dimensions. First, it
generalizes aspect instantiation & advice weaving model to
eliminate the need for the work-arounds that are unavoidable today when
aspects are used to express certain crosscutting concerns. Second it
generalizes the join point model. Third it aims to eliminate the
distinction between class and aspect constructs in favor of a single
conceptual building block that combines the expressive capabilities of
current classes and aspects, significantly improving conceptual
integrity and uniformity in language design.
The
language is very similar to AspectJ except for constructs which are not
implemented in Eos and constructs which AspectJ does not provides.
Main
Features:
-
AspectJ like extended C# langauage and custom compiler.
Restrictions:
-
Static weaving only.
-
Not very stable.
4.
Encase
Version: 0.7
Link:
http://theagiledeveloper.com/category/15.aspx
Status: beta
Dependency: none
Description:
Encase is an aspect oriented programming
framework for the .NET Platform written in C#. Encase is unique in that
it provides aspects to be applied during runtime in managed code rather
then being configuration file based that other AOP frameworks rely
upon. The advantage of applying aspects in this way is that it promotes
productivity to developers new and/or unfamiliar with AOP.
Restrictions:
-
Encase
cannot mixin multiple classes that implement a shared interface? For
instance, if class A implements Ialphabet, and class B implements
Ialphabet, classes A and B can not both be mixed in as an aspect.
-
Encase can only provide interception and aspect weaving to virtual (overriable) methods and properties.
-
Encase is unable to apply aspects to sealed (NotInheritable) classes.
-
Like Aspect#, but more unstable.
5.
Post#
Version: 1.0.0.0
Link:
http://gael.fraiteur.net/postsharp.aspx
Status: alpha
Dependency: none
Description:
PostSharp is a free and open-source post-compiler for the .NET Framework.
PostSharp is an extensible platform that makes it easy to develop and
execute static program analysis and program transformation plug-ins.
Main
Features:
-
Developped under .Net Framework 2.0 beta
-
There is a very good third pary collection library – “Xipho.Collections” for .Net 2.0 in the source code
Restrictions:
-
Not say to be a really aop framework yet.
6.
Loom.Net
Version: 1.5 Beta2
Link: http://www.dcl.hpi.uni-potsdam.de/research/loom/
Status: beta
Dependency: none
Description:
The LOOM .NET project aims to investigate and promote the usage of
AOP in the context of the Microsoft .NET framework. We have been
developing two AOP tools (so called weavers) that all implement
different approaches to weaving: A runtime weaver crating weaved objects on the fly and a static weaver.
Main
Features:
-
Support under .Net Framework 2.0 beta
- Include both dynamic proxy based dynamic interception and il level rail like static weaving support.
Restrictions:
-
Not very stable.
7.
Others
AspectC# (AspectJ like C# extended compiler)
Weave.NET (provide a load-time il level weaving implementing)
posted on 2006-07-26 14:26
四海 阅读(1066)
评论(3) 编辑 收藏 引用 所属分类:
类库/框架