FRAMEWORKS (Conceptos y Prácticas)



Documentos relacionados
SÍLABO DE SOLUCIONES WEB Y APLICACIONES DISTRIBUIDAS

Proyecto ELO-330 Administración Salas del Departamento de Electrónica RC1. Gerardo Lecaros Felipe Díaz

Java 7.0 Advanced Application Developer

MASTER JAVA AVANZADO Master en desarrollo de aplicaciones avanzadas con JAVA 2008

DIPLOMATURA DESARROLLO DE APLICACIONES JAVA

Ficha Técnica. Categoría. Contenido del Pack. Sinopsis. Programación. - 2 Manual Teórico - 1 Cuaderno de Ejercicios - 1 CDROM

Lección 1 Introducción a Struts. uacosta@globalmentoring.com.mx

Capítulo 2. Marco Teórico

Capítulo II. Arquitectura del Software

Elección de tecnología para la capa de presentación de SOA. Huibert Aalbers Senior Certified Software IT Architect

Centro de Capacitación en Tecnologías de la Información. Desarrollo de. aplicaciones web con

Taller de Sistemas de Información 2

Introducción al Desarrollo de Aplicaciones Empresariales

Tema 1. Introducción a Java EE

Concepto de Arquitectura en Desarrollo Software. Arquitectura física Distribución de nodos en la red. Concepto de Arquitectura software Moderno

FUJITSU Java Development Framework

Cursos PROGRAMACIÓN DE APLICACIONES CON JAVA

Diplomado Java. Descripción. Objetivo. A quien está dirigido. Requisitos. Beneficios

Qué es PHP? Example #1 Un ejemplo introductorio "<?,?>".

Sesión 17. FRAMEWORKS

WORKSHOP Spring Framework Developer

Experiencias con J2EE

Diplomado Java Web Programming with Servlets, JSP, JSF & Ajax

[CASI v.0109] Pág. 1

JAVA EE 5. Arquitectura, conceptos y ejemplos.

Arquitectura de Software

Desarrollo de Aplicaciones Web con JAVA: J2EE y Struts

DESARROLLO WEB CON YII FRAMEWORK LICENCIATURA EN CIENCIAS DE LA COMPUTACIÓN

Desarrollo Profesional con Open Source en Java. Abner Ballardo Urco

Introducción a Javato

Analista Programador J2EE

Patrones de Alto nivel: Patrones de Arquitectura Patrones de nivel medio: Patrones de Diseño Patrones de bajo nivel: Idioms

Programa de Actualización Profesional Curso: Java Avanzado JEE7 Programa del Curso

Panorámica de la asignatura

Licenciado en Computación. Áreas de Experiencia Sistemas, Académico

Capas de la arquitectura de referencia

DISEÑO E IMPLEMENTACIÓN DE UNA BASE DE DATOS PARA LA ONG ASEM

Temario máster Java. Módulo 1 Fundamentals of the Java Programming Language. Duración: 40 horas

CentralTECH JAVA EE 7 Desarrollo

UNIVERSIDAD DE PIURA

Capítulo III. Análisis y diseño.

Aplicaciones web construidas a base de componentes:

Componentes de presentación

Empleo. CURSO FORMATIVO Desarrollo WEB JAVA EE. Coordinador Académico Antonio José Martín Sierra

Capítulo I. Marco Teórico

Introducción al Desarrollo de Aplicaciones Web D R A. M A R I C E L A B R A V O

Diseño e implementación de una tienda electrónica mediante Struts y SOAP. Rocío López Valladolid Tutor: Dr. Abelardo Pardo Sánchez

Rafael Doña Gil. Enginyeria Tècnica en Informàtica de Sistemes. Consultor: Jose Juan Rodríguez

Anexo 4 Documento de Arquitectura

Facultad de Ingeniería Escuela de Ciencias y Sistemas Estructura de Datos Guatemala 2013 JSF + JSP + RichFaces

1 Índice Introducción Propósito Alcance Modelo Arquitectónico Inicial... 3

Guayaquil - Ecuador Pedro Carbo 123 y Junín. Pasaje Comercial la Merced. 2do Piso. Oficina 2. Teléfonos: (593) (04) Mail.

