SlideShare ist ein Scribd-Unternehmen logo
1 von 60
Herramienta para romper dependencias en ensamblados .NET mediante la refactorización de su código intermedio. Presentado por: Jair Cazarin Villanueva Bajo la supervisión de: Dr. Mauricio Osorio. Dr. Mircea Trofin. Universidad de las Américas, Puebla
Agenda. ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Programación Orientada a Objetos
[object Object]
 
Características Principales
 
 
Flexible
Fácil de mantener.
 
Dependencias.
Tipos de dependencias.
Solución :  Refactorizar. “ Refactorizar  es el proceso de cambiar un software de tal forma que el comportamiento externo no cambia, más bien, se mejora su estructura interna. ”
[object Object],[object Object]
Objetivo General. ,[object Object]
Objetivo General. ,[object Object]
[object Object]
Alcances y Limitaciones. ,[object Object],[object Object],[object Object],[object Object],[object Object]
Análisis del problema. ,[object Object],[object Object]
Dependencia Contenida. ,[object Object],[object Object],[object Object]
Dependencia Directa. ,[object Object],[object Object],[object Object],[object Object],[object Object]
.NET Framework.
CLR
Ejecución de código administrado.
CIL. ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ensamblados.
CECIL.
Dependency Injection. ,[object Object],[object Object],[object Object],[object Object]
Implementación
Capa de Framework.
Capa de Framework. ,[object Object]
Capa de implementación.
Dependency Injection Container.
Rompiendo dependencias contenidas. ,[object Object],[object Object],[object Object],[object Object],[object Object]
Rompiendo dependencias contenidas. ,[object Object],[object Object],[object Object],[object Object],[object Object]
Rompiendo dependencias contenidas. ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object]
Implementaci ón del Factory ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object]
XML de configuración. ,[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object]
Nuevo componente. ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Factory  Method ,[object Object],[object Object],[object Object],[object Object]
XML de configuración. ,[object Object],[object Object],[object Object],[object Object]
Refactorizando instanciaciones. ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Refactorizando instanciaciones concretas. ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Dependencias Directas. ,[object Object],[object Object],[object Object]
Refactorizando Parámetros. ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Renombramiento. ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Refactorizando Par ámetros de retorno. ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Capa de aplicación.
Capa de aplicación. ,[object Object],[object Object],[object Object]
Pruebas y Resultados.
Escenario 2.
Resumiendo ,[object Object],[object Object],[object Object],[object Object]
Conclusiones.
Trabajo a Futuro. ,[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object]

Weitere ähnliche Inhalte

Was ist angesagt?

UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
Videoconferencias UTPL
 
Capítulo 6 funciones y procedimiento
Capítulo 6 funciones y procedimientoCapítulo 6 funciones y procedimiento
Capítulo 6 funciones y procedimiento
EnAutomático
 
Indentificacion de funciones
Indentificacion de funcionesIndentificacion de funciones
Indentificacion de funciones
Julian Bohorquez
 

Was ist angesagt? (20)

Funcionesenlenguaje c
Funcionesenlenguaje cFuncionesenlenguaje c
Funcionesenlenguaje c
 
Clase 7 objetos globales de javaScript
Clase 7 objetos globales de javaScriptClase 7 objetos globales de javaScript
Clase 7 objetos globales de javaScript
 
Clase 5 funciones en javaScript
Clase 5 funciones en javaScriptClase 5 funciones en javaScript
Clase 5 funciones en javaScript
 
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
 
Clase 6 objetos de javaScript
Clase 6 objetos de javaScriptClase 6 objetos de javaScript
Clase 6 objetos de javaScript
 
Funciones C++ modificado
Funciones C++ modificadoFunciones C++ modificado
Funciones C++ modificado
 
Semana 1 Estructuras de Datos en Java
Semana 1   Estructuras de Datos en JavaSemana 1   Estructuras de Datos en Java
Semana 1 Estructuras de Datos en Java
 
Operadores
OperadoresOperadores
Operadores
 
Comandos java
Comandos javaComandos java
Comandos java
 
Comandos de Java
Comandos de JavaComandos de Java
Comandos de Java
 
SCJP, Clase 8: Inner Classes
SCJP, Clase 8: Inner ClassesSCJP, Clase 8: Inner Classes
SCJP, Clase 8: Inner Classes
 
Capítulo 6 funciones y procedimiento
Capítulo 6 funciones y procedimientoCapítulo 6 funciones y procedimiento
Capítulo 6 funciones y procedimiento
 
FUNCIONES LENGUAJE C
FUNCIONES LENGUAJE CFUNCIONES LENGUAJE C
FUNCIONES LENGUAJE C
 
Indentificacion de funciones
Indentificacion de funcionesIndentificacion de funciones
Indentificacion de funciones
 
Funciones
FuncionesFunciones
Funciones
 
5 metodos y parametros
5 metodos y parametros5 metodos y parametros
5 metodos y parametros
 
Jyoc java-cap02 bifurcaciones
Jyoc java-cap02 bifurcacionesJyoc java-cap02 bifurcaciones
Jyoc java-cap02 bifurcaciones
 
Java 8
Java 8Java 8
Java 8
 
Funciones
FuncionesFunciones
Funciones
 
Semana 1 Estructuras de Control en Java
Semana 1   Estructuras de Control en JavaSemana 1   Estructuras de Control en Java
Semana 1 Estructuras de Control en Java
 

Andere mochten auch (20)

La Tierra Y Y El Uruguay
La Tierra Y Y El UruguayLa Tierra Y Y El Uruguay
La Tierra Y Y El Uruguay
 
Calendari2008
Calendari2008Calendari2008
Calendari2008
 
