Hola, hemos utilizado Castle Windsor Interceptors, basado en este artículo: http://www.davidhayden.com/blog/dave/archive/2007/03/14/CastleWindsorAOPPolicyInjectionApplicationBlock.aspx y el mencionado anteriormente.
Me pareció todo muy fácil y es una forma muy elegante de hacer AOP. Sin embargo ...
Sin embargo, cuidado con el rendimiento. El uso de interceptación crea un proxy dinámico que definitivamente ralentizará las cosas. En base a nuestros puntos de referencia usando una granja de cómputo de 500 Node vimos una disminución del rendimiento de aproximadamente 30% al usar interceptación en Windsor, esto estaba más allá de lo que estábamos haciendo dentro de la interceptación (esencialmente llamadas de método de registro y parámetros pasados a nuestros métodos) . y simplemente eliminar la intercepción aceleró la aplicación completa bastante.
Tenga cuidado de no hacer sus costosas llamadas realmente caro. :) Si yo fuera usted, buscaría almacenar en caché en un nivel diferente, probablemente mediante la implementación de un patrón de tipo IRepository y luego respaldarlo con varias estrategias de almacenamiento en caché, según corresponda.
Buena suerte,
-
Mat.
Gracias, Mausch. He bajado por el camino del decorador también. –
Decoradores de almacenamiento en caché? ¿Cómo difiere eso de los interceptores? en términos de su declaración utilizando un registro fluido? Ejemplos por favor. – IanT8
Sería genial tener un ejemplo de estos decoradores. – Remotec