Curso Desarrollo Java Web con JSP, Servlets y el MVC

JAVA WEB 1er Nivel Servlet + JSP + JDBC + Sesiones

Centro de Capacitación en Tecnologías de la Información. Desarrollo de. diplomado

Temario Detallado Curso Java Verano Online

PROGRAMA FORMATIVO Desarrollo de aplicaciones JAVA (Programador JAVA)

Requisitos. Universidad ORT Arquitectura de Software

Symfony. Framework para el desarrollo de aplicaciones Web con PHP

PÁGINAS DINÁMICAS WEB CON PHP. Unidad 1 FUNDAMENTOS DE PHP

Arquitectura. 1.- Aplicaciones Web. Definición. Arquitectura clásica. Contenidos. 1.- Aplicaciones Web

Curso de Java EE Todos los Derechos Reservados Global Mentoring 2012 Experiencia y Conocimiento para tu Vida 1

Indizen Labs imade. Marco de Desarrollo Aplicaciones de Indizen


OpenProdoc. ECM Open Source

TEMARIO. 4-Servlet Definición de servlet El Web Container y el ciclo de vida de los servlets El ciclo request- response.

Curso de Spring Framework

Arquitectura de aplicaciones

Gestión Documental PREPARACION DEL ENTORNO DE DESARROLLO

desarrollo. Dentro del desarrollo de la tesis el proceso de modelado del sistema fue hecho con el

POR QUÉ NUESTRO FRAMEWORK DE DESARROLLO DWPORTAL/APP?

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

JHeadStart. Pedro Gallardo Responsable Área Middleware

Symfony2. Junio. Inicio. Curso Desarrollo de aplicaciones web con. Básico-Intermedio

FAMILIA PROFESIONAL: Informática y Comunicación CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIMEDIA DAM 350 HORAS

Desarrollo de aplicaciones web con Java y XML Experiencias en el CTI@UIB

TFC J2EE. Aplicación Web para la gestión de facturación de una empresa de cerrajería. Sara Gutiérrez Melero ITIG Junio de 2012

PROGRAMA FORMATIVO Desarrollo de aplicaciones empresariales Java J2EE 7 (ORACLE)

Capítulo VI. Conclusiones. En este capítulo abordaremos la comparación de las características principales y

Software libre aplicado al desarrollo de aplicaciones corporativas. Proyecto gvhidra.

Tema 1: Introducción a las Tecnologías Java

PROGRAMA FORMATIVO Desarrollo de aplicaciones Móviles Java ME

GUÍA TÉCNICA. Desarrollo de Sistemas de Información la plataforma Business Intellingence Pentaho

CORPORACIÓN MEXICANA DE INVESTIGACIÓN EN MATERIALES, S.A. DE CV

GUÍA TÉCNICA. Desarrollo de Proyectos en Plataforma Liferay en el Gobierno de Extremadura

Proyectos profesionales con PHP 5 Francisco Charte Ojeda

Transcripción:

FRAMEWORKS (Conceptos y Prácticas)

Contenido Introducción Principio de Inversión de Control Características de los Frameworks Frameworks en Java Frameworks en PHP Evaluación de Frameworks

Contenido Introducción Principio de Inversión de Control Características de los Frameworks Frameworks en Java Frameworks en PHP Evaluación de Frameworks

Reuso en el Desarrollo. de Software Copiar y Pegar Inclusión de archivos Librerías de funciones API Mediante herencia Mediante composición Por plantillas Con componentes Usando patrones Usando frameworks De Modelos

Definición de Framework Un Framework es una mini-arquitectura reutilizable que provee la estructura genérica y el comportamiento para una familia de abstracciones de software, junto con un contexto formado por metáforas que especifican las colaboraciones y el uso en un dominio dado.

Reuso de diseño y código Al adoptar un framework estamos reusando tanto el diseño que éste trae incorporado como el artefacto físico (código ejecutable). Por este motivo el creador del framework debe ser un experto en el dominio.

Contenido Introducción Principio de Inversión de Control Características de los Frameworks Frameworks en Java Frameworks en PHP Evaluación de Frameworks

