"Micro AOP"... jemand eine Idee?

29/01/2009 - 23:34 von Carsten Posingies | Report spam
Hallo Cracks,

ich habe mal etwas vom Ralf Westphal gelesen über ein schickes
AOP-Framework, ich glaube, es war Spring.NET. Aber geht das zumindest
für ganz einfache Sachen nicht irgendwie mit Bordmitteln? Mir würde es
erstmal voll und ganz reichen, wenn ich irgendein Attribut hàtte, dem
ich eine Referenz auf eine Methode verpassen könnte, die aufgerufen
wird, bevor der nachfolgende Ctor, Accessor, die nachfolgende Methode
abgearbeitet wird, sowas wie

public int MyValue
{
get { return myValueField; }
[Irgendein.Attribut.Aus.Irgendeinem.Namespace(MyStaticClass.AopInterceptor)]
set { myValueField = value; }
}

Diesem "AOP Interceptor" würde ich dann soweit es geht mittels
Reflection schon alles beibiegen, was nötig ist. Ich habe mich schon
halbtot gesucht nach so einem Attribut, aber ich habe nix gefunden. War
ich bloß nicht gründlich genug? Irgendwie finde ich Attribute in der 3.5
ganz schön "non-disclosure"...

Danke vorab,

Carsten
 

Lesen sie die antworten

#1 Elmar Boye
31/01/2009 - 12:03 | Warnen spam
Hallo Carsten,

Carsten Posingies schrieb:
ich habe mal etwas vom Ralf Westphal gelesen über ein schickes
AOP-Framework, ich glaube, es war Spring.NET. Aber geht das zumindest
für ganz einfache Sachen nicht irgendwie mit Bordmitteln?



Nur mit Einschrànkungen. Einige AOP Implementation nutzen
"ContextBoundObject" in Verbindung mit dem "ContextAttribute".
Ein (àlteres) Beispiel findest Du unter
<URL:http://msdn.microsoft.com/en-us/mag...5.aspx>
"Decouple Components by Injecting Custom Services into Your Object's Interception Chain"

Was Abhàngigkeiten von Remoting einführt und was weder schnell und
nicht immer optimal ist:
<URL:http://www.springframework.net/docs...p.html>
dort insbesondere "13.1.3. AOP Proxies in Spring.NET"

Ansonsten ist AOP bei Microsoft nur am Rande sichtbar,
wie z. B. mit PolicyInjection in der Enterprise Library.

Mir würde es erstmal voll und ganz reichen, wenn ich irgendein Attribut hàtte,
dem ich eine Referenz auf eine Methode verpassen könnte,



Außer obigem gibt es m. W. bis .NET 3.5 dafür keine spezifischen Attribute.

Die diversen existierenden AOP Frameworks verfolgen unterschiedliche
Strategien, um AOP zu realisieren, eine Übersicht:

<URL:http://ayende.com/Blog/archive/2007...t.aspx>
(und spàtesten mit IL Weaving ist es nicht mehr einfach.)

Aber bevor Du noch ein Rad erfindest, solltest Du überlegen,
ob Du mit einem der Frameworks klarkommst.

Spring.NET ist wiederum ein ziemlich großer Brocken
(weitab von Micro) und AOP nur ein Teil davon.

Gruß Elmar

Ähnliche fragen