SlideShare una empresa de Scribd logo
Introducción a la Programación Orientada a AspectosPor José Fernando Romaniellohttp://jfromaniello.blogspot.com
¿Qué es AOP?Según Wikipedia:Es un paradigma de programación relativamente reciente cuya intención es permitir una adecuada modularización de las aplicaciones y posibilitar una mejor separación de conceptos.Según GregorKiczales:Un mecanismoquepermite la implementación modular de asuntostransversales (crosscutting concerns)
¿Qué es AOP?Asuntos transversales (crosscuttingconcerns).Código disperso (scatteredcode).Código enmarañado (tangledcode).Plomería (plumbingcode)
¿Qué es AOP?Código disperso (scatteredcode).¿Qué es AOP?Código enmarañado (tangledcode).¿Qué es AOP?Otras solucionesPlantillas código (codesnippet)Generador de códigoHerencia (mal usada)Buscar y reemplazarPero con RegEx (expresiones regulares) !!!
¿Qué es AOP?Y si encontrara la forma de escribir solamente esto y que el código se comporte de igual manera que lo anterior?
Conceptos básicos de AOPTransaccionesSeguridadLoggingAspectosValidaciónCache
Conceptos básicos de AOPAl ingresar a un métodoAl salir de un métodoAl escribir un fieldPunto de cruceAl fallar un métodoAl leer un field
Conceptos básicos de AOPConsejo: código del aspecto a introducir.Punto de corte: qué consejo se va a aplicar a cada punto de cruce?Introducción: modificar la interfaz de una clase existente.
Conceptos básicos de AOPDestinatario: la clase que va a ser “aconsejada”. Nuestra clase.Tejido (Weaving): es el proceso por el cual se introducen los Aspectos a Destinatarios para crear los Objetos Resultantes en los determinados Puntos de Cruce.Resultante: target + aspecto. Es el resultado de tejer aspectos en el destinatario.
Técnicas en .NetSubclasing en tiempo de ejecución:CastleDynamic ProxySpring.AOPLinfu.DynamicProxyIL weavingAl compilar:PostSharpPost compilación:PostSharpLinfu.AOPMono.Cecil ( ? )Técnicas nativas del framework (cuasi-AOP)Filters en Asp.Net MVCBehaviors en WCF
Dynamic ProxyLos frameworks de Dynamic Proxy generan una clase (Destinatario) dinámicamente que heredan o implementan el Target, donde se inyectan nuestros Aspectos.Punto de corte: método virtual o método implementación de interfaz.A programar!
PostSharpPostSharp es un framework de AOP. Es por esto que toda su interface respeta la nomenclatura de AOP.Modifica el código intermedio IL para introducir el comportamiento (IL Weaving). Dispone de una arquitectura muy rica para hacer MultiCast. Esto nos permite propagar nuestros aspectos desde interfaces o clases base.Tiene muchos puntos de corte, se puede interceptar métodos privados, públicos, fields, incluso clases sealed.Existen muchos aspectos publicados como plugins.
Muchas graciasFin
Introducción a la Programación Orientada a Aspectos
Introducción a la Programación Orientada a Aspectos

Más contenido relacionado

PDF
Aplicaciones robustas con Programación Orientada a Aspectos
PPT
Programación Orientada a Aspectos - Fernando Córdoba
PDF
Programación Orientada a Aspectos (POA)
PPTX
Introducción a la programación orientada a aspectos
PPTX
Programación: conceptos básicos
PDF
Desarrollo de Software Orientado a Aspectos
PPTX
Conociendo los Lenguajes de Programacion
PPTX
Paradigmas de programación
Aplicaciones robustas con Programación Orientada a Aspectos
Programación Orientada a Aspectos - Fernando Córdoba
Programación Orientada a Aspectos (POA)
Introducción a la programación orientada a aspectos
Programación: conceptos básicos
Desarrollo de Software Orientado a Aspectos
Conociendo los Lenguajes de Programacion
Paradigmas de programación

La actualidad más candente (20)