Principio de Inversión del Control El código de un aplicación convencional está formado por piezas centrales que utilizan clases o rutinas utilitarias externas.

Principio de Inversión del Control En el desarrollo con frameworks, las clases o módulos de una aplicación son manejados por la lógica de control interna del framework.

Principio de Inversión del Control Framework (Director) Aplicación (Orquesta) Todo debe estar en un lugar acordado

Contenido Introducción Principio de Inversión de Control Características de los Frameworks Frameworks en Java Frameworks en PHP Evaluación de Frameworks

Estructura de un Framework Frozen Spot Hot Spot

Desarrollo con Frameworks

Nacimiento de un Framework Aplicación A Aplicación B Aplicación C Identificación de Puntos Comunes Framework

Frozen y Hot Spots Aplicación A Los frozen spots de un framework son aquellos puntos de reutilización no o mínimamente extensibles Aplicación B Framework Aplicación C Puntos de extensión Aplicación D Los hot spots de un framework son aquellos puntos de reutilización mediana o fuertemente extensibles

Caja Blanca vs. Caja Negra Framework de Caja Blanca Framework de Caja Negra Framework de Caja Gris

Contenido Introducción Principio de Inversión de Control Características de los Frameworks Frameworks en Java Frameworks en PHP Evaluación de Frameworks

Frameworks (en Java) JSF Eventos, Componentes, IoC WebWork Tapestry Frameworks de presentación Servlets MVC, Action controller Freemaker, Velocity JSPs Struts Frameworks de integración de componentes Pool de Objetos Picocontainer Frameworks de persistencia EJBs IoC, POJO JDBC Hibernate Spring Mapeo Objeto- Relacional ibatis

Basado en el patrón Template Method Framework JUnit

Arquitecturas por capas y Frameworks

Elementos J2EE distribuidos en 5 niveles

Implantación de patrones

Framework STRUTS

Framework ORACLE BC4J

Contenido Introducción Principio de Inversión de Control Características de los Frameworks Frameworks en Java Frameworks en PHP Evaluación de Frameworks

Historia de PHP 1994 Creado por Rasmus Lerdorf. Llamado: Personal Home Page 1995 PHP/FI (Interprete de Formularios) 1998 Liberado PHP3 Llamado: Hypertext Preprocessor

Historia de PHP 2000 Liberado PHP4 Motor ZEND creado por: Zeev Suraski Andi Gutmans En la actualidad Liberada PHP5 http://www.php.net/ http://www.zend.com/

Antecedentes de Frameworks en PHP 2 1 HTTP request (PHP) *.php HTML 3 (Bytecode) Client 5 HTTP response (HTML) Web Server (HTTP Engine) 4 Template Engine DBMS

Antecedentes de Frameworks en PHP Template Engine. (Motores de Plantillas) Smarty PHP Nuke TemplatePower xtemplate FastTemplate PHPlib

Frameworks en PHP

Frameworks en PHP

Frameworks MVC en PHP Request Response Request Front Controller Controller Action Dispatcher Response Request Response

MVC en J2EE request Controller (Servlet) response forward View (JSP) update Model (JavaBean) get information

