Frage

Ich habe einige grundlegende AOP Stil Lösungen wurden unter Verwendung von für Querschnittsthemen wie Sicherheit, Protokollierung, Validierung etc. Meine Lösung hat envolved um Schloss Windsor und Dynamic. Ich habe unten auf dieser Strecke gegangen, weil ich alles mit einem Boo basierten DSL anwenden kann und halte meinen Code sauber von Attributen. Ich war am Wochenende gesagt, einen Blick zu haben unter Postsharp wie es angenommen hat, eine „bessere“ Lösung. Ich habe einen kurzen Blick auf Postsharp habe, aber ich habe von der Attribut Verwendung beiseite legen.

Hat jemand beiden Lösungen ausprobiert und sorgen würde, ihre Erfahrungen zu teilen?

War es hilfreich?

Lösung

Ich schaute nur auf Schloss-windsor für eine kurze Zeit (noch) so kann ich dazu nichts sagen, aber ich Gebrauch Postsharp hat.

Postsharp funktioniert, indem während der Kompilierung Weben. Es Anzeigen ein Post-Kompilierung auf Ihrem Build wo es Ihren Code modifiziert. Der Code wird kompiliert, als ob Sie nur die Querschnittsthemen in Sie Code programmiert. Das ist ein bisschen mehr performant als Laufzeit Weben und wegen der Verwendung von Attributen ist sehr Postsharp einfach zu bedienen. Ich denke, mit Attributen für AOP ist nicht so problematisch, wie es für DI verwenden. Aber das ist nur mein persönlicher Geschmack.

Aber ...

Wenn Sie bereits Schloss für Dependency Injection verwende ich keinen guten Grund, warum Sie es nicht auch für AOP Sachen verwenden sollten. Ich denke, wenn das AOP zur Laufzeit ein wenig langsamer als bei der Kompilierung ist es ist auch leistungsfähiger. AOP und DI ist meiner Meinung nach im Zusammenhang Konzepten so halte ich es für eine gute Idee, einen Rahmen für beide zu verwenden. Also werde ich wahrscheinlich auf der Burg Sachen aussehen wieder nächstes Projekt, das ich AOP müssen.

Andere Tipps

Ein paar kleinere Probleme mit Postsharp ...

Ein Problem, das ich mit Postsharp gehabt haben, ist, dass während asp.net verwenden, Zeilennummern für Ausnahmemeldungen sind ‚out‘ durch die Anzahl der IL-Instruktionen in asssemblies von Postsharp injiziert, wie die PDBs nicht so gut injiziert: - ).

Auch ohne die Postsharp Baugruppen zur Laufzeit verfügbar, Laufzeitfehler auftreten. Mit Windsor, können die Querschnitte werden zu einem späteren Zeitpunkt ohne erneute Kompilierung des Codes ausgeschaltet.

(hoffe, das macht Sinn)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top