SlideShare uma empresa Scribd logo
1 de 17
Baixar para ler offline
Aplicaciones Robustas con
Programación Orientada a Aspectos

Alex Casquete
blog: www.idlebit.es
twitter: @acasquete
email: acasquete@pasiona.com
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
¿Qué es AOP?
Temas transversales
  Cross-cutting concerns

Logging       Seguridad        Transacciones



    Multithreading        UI
Problemas al utilizar temas transversales


     Más      Código      Código     Código
    código   duplicado   mezclado   acoplado
«The number of defects in a feature is
proportional to the size of the component.»
El número de errores está relacionado


       Número       Dispersión
       de líneas    del código
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.
¿Soluciones?

 Proxies     Programación   Generación
dinámicos      funcional     de código
Beneficios de AOP
                               Aseguramiento
Menos coste    Menos fallos
                                de la Calidad


                         Mejora el
        Mejora el
                         trabajo en
      mantenimiento
                           equipo
demo
Hello PostSharp y DynamicProxy
Conclusiones AOP


No sustituye a la OOP la extiende.
                     ,
Para implementar temas transversales.
Código simple = Éxito.
Referencias

Aspect-
Aspect-Oriented Software Development
http://aosd.net

PostSharp
http://www.sharpcrafters.com/postsharp

DynamicProxy
http://www.castleproject.org/dynamicproxy
¿Preguntas?

    Aplicaciones Robustas con
Programación Orientada a Aspectos
                  Alex Casquete
               blog: www.idlebit.es
               twitter: @acasquete
         email: acasquete@pasiona.com
Barcelona Developers Conference 2011
           Nov 17th - 19th

Mais conteúdo relacionado

Mais procurados

Paradigmas de programacion
Paradigmas de programacionParadigmas de programacion
Paradigmas de programacionWil Mer
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programaciónOver Rattlehead
 
3 paradigmas
3 paradigmas3 paradigmas
3 paradigmasalithu1
 
PARADIGMA FUNCIONAL
PARADIGMA FUNCIONALPARADIGMA FUNCIONAL
PARADIGMA FUNCIONALFredy Olaya
 
Paradigma de Lenguaje de Programaciòn
Paradigma de Lenguaje de ProgramaciònParadigma de Lenguaje de Programaciòn
Paradigma de Lenguaje de ProgramaciònEriick Leon
 
Extreme Programing y Devops - Código de Calidad
Extreme Programing y Devops - Código de CalidadExtreme Programing y Devops - Código de Calidad
Extreme Programing y Devops - Código de CalidadJose Antonio Jimenez Bisbe
 
Poa programacion orientada_a_aspectos
Poa programacion orientada_a_aspectosPoa programacion orientada_a_aspectos
Poa programacion orientada_a_aspectosPaulo Galarza
 
Trabajo de daniela montes
Trabajo de daniela montesTrabajo de daniela montes
Trabajo de daniela montesDaniela Ortega
 
Paradigmas de programacion
Paradigmas de programacionParadigmas de programacion
Paradigmas de programacionyamy matin
 
Leng progr 01
Leng progr 01Leng progr 01
Leng progr 01Luis Paez
 
Programacion Orientada Objetos
Programacion Orientada ObjetosProgramacion Orientada Objetos
Programacion Orientada Objetosliliandrade
 
Paradigma de poo
Paradigma de pooParadigma de poo
Paradigma de poopixeleante
 
Informaica
InformaicaInformaica
Informaicamerci11
 

Mais procurados (20)

Paradigmas de programacion
Paradigmas de programacionParadigmas de programacion
Paradigmas de programacion
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programación
 
3 paradigmas
3 paradigmas3 paradigmas
3 paradigmas
 
PARADIGMA FUNCIONAL
PARADIGMA FUNCIONALPARADIGMA FUNCIONAL
PARADIGMA FUNCIONAL
 
Paradigma de Lenguaje de Programaciòn
Paradigma de Lenguaje de ProgramaciònParadigma de Lenguaje de Programaciòn
Paradigma de Lenguaje de Programaciòn
 
Extreme Programing y Devops - Código de Calidad
Extreme Programing y Devops - Código de CalidadExtreme Programing y Devops - Código de Calidad
Extreme Programing y Devops - Código de Calidad
 
