Document

Anuncio
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
Identificación de
Puntos Comunes
Framework
Aplicación C
Frozen y Hot Spots
Los “frozen spots” de un framework
son aquellos puntos de reutilización no
o mínimamente extensibles
Aplicación A
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 Gris
Framework de
Caja Negra
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
MVC, Action
controller
Struts
Freemaker,
Velocity
Frameworks de
presentación
Servlets
JSPs
Frameworks de
integración de
componentes
Pool de Objetos
Picocontainer
EJBs
Frameworks de
persistencia
IoC, POJO
Hibernate
JDBC
Mapeo ObjetoRelacional
iBatis
Spring
Framework JUnit
Basado en el patrón
Template Method
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
*.php
3
1
(Bytecode)
HTTP request
(PHP)
HTML
4
5
Client
HTTP response
(HTML)
Template
Engine
Web Server
(HTTP 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
Response
Request
Request
Request
Front
Controller
Controller
Action
Dispatcher
Response
Response
MVC en J2EE
response
request
Controller
(Servlet)
forward
View
(JSP)
update
Model
(JavaBean)
get
information
MVC en PHP (ej. Prado)
response
Controller
request (/pages/*.php)
forward
View
(/pages/*.page)
update
Model
(/data/*.php)
get
information
Frameworks en PHP
*
*
*
*
*
*
*
*
*
*
*
Frameworks en PHP
Web Application Component Toolkit
* Ismo
InterJinn
* Binarycloud
PhpMvc (StrutsPort)
* Sitellite
Phrame (StrutsPort)
* Mojavi
eocene (StrutsPort)
* LogiCreate
Ambivalence (MaverickPort)
* Medusa
?Krysalis (CocoonPort)
* Core Enterprise PHP
Popoon (CocoonPort)
* Tanjero Jive
eZPublish
* rwfphp
MVC8
* LIMB
SMART
* Horde
*
*
*
*
*
*
*
*
*
*
*
Prado
Copix
Booby
FastFrame
Seagull
FuseLogic
Studs (StrutsPort)
Cgiapp
Navigator
Castor
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:
http://pear.php.net/
•WACT:
http://www.phpwact.org/
•Prado:
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
#
1
2
3
4
5
6
7
8
9
10
Caracteristica
Documentación
Seguridad
Facilidad de uso
Internacionalización
Manejo de errores
Perfil
Curva de Aprendizaje
Madurez
Robustez adecuada
Escalabilidad
Peso
9
6
10
6
6
7
9
8
9
10
4. Calificación de cada Framework
#
1
2
3
4
5
6
7
8
9
10
Caracteristica
Documentación
Seguridad
Facilidad de uso
Internacionalización
Manejo de errores
Perfil
Curva de Aprendizaje
Madurez
Robustez adecuada
Escalabilidad
PEAR WACT Prado Peso
3
5
5
9
3
5
5
6
3
4
5
10
3
3
3
6
4
4
4
6
4
4
5
7
3
4
5
9
5
4
4
8
3
2
5
9
3
3
4
10
5. Computar y Seleccionar el Mejor
#
1
2
3
4
5
6
7
8
9
10
Caracteristica
Documentación
Seguridad
Facilidad de uso
Internacionalización
Manejo de errores
Perfil
Curva de Aprendizaje
Madurez
Robustez adecuada
Escalabilidad
Total
PEAR
3
3
3
3
4
4
3
5
3
3
269
27
18
30
18
24
28
27
40
27
30
WACT
5 45
5 30
4 40
3 18
4 24
4 28
4 36
4 32
2 18
3 30
301
Prado
Peso
5 45
9
5 30
6
5 50
10
3 18
6
4 24
6
5 35
7
5 45
9
4 32
8
5 45
9
4 40
10
364
¿ Preguntas y Respuestas ?
¡ Muchas Gracias !
Descargar