Aplicaciones robustas con Programación Orientada a Aspectos

17
Aplicaciones Robustas con Programación Orientada a Aspectos Alex Casquete blog: www.idlebit.es twitter: @acasquete email: [email protected]

description

Presentación utilizada en la Barcelona Developers Conference, celebrada el 17 de noviembre de 2011

Transcript of Aplicaciones robustas con Programación Orientada a Aspectos

Page 1: Aplicaciones robustas con Programación Orientada a Aspectos

Aplicaciones Robustas con Programación Orientada a Aspectos

Alex Casquete

blog: www.idlebit.estwitter: @acasqueteemail: [email protected]

Page 2: Aplicaciones robustas con Programación Orientada a Aspectos

En la próxima hora veremos…

¿Qué es AOP?

Temas transversales comunes (Cross-cutting concerns)

Problemas al utilizar temas transversales

Soluciones existentes

Beneficios de AOP

Demos (PostSharp, DinamicProxy)

Preguntas

Page 3: Aplicaciones robustas con Programación Orientada a Aspectos

¿Qué es AOP?

Page 4: Aplicaciones robustas con Programación Orientada a Aspectos

Temas transversalesCross-cutting concerns

Logging Seguridad Transacciones

Multithreading UI

Page 5: Aplicaciones robustas con Programación Orientada a Aspectos
Page 6: Aplicaciones robustas con Programación Orientada a Aspectos
Page 7: Aplicaciones robustas con Programación Orientada a Aspectos

Problemas al utilizar temas transversales

Más código

Código duplicado

Código mezclado

Código acoplado

Page 8: Aplicaciones robustas con Programación Orientada a Aspectos

«The number of defects in a feature is proportional to the size of the component.»

Page 9: Aplicaciones robustas con Programación Orientada a Aspectos

El número de errores está relacionado

Número de líneas

Dispersión del código

Page 10: Aplicaciones robustas con Programación Orientada a Aspectos

Soluciones

Añadir transversalidad sin modificar el código existente.

Aplicar esta transversalidad con el mínimo código.

Mejora de la lógica transversal, sin revisar el código de negocio.

Eliminación de código duplicado.

Page 11: Aplicaciones robustas con Programación Orientada a Aspectos

¿Soluciones?

Proxies

dinámicos

Programación

funcional

Generación

de código

Page 12: Aplicaciones robustas con Programación Orientada a Aspectos

Beneficios de AOP

Menos coste Menos fallosAseguramiento

de la Calidad

Mejora el

mantenimiento

Mejora el

trabajo en

equipo

Page 13: Aplicaciones robustas con Programación Orientada a Aspectos

Hello PostSharp y DynamicProxy

demo

Page 14: Aplicaciones robustas con Programación Orientada a Aspectos

Conclusiones AOP

No sustituye a la OOP, la extiende.

Para implementar temas transversales.

Código simple = Éxito.

Page 15: Aplicaciones robustas con Programación Orientada a Aspectos

Referencias

AspectAspectAspectAspect----Oriented Software DevelopmentOriented Software DevelopmentOriented Software DevelopmentOriented Software Developmenthttp://aosd.net

PostSharpPostSharpPostSharpPostSharphttp://www.sharpcrafters.com/postsharp

DynamicProxyDynamicProxyDynamicProxyDynamicProxyhttp://www.castleproject.org/dynamicproxy

Page 16: Aplicaciones robustas con Programación Orientada a Aspectos

Aplicaciones Robustas con Programación Orientada a Aspectos

Alex Casquete

blog: www.idlebit.estwitter: @acasquete

email: [email protected]

¿Preguntas?

Page 17: Aplicaciones robustas con Programación Orientada a Aspectos

Barcelona Developers Conference 2011Nov 17th - 19th