PPTX
Paradigmas de programacion
PDF
Programación
PPTX
PARADIGMA IMPERATIVO
PPT
PARADIGMA FUNCIONAL
PDF
Tratamiento de errores
PPTX
Poa programacion orientada_a_aspectos
PDF
Extreme Programing y Devops - Código de Calidad
PPTX
PDF
Paradigmas de la programación
PDF
Paradigmas de programacion
PPT
LENGUAJES DE PROGRAMACION
PPTX
3 paradigmas
PPT
Leng progr 01
PPTX
Lenguajes de programación lógica
PPTX
Paradigmas de programación
PPT
Programacion Orientada Objetos
PPTX
Ti034 cp-co CASO PRÁCTICO
ODP
Taller SOLID Refactor
PDF
Errores
ODP
Lenguaje de programación
Paradigmas de programacion
Programación
PARADIGMA IMPERATIVO
PARADIGMA FUNCIONAL
Tratamiento de errores
Poa programacion orientada_a_aspectos
Extreme Programing y Devops - Código de Calidad
Paradigmas de la programación
Paradigmas de programacion
LENGUAJES DE PROGRAMACION
3 paradigmas
Leng progr 01
Lenguajes de programación lógica
Paradigmas de programación
Programacion Orientada Objetos
Ti034 cp-co CASO PRÁCTICO
Taller SOLID Refactor
Errores
Lenguaje de programación
Publicidad

Similar a Introducción a la Programación Orientada a Aspectos (20)

PPTX
.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez
PPT
AOP - OSUM springperu(1era Reunion)
PDF
Modernizacion Oracle Forms
PDF
Modernizacion Oracle Forms
PDF
Clase1 introduccinalcurso
PDF
ParadigmasFP.pdf_CarlosOrtiz_Univercidad
PPT
spring
PPTX
Programacion web introduccion diego zuluaga
PDF
Code Blast 2012 - Node.js
PPTX
Uso de Librerías Objective-c en Xamarin.iOS
PPT
Arquitectura
PPT
PDF
¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
PDF
Node para Javeros: Conoce a tu enemigo
PPTX
PDF
SG 09 Patrones de Integración Empresarial Apache Camel
PPTX
Paradigmas de programacion de computadoras FP.pptx
PPT
P3 Componentes
PDF
eMobc Android Startup
PPT
Aspect Oriented Programming Middleware
.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez
AOP - OSUM springperu(1era Reunion)
Modernizacion Oracle Forms
Modernizacion Oracle Forms
Clase1 introduccinalcurso
ParadigmasFP.pdf_CarlosOrtiz_Univercidad
spring
Programacion web introduccion diego zuluaga
Code Blast 2012 - Node.js
Uso de Librerías Objective-c en Xamarin.iOS
Arquitectura
¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
Node para Javeros: Conoce a tu enemigo
SG 09 Patrones de Integración Empresarial Apache Camel
Paradigmas de programacion de computadoras FP.pptx
P3 Componentes
eMobc Android Startup
Aspect Oriented Programming Middleware
Publicidad

Último (20)

DOCX
Guía 5. Test de orientación Vocacional 2.docx
PDF
capacitación de aire acondicionado Bgh r 410
PPTX
El uso de las TIC en la vida cotidiana..
PPTX
Presentacion de Alba Curso Auditores Internos ISO 19011
DOCX
TRABAJO GRUPAL (5) (1).docxsjsjskskksksksks
PPTX
modulo seguimiento 1 para iniciantes del
PDF
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
PDF
informe_fichas1y2_corregido.docx (2) (1).pdf
DOCX
Trabajo grupal.docxjsjsjsksjsjsskksjsjsjsj
PPTX
Sesion 1 de microsoft power point - Clase 1
PDF
Documental Beyond the Code (Dossier Presentación - 2.0)
PDF
0007_PPT_DefinicionesDeDataMining_201_v1-0.pdf
PPTX
CLAASIFICACIÓN DE LOS ROBOTS POR UTILIDAD
PPTX
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
PPT
Protocolos de seguridad y mecanismos encriptación
PPTX
historia_web de la creacion de un navegador_presentacion.pptx
PPTX
Diapositivas Borrador Rocha Jauregui David Paolo (3).pptx
PDF
ADMINISTRACIÓN DE ARCHIVOS - TICS (SENA).pdf
DOCX
TRABAJO GRUPAL (5) (1).docxjesjssjsjjskss
PDF
CONTABILIDAD Y TRIBUTACION, EJERCICIO PRACTICO
Guía 5. Test de orientación Vocacional 2.docx
capacitación de aire acondicionado Bgh r 410
El uso de las TIC en la vida cotidiana..
Presentacion de Alba Curso Auditores Internos ISO 19011
TRABAJO GRUPAL (5) (1).docxsjsjskskksksksks
modulo seguimiento 1 para iniciantes del
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
informe_fichas1y2_corregido.docx (2) (1).pdf
Trabajo grupal.docxjsjsjsksjsjsskksjsjsjsj
Sesion 1 de microsoft power point - Clase 1
Documental Beyond the Code (Dossier Presentación - 2.0)
0007_PPT_DefinicionesDeDataMining_201_v1-0.pdf
CLAASIFICACIÓN DE LOS ROBOTS POR UTILIDAD
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
Protocolos de seguridad y mecanismos encriptación
historia_web de la creacion de un navegador_presentacion.pptx
Diapositivas Borrador Rocha Jauregui David Paolo (3).pptx
ADMINISTRACIÓN DE ARCHIVOS - TICS (SENA).pdf
TRABAJO GRUPAL (5) (1).docxjesjssjsjjskss
CONTABILIDAD Y TRIBUTACION, EJERCICIO PRACTICO