Patrones de-diseño
Patrones de-diseñoPatrones de-diseño
Patrones de-diseño
 
Poa programacion orientada_a_aspectos
Poa programacion orientada_a_aspectosPoa programacion orientada_a_aspectos
Poa programacion orientada_a_aspectos
 
Paradigmas de la programación
Paradigmas de la programación Paradigmas de la programación
Paradigmas de la programación
 
Trabajo de daniela montes
Trabajo de daniela montesTrabajo de daniela montes
Trabajo de daniela montes
 
Paradigmas de programacion
Paradigmas de programacionParadigmas de programacion
Paradigmas de programacion
 
Ti034 cp-co CASO PRÁCTICO
Ti034 cp-co CASO PRÁCTICOTi034 cp-co CASO PRÁCTICO
Ti034 cp-co CASO PRÁCTICO
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programación
 
Leng progr 01
Leng progr 01Leng progr 01
Leng progr 01
 
Programacion Orientada Objetos
Programacion Orientada ObjetosProgramacion Orientada Objetos
Programacion Orientada Objetos
 
Paradigma de poo
Paradigma de pooParadigma de poo
Paradigma de poo
 
sistema operativo
sistema operativosistema operativo
sistema operativo
 
Algoritmos+sam+deyson
Algoritmos+sam+deysonAlgoritmos+sam+deyson
Algoritmos+sam+deyson
 
Pseudocodigos2
Pseudocodigos2Pseudocodigos2
Pseudocodigos2
 
Informaica
InformaicaInformaica
Informaica
 

Destaque

Protocolos
Protocolos Protocolos
Protocolos DSoto06
 
A charla12 arq.3-capas
A charla12 arq.3-capasA charla12 arq.3-capas
A charla12 arq.3-capashome
 
Arquitectura N-Capas y ADo.NET
Arquitectura N-Capas y ADo.NETArquitectura N-Capas y ADo.NET
Arquitectura N-Capas y ADo.NETRoberto Taborda
 
Aplicaciones Distribuidas
Aplicaciones DistribuidasAplicaciones Distribuidas
Aplicaciones DistribuidasSorey García
 
Disenando Sistemas empleando el modelo de capas en desarrollo de software
Disenando Sistemas empleando el modelo de capas en desarrollo de softwareDisenando Sistemas empleando el modelo de capas en desarrollo de software
Disenando Sistemas empleando el modelo de capas en desarrollo de softwareAlexander Calderón
 
¿Es tu aplicación robusta? Cómo definir la mejor arquitectura para tu aplicac...
¿Es tu aplicación robusta? Cómo definir la mejor arquitectura para tu aplicac...¿Es tu aplicación robusta? Cómo definir la mejor arquitectura para tu aplicac...
¿Es tu aplicación robusta? Cómo definir la mejor arquitectura para tu aplicac...Raona
 
¿Es tu aplicación robusta? Cómo definir la mejor arquitectura para tu aplicac...
¿Es tu aplicación robusta? Cómo definir la mejor arquitectura para tu aplicac...¿Es tu aplicación robusta? Cómo definir la mejor arquitectura para tu aplicac...
¿Es tu aplicación robusta? Cómo definir la mejor arquitectura para tu aplicac...Raona
 
Etapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del SoftwareEtapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del SoftwareT.I.C
 
Modelos y capas de la ingenieria de software
Modelos y capas  de la ingenieria de softwareModelos y capas  de la ingenieria de software
Modelos y capas de la ingenieria de softwarejhonatanalex
 
Arquitectura de una aplicación
Arquitectura de una aplicaciónArquitectura de una aplicación
Arquitectura de una aplicaciónuniv of pamplona
 

Destaque (13)

Protocolos
Protocolos Protocolos
Protocolos
 
3capas
3capas3capas
3capas
 
A charla12 arq.3-capas
A charla12 arq.3-capasA charla12 arq.3-capas
A charla12 arq.3-capas
 
Aplicaciones distribuidas
Aplicaciones distribuidasAplicaciones distribuidas
Aplicaciones distribuidas
 
Arquitectura N-Capas y ADo.NET
Arquitectura N-Capas y ADo.NETArquitectura N-Capas y ADo.NET
Arquitectura N-Capas y ADo.NET
 
