Aspect Oriented Programming in C # [geschlossen]
Frage
Gibt es gute Ressourcen, meinen Kopf um Aspect Oriented Programming zu wickeln?
PS: Ich brauche AO-Programmierung zu verstehen, nicht die Bibliotheken oder Frameworks für .NET oder C # :)
Lösung
Nur um Ihren Kopf herum: Es ist die Fähigkeit, Haken Veranstaltungen wie: Erstellen von Objekten, Einstellung von Eigenschaften, usw., und fügen Sie allgemeine Funktionen zu ihnen, die mit bevölkert werden relevanter Kontext.
Da C # nicht eine eingebaute Einrichtung für diese hat, müssen Sie einen Rahmen, wie Postsharp, zu tun ‚Bytecode Weberei‘ (dh nur das Schreiben von Code, um tatsächlich die Anrufe zu tätigen, direkt in Ihre Klassen) zu simulieren.
Andere Tipps
Aspect Oriented Programming bedeutet eine Meta-Ebene aufweist, wo yo mit Ihrem Code verweben, anstatt diese zu implementieren verfügen über sehr viel Zeit in Ihrem Code Protokollierung oder Sicherheits- / Zugangskontrollfunktionen definieren. Anstatt also beeing eindimensional, müssen Sie programmieren zweidimensional.
Ich weiß, das klingt sehr esotherische aber es ist einfach, wenn Sie es verstanden.
AOP arbeitet oft mit Proxy-Klassen, die Intercept-Anrufe und die Dinge im Hintergrund zu tun.
Was für eine rechtzeitige Frage?
Hier ist der Podcast hörenswert.
Dies gibt Ihnen einen guten Überblick darüber, was AOP? wo sie verwendet werden?
Ich hoffe, das hilft.
Ein guter Link unten, zeigen Sie, wie einen AOP Rahmen der eigenen Code auf. Leider haben alle Ihre raubend Klassen aus dem MarshalByRefObject
(durch ContextBoundObject
) erben.
check this out, es wird beschrieben, wie AOP (log, Timing, Tracing, Ausnahmebehandlung ...) mit Postsharp implementieren