Cuál es el mejor en términos de capacidades, fácil de usar, documentación, ejemplos, comunidad/soporte, integración VS, implementaciones conocidas, viabilidad a largo plazo y velocidad de construcción para implementar un marco AOP personalizadoMono Cecil vs. PostSharp Core vs. Microsoft CCI para implementar el marco AOP
Voy a empezar con lo que sé (solo he probado a PostSharp hasta ahora):
- Microsoft Común Compilador Instrastruture (CCI): He leído que se utiliza para FxCop , ILMerge, SpeC# y Contratos de código. Parece ser de muy bajo nivel as it does not even take care of correcting offsets for branch codes that are borken when IL is modified with it.
- PostSharp es de 5 años de edad, tiene muchos capacidades para AOP (por ejemplo, resúmenes algunas cosas que tendría que tener a hacer manualmente con IL distancia), fuente últimas informaciones, desarrollado/apoyado por un solo hombre pero él está planeando en haciendo de este un negocio, tiene documentación, pero podría ser mejor, construye tomar el doble de tiempo, muy pequeñas muestras sobre cómo inyectar IL y la versión 2.0 será lanzado pronto que promete ser mucho mejorado.
- Mono Cecil: Escrito por un hombre, que forma parte de la suite Mono y hay una plug-in para Reflector llamados Reflexil que utiliza Mono Cecil.
¡Gracias por compartir tus experiencias! Creo que siempre puedes usar PEVerify Tool para validar tus ensamblajes producidos. Estoy usando PostSharp en este momento y hasta ahora he podido hacer todo lo que quería con él (y tienes razón al encontrar la razón, puede ser muy frustrante ...). ¿Qué quieres decir con más maduro? Menos buggy? ¿Hay alguna razón en particular por la que no estés usando PostSharp? Por curiosidad, ¿qué está haciendo tu programa? –
Mi programa es ensamblar fusión/reducción, así PostSharp no fue de ninguna ayuda para mí. Y sí, descubrí que Microsoft.CCI es menos problemático y admite más características CLI (por ejemplo, ensamblajes mixtos). Aunque el modelo de objetos es realmente difícil de usar. Utilicé PEVerify para verificar ensamblados generados (y no estoy seguro si podría tener éxito sin él :)) Sin embargo, los errores a menudo rompen el proceso de generación de ensamblaje, y PEVerify es inútil en tales casos. – skevar7