2009-09-13 13 views
43

Gibt es irgendwelche guten Ressourcen, um mich um aspektorientierte Programmierung zu kümmern?Aspektorientierte Programmierung in C#

PS: Ich brauche AO-Programmierung zu verstehen, nicht die Bibliotheken oder verfügbaren Frameworks für .NET oder C# :)

+0

Seems http://StackOverflow.com/Questions/325558/aspect-oriented-programming-examples – Graviton

+0

[Aspektorientierte Programmierung] (http://izlooite.blogspot.com/2010/06/aspect-oriented-programming.html#comment- form) –

+0

Schauen Sie sich AOP in .NET an - http://manning.com/groves (ja, es ist schamlose Eigenwerbung, aber es ist re levant!) –

Antwort

51

einfach Ihren Kopf um es zu bekommen: Es ist die Fähigkeit, Haken ist Veranstaltungen wie: Erstellen von Objekten, Festlegen von Eigenschaften usw. und Anfügen allgemeiner Funktionen an diese, die mit relevantem Kontext gefüllt werden.

Da C# keine integrierte Einrichtung dafür hat, benötigen Sie ein Framework wie PostSharp, um 'Bytecode Weben' zu machen (d. H. Nur Code schreiben, um die Aufrufe direkt an Ihre Klassen zu senden).

+4

Nebenbei bemerkt, http://www.postsharp.org/ hat eine großartige Erklärung, was es ist und es verwendet. – RCIX

+0

Ja Postsharp ist gute Sache (habe auch gute Seite!) – TheVillageIdiot

+1

Laufzeit emittieren ist auch gut. Die Einheit und andere verwenden die Reflexion, um die Methodenüberwachung durchzuführen. Auch .net hat einen Hook ContextBoundObjects wie Jean erwähnt. Leider gibt es einen riesigen Perf Treffer mit kontextgebundenen Objekten. – AbdElRaheim

2

Aspektorientierte Programmierung bedeutet, dass Sie eine Metaebene haben, auf der Sie Logging- oder Sicherheits-/Zugriffskontrollfeatures definieren können, um mit Ihrem Code zu verweben, anstatt diese Funktion in Ihrem Code zu implementieren. Anstatt also eindimensional zu sein, müssen Sie zweidimensional programmieren.

Ich weiß, das klingt vielleicht sehr esotherisch, aber es ist einfach, sobald Sie es verstanden haben.

AOP funktioniert oft mit Proxy-Klassen, die Anrufe abfangen und Dinge im Hintergrund tun.

3

Was für eine zeitnahe Frage?

Here ist der Podcast hörenswert.
Dies gibt Ihnen einen guten Überblick darüber, was ist AOP? Wo kann es verwendet werden?

Hoffe, dass hilft.