2010-08-08 18 views
19

Estoy tratando de encontrar una biblioteca razonablemente madura/estable y de libre disponibilidad (preferiblemente de código abierto) para hacer AOP en .NET. Estuve buscando un poco y encontré los productos a continuación; Sin embargo, la mayoría de ellos parecen muertos:¿Qué bibliotecas de Programación Orientada a Aspectos (AOP) para .NET aún se desarrollan activamente?

  • PostSharp — esta es la solución AOP generalmente se recomienda para .NET, sin embargo es un producto comercial y por lo tanto se aplican algunas restricciones de uso. (Sin embargo, parece ser una especie de libre disposición para los proyectos de código abierto personal o.)

  • Spring.NET — no exclusivamente acerca de AOP, por lo que es probable que sea demasiado potente si sólo se quiere hacer AOP. (?)

  • Policy Injection Application Block — siendo de Microsoft, esperaría que esto se mantenga al menos.

  • Castle Windsor junto con DynamicProxy — no es principalmente una biblioteca de AOP, pero parece ser que puede ser utilizado para ese fin.

  • Aspect# — esto parece bastante muerto para mí.

  • Aspect.NET — esto también me parece completamente muerto.

  • NAop — aparentemente no es compatible.

  • AOP.NET — se suponía que era el sucesor de NAop, y también parece que murió hace un tiempo.

Probablemente haya más. De la lista anterior encuentro que las únicas opciones reales para hacer AOP en .NET son PostSharp (aunque es un producto comercial), Spring.NET, el Bloque de aplicaciones de inyección de políticas de Microsoft o quizás Windsor.

¿Olvidé alguna opción importante?


Véase también la pregunta Suggestions for open source aspect-oriented library for C# aquí en StackOverflow. Publiqué una nueva pregunta porque estoy específicamente interesado en el estado del desarrollo/mantenimiento de varias soluciones de AOP para .NET.

+0

Buena pregunta, me gustaría saber lo último y lo mejor de este tema tan interesante, que no he tenido la oportunidad de conocer. Pero, por favor, aumente el tamaño de fuente de la nota al pie, incluso mi monitor está entrecerrando los ojos. –

+0

Este material fue desarrollado hace * mucho * tiempo, .NET ya tiene casi 10 años. Evite confundir * dead * con * done * o "ya no es interesante" para FOSS. No está muerto si alguien todavía está pagando las tarifas de alojamiento. –

+0

@ Hans Passant: Perdón por ser demasiado laxo con la terminología, luego puedo editar mi pregunta si esto parece importante. Pero preferiría que las respuestas a mi pregunta se centraran en lo que está activo/actualizado/en uso generalizado, etc., no en lo que está muerto/obsoleto/ya no es interesante/lo que sea. – stakx

Respuesta

5

No necesita usar Windsor DynamicProxy. Windsor utiliza DynamicProxy para sus propios fines, al igual que NHibernate, RhinoMocks, Moq u otras bibliotecas/aplicaciones/frameworks. Si necesita solo AOP de tiempo de ejecución, sin contenedor de IoC, use Caste DynamicProxy solo.

Se ha desarrollado activamente, se lanzó la última versión preliminar hace 2 semanas, se espera la versión final (v2.5) este mes.

Nota: En versiones anteriores (hasta v2.2) DynamicProxy solía vivir en su propio ensamblado Castle.DynamicProxy.dll. Más tarde se movió a Castle.Core.dll y ahora no se requiere ningún otro ensamblado para usarlo.Source

Cuestiones relacionadas