MVC en PHP (ej. Prado) request Controller (/pages/*.php) update response forward Model (/data/*.php) View (/pages/*.page) get information

Frameworks en PHP Frameworks en PHP * Web Application Component Toolkit * Ismo * Prado * InterJinn * Binarycloud * Copix * PhpMvc (StrutsPort) * Sitellite * Booby * Phrame (StrutsPort) * Mojavi * FastFrame * eocene (StrutsPort) * LogiCreate * Seagull * Ambivalence (MaverickPort) * Medusa * FuseLogic *?Krysalis (CocoonPort) * Core Enterprise PHP * Studs (StrutsPort) * Popoon (CocoonPort) * Tanjero Jive * Cgiapp * ezpublish * rwfphp * Navigator * MVC8 * LIMB * Castor * SMART * Horde * VAAL Fuente: http://wact.sourceforge.net/index.php/mvcframeworkswritteninphp

Frameworks en PHP

Contenido Introducción Principio de Inversión de Control Características de los Frameworks Frameworks en Java Frameworks en PHP Evaluación de Frameworks

Evaluación de Frameworks en PHP 1. Selección de los Frameworks. 2. Selección de las características. 3. Valoración de las características. 4. Calificación de cada Framework. 5. Computar totales y seleccionar el mejor Framework.

1. Selección de los Frameworks Alternativas: PEAR: WACT: Prado: http://pear.php.net/ http://www.phpwact.org/ http://www.pradosoft.com/

1. Selección de los Frameworks PEAR Basado en componentes. Framework propio de la comunidad de PHP. Propone estilos estándar de codificación. Manejo de errores. Amplia baraja de librerías. Actualizaciones en línea e integradas con PHP. Uso de AJAX.

1. Selección de los Frameworks WACT Implementación MVC. Manejo de errores. Numerosas opciones de configuración. Facilidad para el cambio en la lógica del negocio. Motor de plantillas. Arquitectura de controladores. Fácil integración con AJAX. Robustas alternativas para el montaje de seguridad.

1. Selección de los Frameworks Prado Basado en componentes. Programación dirigida por eventos. Integración de temas. Reusabilidad. Variedad de controles web Soporte de Ajax a partir de la versión 3.1 Cumplimiento de XHTML Motor de Plantillas. Fácil de usar, robusto y maneja de Excepciones. Usa técnicas de cache para mejorar desempeño. Php Rapid Application Development Object-oriented. Validaciones livianas en Java-Script.

2. Selección de las Características Documentación: Manuales, ejemplos y comunidad de desarrollo del framework para garantizar un adecuado soporte. Seguridad: Manejo de usuarios y mecanismos de personalización de menús para la adecuada implementación de roles. Facilidad de uso: Proceso de instalación sencillo, al igual que las actualizaciones y adaptaciones sobre el framework. Internacionalización: mecanismos para el manejo de parámetros que permitan la internacionalización del portal. Manejo de errores: Captura y personalización de los errores para un adecuado tratamiento y presentación de los mismos.

2. Selección de las Características Perfil: Soporte a un modelo de desarrollo adecuado a las necesidades particulares del equipo técnico. Curva de Aprendizaje: Dificultad a facilidad para la implementación de ejemplos que nos definan la complejidad de uso. Madurez: Versión del framework y sistemas en producción que han sido desarrollados usando éste. Robustez adecuada: Mecanismos de manejo de concurrencia y volúmenes de información que se ajusten a las necesidades del portal. Escalabilidad: Adecuado manejo de los servicios de infraestructura que garanticen mantener tiempos de respuestas apropiados a pesar del crecimiento del portal.

3. Valoración de las Características # Caracteristica Peso 1 Documentación 9 2 Seguridad 6 3 Facilidad de uso 10 4 Internacionalización 6 5 Manejo de errores 6 6 Perfil 7 7 Curva de Aprendizaje 9 8 Madurez 8 9 Robustez adecuada 9 10 Escalabilidad 10

4. Calificación de cada Framework # Caracteristica PEAR WACT Prado Peso 1 Documentación 3 5 5 9 2 Seguridad 3 5 5 6 3 Facilidad de uso 3 4 5 10 4 Internacionalización 3 3 3 6 5 Manejo de errores 4 4 4 6 6 Perfil 4 4 5 7 7 Curva de Aprendizaje 3 4 5 9 8 Madurez 5 4 4 8 9 Robustez adecuada 3 2 5 9 10 Escalabilidad 3 3 4 10

5. Computar y Seleccionar el Mejor # Caracteristica PEAR WACT Prado Peso 1 Documentación 3 27 5 45 5 45 9 2 Seguridad 3 18 5 30 5 30 6 3 Facilidad de uso 3 30 4 40 5 50 10 4 Internacionalización 3 18 3 18 3 18 6 5 Manejo de errores 4 24 4 24 4 24 6 6 Perfil 4 28 4 28 5 35 7 7 Curva de Aprendizaje 3 27 4 36 5 45 9 8 Madurez 5 40 4 32 4 32 8 9 Robustez adecuada 3 27 2 18 5 45 9 10 Escalabilidad 3 30 3 30 4 40 10 Total 269 301 364

Preguntas y Respuestas? Muchas Gracias!