Introducción a la Programación Orientada a Aspectos

  • 1. Introducción a la Programación Orientada a AspectosPor José Fernando Romaniellohttp://jfromaniello.blogspot.com
  • 2. ¿Qué es AOP?Según Wikipedia:Es un paradigma de programación relativamente reciente cuya intención es permitir una adecuada modularización de las aplicaciones y posibilitar una mejor separación de conceptos.Según GregorKiczales:Un mecanismoquepermite la implementación modular de asuntostransversales (crosscutting concerns)
  • 3. ¿Qué es AOP?Asuntos transversales (crosscuttingconcerns).Código disperso (scatteredcode).Código enmarañado (tangledcode).Plomería (plumbingcode)
  • 4. ¿Qué es AOP?Código disperso (scatteredcode).¿Qué es AOP?Código enmarañado (tangledcode).¿Qué es AOP?Otras solucionesPlantillas código (codesnippet)Generador de códigoHerencia (mal usada)Buscar y reemplazarPero con RegEx (expresiones regulares) !!!
  • 5. ¿Qué es AOP?Y si encontrara la forma de escribir solamente esto y que el código se comporte de igual manera que lo anterior?
  • 6. Conceptos básicos de AOPTransaccionesSeguridadLoggingAspectosValidaciónCache
  • 7. Conceptos básicos de AOPAl ingresar a un métodoAl salir de un métodoAl escribir un fieldPunto de cruceAl fallar un métodoAl leer un field
  • 8. Conceptos básicos de AOPConsejo: código del aspecto a introducir.Punto de corte: qué consejo se va a aplicar a cada punto de cruce?Introducción: modificar la interfaz de una clase existente.
  • 9. Conceptos básicos de AOPDestinatario: la clase que va a ser “aconsejada”. Nuestra clase.Tejido (Weaving): es el proceso por el cual se introducen los Aspectos a Destinatarios para crear los Objetos Resultantes en los determinados Puntos de Cruce.Resultante: target + aspecto. Es el resultado de tejer aspectos en el destinatario.
  • 10. Técnicas en .NetSubclasing en tiempo de ejecución:CastleDynamic ProxySpring.AOPLinfu.DynamicProxyIL weavingAl compilar:PostSharpPost compilación:PostSharpLinfu.AOPMono.Cecil ( ? )Técnicas nativas del framework (cuasi-AOP)Filters en Asp.Net MVCBehaviors en WCF
  • 11. Dynamic ProxyLos frameworks de Dynamic Proxy generan una clase (Destinatario) dinámicamente que heredan o implementan el Target, donde se inyectan nuestros Aspectos.Punto de corte: método virtual o método implementación de interfaz.A programar!
  • 12. PostSharpPostSharp es un framework de AOP. Es por esto que toda su interface respeta la nomenclatura de AOP.Modifica el código intermedio IL para introducir el comportamiento (IL Weaving). Dispone de una arquitectura muy rica para hacer MultiCast. Esto nos permite propagar nuestros aspectos desde interfaces o clases base.Tiene muchos puntos de corte, se puede interceptar métodos privados, públicos, fields, incluso clases sealed.Existen muchos aspectos publicados como plugins.