Aplicaciones Distribuidas
Aplicaciones DistribuidasAplicaciones Distribuidas
Aplicaciones Distribuidas
 
Disenando Sistemas empleando el modelo de capas en desarrollo de software
Disenando Sistemas empleando el modelo de capas en desarrollo de softwareDisenando Sistemas empleando el modelo de capas en desarrollo de software
Disenando Sistemas empleando el modelo de capas en desarrollo de software
 
¿Es tu aplicación robusta? Cómo definir la mejor arquitectura para tu aplicac...
¿Es tu aplicación robusta? Cómo definir la mejor arquitectura para tu aplicac...¿Es tu aplicación robusta? Cómo definir la mejor arquitectura para tu aplicac...
¿Es tu aplicación robusta? Cómo definir la mejor arquitectura para tu aplicac...
 
Capas de la ingenieria de software
Capas de la ingenieria de softwareCapas de la ingenieria de software
Capas de la ingenieria de software
 
¿Es tu aplicación robusta? Cómo definir la mejor arquitectura para tu aplicac...
¿Es tu aplicación robusta? Cómo definir la mejor arquitectura para tu aplicac...¿Es tu aplicación robusta? Cómo definir la mejor arquitectura para tu aplicac...
¿Es tu aplicación robusta? Cómo definir la mejor arquitectura para tu aplicac...
 
Etapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del SoftwareEtapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del Software
 
Modelos y capas de la ingenieria de software
Modelos y capas  de la ingenieria de softwareModelos y capas  de la ingenieria de software
Modelos y capas de la ingenieria de software
 
Arquitectura de una aplicación
Arquitectura de una aplicaciónArquitectura de una aplicación
Arquitectura de una aplicación
 

Semelhante a Aplicaciones robustas con Programación Orientada a Aspectos

Aspect Oriented Programming Middleware
Aspect Oriented Programming MiddlewareAspect Oriented Programming Middleware
Aspect Oriented Programming MiddlewareLenin Lozano
 
Prosciutto Palermo Valley Mobile Sessions
Prosciutto Palermo Valley Mobile SessionsProsciutto Palermo Valley Mobile Sessions
Prosciutto Palermo Valley Mobile SessionsMario Zorz
 
Prosciutto en Desayuno Mobile Palermo Valley
Prosciutto en Desayuno Mobile Palermo ValleyProsciutto en Desayuno Mobile Palermo Valley
Prosciutto en Desayuno Mobile Palermo ValleyPalermo Valley
 
Lineal Secuencial
Lineal SecuencialLineal Secuencial
Lineal Secuencialtoryneutral
 
AOP - OSUM springperu(1era Reunion)
AOP - OSUM springperu(1era Reunion)AOP - OSUM springperu(1era Reunion)
AOP - OSUM springperu(1era Reunion)Mayer Horna
 
Método cascada
Método cascadaMétodo cascada
Método cascadamariacebu
 
Método cascada
Método cascadaMétodo cascada
Método cascadamariacebu
 
MDD Ingenieria de Software Dirigida por Modelos
MDD Ingenieria de Software Dirigida por ModelosMDD Ingenieria de Software Dirigida por Modelos
MDD Ingenieria de Software Dirigida por ModelosJorge Mario Calvo Londoño
 
Code Blast 2012 - Fast Mobile Prototyping
Code Blast 2012 - Fast Mobile PrototypingCode Blast 2012 - Fast Mobile Prototyping
Code Blast 2012 - Fast Mobile PrototypingINSIGNIA4U
 
Rational Quilaty Management
Rational Quilaty ManagementRational Quilaty Management
Rational Quilaty ManagementLuis Reyes
 

Semelhante a Aplicaciones robustas con Programación Orientada a Aspectos (20)

Aspect Oriented Programming Middleware
Aspect Oriented Programming MiddlewareAspect Oriented Programming Middleware
Aspect Oriented Programming Middleware
 
Prosciutto Palermo Valley Mobile Sessions
Prosciutto Palermo Valley Mobile SessionsProsciutto Palermo Valley Mobile Sessions
Prosciutto Palermo Valley Mobile Sessions
 
Prosciutto en Desayuno Mobile Palermo Valley
Prosciutto en Desayuno Mobile Palermo ValleyProsciutto en Desayuno Mobile Palermo Valley
Prosciutto en Desayuno Mobile Palermo Valley
 
