Qual è il migliore in termini di funzionalità, facilità d'uso, documentazione, esempi, community/supporto, integrazione VS, implementazioni note, redditività a lungo termine e costruire velocità per implementare un framework AOP personalizzato?Mono Cecil vs. PostSharp Core vs Microsoft CCI per l'implementazione del framework AOP
inizierò con quello che so (ho provato solo PostSharp a finora):
- Microsoft Common Compiler Instrastruture (CCI): Ho letto che viene utilizzato per FxCop , ILMerge, SpeC# e Contratti di codice. Sembra essere molto basso livello as it does not even take care of correcting offsets for branch codes that are borken when IL is modified with it.
- PostSharp è di 5 anni, ha molte capacità per AOP (ad esempio estratti alcune cose che avrebbe bisogno di avere a fare manualmente con IL distanza), il codice sorgente disponibili, sviluppato/supportato da solo un ragazzo ma lui sta progettando di rendere questo un business, ha documentazione ma potrebbe essere migliore, costruisce prendere circa il doppio del tempo, molto piccoli campioni su come iniettare iL e la versione 2.0 sarà rilasciata presto che promette di essere molto più migliorata.
- Mono Cecil: Scritto da un ragazzo, parte della suite Mono e v'è un plug-in per Reflector chiamati Reflexil che utilizza Mono Cecil.
Grazie per aver condiviso le tue esperienze! Penso che tu possa sempre usare PEVerify Tool per convalidare i tuoi assembly prodotti. Sto usando PostSharp in questo momento e sono stato in grado di fare tutto ciò che volevo con esso finora (e hai ragione nel trovare il motivo, può essere molto frustrante ...). Cosa intendi per più maturo? Meno buggy? C'è una ragione particolare per cui non utilizzi PostSharp? Per curiosità, cosa sta facendo il tuo programma? –
Il mio programma è assembly merger/shrinker, quindi PostSharp non mi è stato d'aiuto. E sì, ho trovato MicrosoftCCI meno bug e supporta più funzionalità CLI (assembly misti, per esempio). Tuttavia, il suo modello a oggetti è davvero difficile da usare. Ho usato PEVerify per controllare gli assembly generati (e non sono sicuro di poterlo fare a meno senza :)) Tuttavia, gli errori spesso interrompono il processo di generazione degli assiemi e PEVerify è inutile in questi casi. – skevar7