Mostrando entradas con la etiqueta cross cutting concers. Mostrar todas las entradas
Mostrando entradas con la etiqueta cross cutting concers. Mostrar todas las entradas

martes, 11 de marzo de 2014

Resolver funcionalidades transversales sin Programación Orientada a Aspectos.

A mi me encanta la Programación Orientada a Aspectos (AOP). De hecho, la he aplicado exitósamente para gestionar la seguridad y el registro de trazas en varias aplicaciones utilizando mi librería AOP favorita en su version gratuita: PostSharp. Esta librería se encarga de inyectar el código de los aspectos en los ensamblados (Compile-Time Weaving) por lo que, al no funcionar sobre objetos virtuales, clases proxy y cosas por el estilo, no sufre de la problemática de otros frameworks AOP que obligan a limitar las formas de declarar las clases.

AOP es la mejor manera de gestionar y estructurar las funcionalidades transversales (cross-cutting concerns) de una aplicación; desgraciadamente está muy poco extendido y se está haciendo difícil adoptar estas tecnologías por parte del 'mainstream' del desarrollo de software (al menos en esta España garbancera).

Cuando un jefazo ignorante no me permite utilizar AOP para las funcionalidades transversales tengo un plan B que funciona a las mil maravillas: Usar un patrón decorador y construir una cadena de responsabilidades con la inyección de dependencias.