Documentos de Académico
Documentos de Profesional
Documentos de Cultura
06 Frameworks PDF
06 Frameworks PDF
Clase 6:
Frameworks
Hugo R. Cordero S.
Clase 1
Objetivos
2
1. Introducción
2. Definición de Framework
3. ¿Desarrollar o utilizar un framework?
4. Clasificación de los frameworks
5. Persistencia y frameworks de persistencia
Introducción
4
Patrones
Son estructuras reutilizables en la construcción de
aplicaciones, puede ser del tipo: arquitectónicos, de diseño,
dialectos o de código, entre otros.
Patrón de Diseño
Es una solución abstracta a un problema de diseño que
aparece muy frecuentemente, expresada mediante un
conjunto de relaciones e interacciones entre sus
componentes.
Introducción
5
Arquitectura de Software
Se define como la estructura o estructuras del sistema, la
cual comprende elementos de software, las propiedades
externas visibles de estos elementos, y las relaciones entre
ellos
La arquitectura define la estructura a través de
descomposición del sistema en componentes / módulos /
subsistemas
La comunicación de componentes involucra:
Mecanismos de traspaso de datos
Control del flujo dentro del sistema
Introducción
6
Diseño arquitectónico
Tiene como objetivo principal desarrollar una estructura del
sistema modular representando las relaciones de control
entre los módulos
Trata de no centrarse en los detalles y código de los
Estilos arquitectónicos
Expresan esquemas de organización estructural esencial
para un sistema de software, que consta de sub-sistemas,
sus responsabilidades e interrelaciones
Son una transformación que se impone al diseño de todo el
sistema
Algunos estilos:
¿Y framework?
En el cine, la TV y la literatura existe un concepto similar:
Framework
El término se podría traducir al español como armazón o
andamio, que viene a ser una estructura genérica que se
utiliza para colocar diversos elementos según sean
necesarios
¿Qué es un Framework?
10
patrones de diseño
Framework
12
Ventajas
Permite a los arquitectos y desarrolladores concentrar su
tiempo en lograr los requerimientos de la aplicación, en
lugar de tener que hacerlo en los detalles (infraestructura)
de bajo nivel necesarios para obtener un sistema funcional
Todo esto reduce el tiempo total de desarrollo de la
Ventajas
Un framework facilita el desarrollo de aplicaciones porque
generalmente este ya ha sido usado y probado en otros
sistemas, lo que reduce la probabilidad de introducir
errores accidentales en el sistema a desarrollar
Ejemplo:
Zonas Calientes
Los frameworks en si mismos no son usualmente ejecutables.
La idea es rellenar los “hot spots” necesarios para
satisfacer unos requerimientos particulares dentro de un
contexto de funcionamiento particular
El proceso anterior se llama “instanciación” del framework.
La instanciación si es ejecutable
Framework
19
Inversión de Control
¿Qué brinda un Framework?
23
Extensibilidad
Debe ser posible extender el framework, bien sea
sobrescribiendo cierto código o añadiendo algún tipo de
extensión (hook / gancho) o plug-in. Es decir, debe ser
posible cambiar el comportamiento por defecto pre-
definido en el framework. En general, los puntos de
extensión deben estar muy claros
Hook = Hotspot = Plug-point
Opción 1
Desarrollar desde cero (“from scratch”) y para esto es
necesario:
Definir la arquitectura del software
(arquitectura general, estilos arquitectónicos, etc.)
Codificar, validar y probar la arquitectura
Codificar la funcionalidad propia del software (aunque esto
algunas veces se hace mezclado con el paso anterior)
Encontrar errores y problemas en la arquitectura, refinar la
arquitectura, rehacer parte de la funcionalidad, hacer refactors
en el código, etc.
Utilización de Frameworks
32
Opción 2
Tomar una aplicación WEB que ya esté desarrollada y
adaptarla a las necesidades actuales de la aplicación
requerida:
Comprender la aplicación (framework) existente
Usar la arquitectura ya definida / refinada y codificar la
funcionalidad...
Esta opción en realidad no implica un framework en si mismo,
pero es una primera buena aproximación…
Utilización de Frameworks
33
Opción 3
Tomar una framework (para desarrollar aplicaciones WEB):
Frameworks de presentación
Struts, JSF, ADF, ICEFaces, Richfaces
Frameworks de componentes/servicios
Spring, Symfony, Zend, OSGi
Frameworks de persistencia
Hibernate, TopLink, iBatis, ADO.NET
Frameworks Web
Play, Ruby on Rails, CodeIgniter, Laravel, Silverlight, JavaFX
Frameworks JavaScript para aplicaciones web
Backbone.JS, AngularJS, Ember, NodeJS
Contenedores
39
Spring
Pico
NFactory
Persistencia
42
JDO
TopLink
Hibernate
iBATIS / MyBatis
EJB 2.1 al 3.0
JPA
Doctrine
ADO.NET Entity
JDO (Java Data Objects)
45
Conceptos
Entidad: objeto con las anotaciones adecuadas para realizar
la persistencia en la BD
POJO: Plain Old Java Object
fuente)
JPQL: Java Persistence Query Language
entidad
JPA
48
2 objetos principales
Los cuales se encargan de realizar la manipulación y
búsqueda de las entidades:
EntityManagerFactory
EntityManager
JPA
49
Ciclo de vida