Welche ist besser in Bezug auf Funktionen, einfach zu bedienen, Dokumentation, Beispiele, Community/Support, VS-Integration, bekannte Implementierungen, langfristige Rentabilität und Geschwindigkeit aufbauen, um ein benutzerdefiniertes AOP-Framework zu implementieren?Mono Cecil vs PostSharp Core vs. Microsoft CCI für die Implementierung von AOP-Framework
Ich werde mit beginnen, was ich weiß (ich habe nur versucht, Postsharp zu bisher):
- Microsoft Common Compiler Instrastruture (CCI): Ich habe gelesen, dass für FxCop verwendet wird , ILMerge, SpeC# und Code Contracts. Es scheint sehr niedrig zu sein as it does not even take care of correcting offsets for branch codes that are borken when IL is modified with it.
- Postsharp 5 Jahre alt ist, hat viele Funktionen für die AOP (zB Abstracts einige Dinge, die Sie müssten haben manuell mit IL entfernt), Quelle Code zur Verfügung, entwickelt/unterstützt nur von einem Kerl aber er plant, auf dies ein Geschäft zu machen, hat Dokumentation könnte aber besser sein, baut etwa doppelt so lange dauern, sehr wenig Proben, wie IL zu injizieren und Version 2.0 wird in Kürze freigegeben werden, die viel zu werden versprechen verbessert.
- Mono Cecil: Geschrieben von einem Mann, Teil der Mono-Suite und es gibt einen Plug-in für Reflektor genannt REFLEXIL , die Mono Cecil verwendet.
Vielen Dank für Ihre Erfahrungen! Ich denke, Sie können das PEVerify Tool immer verwenden, um Ihre produzierten Baugruppen zu validieren. Ich benutze jetzt PostSharp und konnte bisher alles machen, was ich damit machen wollte (und Sie haben Recht, den Grund zu finden, es kann sehr frustrierend sein ...). Was meinst du mit reifer? Weniger Buggy? Gibt es einen besonderen Grund, warum Sie PostSharp nicht verwenden? Aus Neugier, was macht dein Programm? –
Mein Programm ist Assembly Merger/Shroker, daher war PostSharp keine Hilfe für mich. Und ja, ich fand Microsoft.CCI weniger fehleranfällig und es unterstützt mehr CLI-Funktionen (zum Beispiel gemischte Assemblys). Das Objektmodell ist jedoch sehr hart im Einsatz. Ich habe PEVerify verwendet, um generierte Assemblys zu überprüfen (und bin mir nicht sicher, ob ich ohne es Erfolg haben könnte :)) Allerdings brechen Fehler oft den Assemblierungsprozess, und PEVerify ist in solchen Fällen nutzlos. – skevar7