Golden Gnosis
Golden GnosisGolden Gnosis
Golden Gnosis
 
Racenet
RacenetRacenet
Racenet
 
Campo de Golf A Coruña
Campo de Golf A CoruñaCampo de Golf A Coruña
Campo de Golf A Coruña
 
Kiteboard
KiteboardKiteboard
Kiteboard
 
Como Bajar De Peso
Como Bajar De PesoComo Bajar De Peso
Como Bajar De Peso
 
Power EriçOns
Power EriçOnsPower EriçOns
Power EriçOns
 
Energies Renovables 1
Energies Renovables 1Energies Renovables 1
Energies Renovables 1
 
Cincocosasimportantes
CincocosasimportantesCincocosasimportantes
Cincocosasimportantes
 
prueba a ciegas
prueba a ciegasprueba a ciegas
prueba a ciegas
 
Prueba A Ciegas
Prueba A CiegasPrueba A Ciegas
Prueba A Ciegas
 
ApresentaçãO Ead Pamm Power
ApresentaçãO Ead Pamm PowerApresentaçãO Ead Pamm Power
ApresentaçãO Ead Pamm Power
 
Ad99
Ad99Ad99
Ad99
 
Slim Samples
Slim SamplesSlim Samples
Slim Samples
 
INFARTO A SOLAS
INFARTO A SOLASINFARTO A SOLAS
INFARTO A SOLAS
 
ApresentaçãO1
ApresentaçãO1ApresentaçãO1
ApresentaçãO1
 
Visit Ancient India
Visit Ancient IndiaVisit Ancient India
Visit Ancient India
 
Escuela Taller Carlet
Escuela Taller CarletEscuela Taller Carlet
Escuela Taller Carlet
 
L'aigua, un bé escàs
L'aigua, un bé escàsL'aigua, un bé escàs
L'aigua, un bé escàs
 

Ähnlich wie Rompiendo dependencias contenidas en ensamblados .NET mediante la refactorización de su código Intermedio.

.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez
.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez
.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez
.NET UY Meetup
 
Funciones store proc_triggers
Funciones store proc_triggersFunciones store proc_triggers
Funciones store proc_triggers
Luis Jherry
 

Ähnlich wie Rompiendo dependencias contenidas en ensamblados .NET mediante la refactorización de su código Intermedio. (20)

Patrones Con C#
Patrones Con C#Patrones Con C#
Patrones Con C#
 
Creación de Builders y DSL's con Groovy
Creación de Builders y DSL's con GroovyCreación de Builders y DSL's con Groovy
Creación de Builders y DSL's con Groovy
 
Buenas prácticas para la construcción de software
Buenas prácticas para la construcción de softwareBuenas prácticas para la construcción de software
Buenas prácticas para la construcción de software
 
Curso de Desarrollo Web 2
Curso de Desarrollo Web 2Curso de Desarrollo Web 2
Curso de Desarrollo Web 2
 
Framework .NET 3.5 10 Linq
Framework .NET 3.5 10 LinqFramework .NET 3.5 10 Linq
Framework .NET 3.5 10 Linq
 
.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez
.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez
.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez
 
Tutorial JPA Parte 1 : CRUD BASICO CON JPA Y SWING en NETBEANS
Tutorial  JPA Parte 1  : CRUD BASICO CON JPA Y SWING en NETBEANSTutorial  JPA Parte 1  : CRUD BASICO CON JPA Y SWING en NETBEANS
Tutorial JPA Parte 1 : CRUD BASICO CON JPA Y SWING en NETBEANS
 
Abstracción en programación
Abstracción en programaciónAbstracción en programación
Abstracción en programación
 
C# calculadora
C# calculadoraC# calculadora
C# calculadora
 
Bases de Datos en Java - Intro a JDBC
Bases de Datos en Java - Intro a JDBCBases de Datos en Java - Intro a JDBC
Bases de Datos en Java - Intro a JDBC
 
Metodo constructor de una clase JAVA
Metodo constructor de una clase JAVAMetodo constructor de una clase JAVA
Metodo constructor de una clase JAVA
 
Funciones store proc_triggers
Funciones store proc_triggersFunciones store proc_triggers
Funciones store proc_triggers
 
Lenguajes de Programación: Clases y objetos
Lenguajes de Programación: Clases y objetosLenguajes de Programación: Clases y objetos
Lenguajes de Programación: Clases y objetos
 
El lenguaje C++ (1).ppt
El lenguaje C++ (1).pptEl lenguaje C++ (1).ppt
El lenguaje C++ (1).ppt
 
El lenguaje C++.ppt
El lenguaje C++.pptEl lenguaje C++.ppt
El lenguaje C++.ppt
 
Programación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetosProgramación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetos
 
Tdd y clean code SG campus
Tdd y clean code SG campusTdd y clean code SG campus
Tdd y clean code SG campus
 
Cplus
CplusCplus
Cplus
 
C++
C++C++
C++
 
Programación en c++
Programación en c++Programación en c++
Programación en c++
 

Kürzlich hochgeladen

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Kürzlich hochgeladen (11)

PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 

Rompiendo dependencias contenidas en ensamblados .NET mediante la refactorización de su código Intermedio.

Hinweis der Redaktion

  1. Muy buenas tarde a todos, mi nombre es Jair Cazarin, y estoy aquí para presentarles la tesis que desarrollé a lo largo de estos meses, como requisito parcial para obtener el título en la Licenciatura en Ingeniería en Sistemas Computacionales. El título de mi tesis es “Herramienta para romper dependencias en ensamblados .NET mediante la refactorización de su código intermedio.”