Lineal Secuencial
Lineal SecuencialLineal Secuencial
Lineal Secuencial
 
Watch, lps
Watch, lpsWatch, lps
Watch, lps
 
Watch, lps
Watch, lpsWatch, lps
Watch, lps
 
Metodo watch y lps
Metodo watch y lpsMetodo watch y lps
Metodo watch y lps
 
Metodo watch y lps
Metodo watch y lpsMetodo watch y lps
Metodo watch y lps
 
Conociendo Nuestro Fua interno
Conociendo Nuestro Fua internoConociendo Nuestro Fua interno
Conociendo Nuestro Fua interno
 
AOP - OSUM springperu(1era Reunion)
AOP - OSUM springperu(1era Reunion)AOP - OSUM springperu(1era Reunion)
AOP - OSUM springperu(1era Reunion)
 
Metodologías Ágiles
Metodologías ÁgilesMetodologías Ágiles
Metodologías Ágiles
 
Watch, lps
Watch, lpsWatch, lps
Watch, lps
 
Método cascada
Método cascadaMétodo cascada
Método cascada
 
Método cascada
Método cascadaMétodo cascada
Método cascada
 
Trabajo de desarrollo desoftware
Trabajo de desarrollo desoftwareTrabajo de desarrollo desoftware
Trabajo de desarrollo desoftware
 
MDD Ingenieria de Software Dirigida por Modelos
MDD Ingenieria de Software Dirigida por ModelosMDD Ingenieria de Software Dirigida por Modelos
MDD Ingenieria de Software Dirigida por Modelos
 
Code Blast 2012 - Fast Mobile Prototyping
Code Blast 2012 - Fast Mobile PrototypingCode Blast 2012 - Fast Mobile Prototyping
Code Blast 2012 - Fast Mobile Prototyping
 
Trabajo
TrabajoTrabajo
Trabajo
 
Rational Quilaty Management
Rational Quilaty ManagementRational Quilaty Management
Rational Quilaty Management
 
Momo mobile webwidgets
Momo mobile webwidgetsMomo mobile webwidgets
Momo mobile webwidgets
 

Mais de Alex Casquete

Redis no es solo una caché
Redis no es solo una cachéRedis no es solo una caché
Redis no es solo una cachéAlex Casquete
 
Functional Programming with F#: Getting Started & Basic Concepts
Functional Programming with F#: Getting Started & Basic ConceptsFunctional Programming with F#: Getting Started & Basic Concepts
Functional Programming with F#: Getting Started & Basic ConceptsAlex Casquete
 
Working with disconnected data in Windows Store apps
Working with disconnected data in Windows Store appsWorking with disconnected data in Windows Store apps
Working with disconnected data in Windows Store appsAlex Casquete
 
45 F#antastic minutes!
45 F#antastic minutes!45 F#antastic minutes!
45 F#antastic minutes!Alex Casquete
 
JavaScript no es Vietnam
JavaScript no es VietnamJavaScript no es Vietnam
JavaScript no es VietnamAlex Casquete
 
Entity Framework 4 desde cero
Entity Framework 4 desde ceroEntity Framework 4 desde cero
Entity Framework 4 desde ceroAlex Casquete
 

Mais de Alex Casquete (6)

Redis no es solo una caché
Redis no es solo una cachéRedis no es solo una caché
Redis no es solo una caché
 
Functional Programming with F#: Getting Started & Basic Concepts
Functional Programming with F#: Getting Started & Basic ConceptsFunctional Programming with F#: Getting Started & Basic Concepts
Functional Programming with F#: Getting Started & Basic Concepts
 
Working with disconnected data in Windows Store apps
Working with disconnected data in Windows Store appsWorking with disconnected data in Windows Store apps
Working with disconnected data in Windows Store apps
 
45 F#antastic minutes!
45 F#antastic minutes!45 F#antastic minutes!
45 F#antastic minutes!
 
JavaScript no es Vietnam
JavaScript no es VietnamJavaScript no es Vietnam
JavaScript no es Vietnam
 
Entity Framework 4 desde cero
Entity Framework 4 desde ceroEntity Framework 4 desde cero
Entity Framework 4 desde cero
 

Último

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 

Último (10)

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 

Aplicaciones robustas con Programación Orientada a Aspectos