Frameworks MVC para desarrollo de UITES

43
Unidad de Investigación en Telemedicina y e-Salud (UITES) Propuesta de adopción de tecnologías de desarrollo web en la UITES Frameworks MVC de desarrollo Jesús Cáceres Tello, Santiago Pérez Madrid, ISCIII, 08/06/2011

description

Propuesta para la adopción de tecnologías de desarrollo web en la UITES

Transcript of Frameworks MVC para desarrollo de UITES

Page 1: Frameworks MVC para desarrollo de UITES

Unidad de Investigación en Telemedicina y e-Salud (UITES)

Propuesta de adopción de tecnologías de desarrollo web en la UITES

Frameworks MVC de desarrollo

Jesús Cáceres Tello, Santiago PérezMadrid, ISCIII, 08/06/2011

Page 2: Frameworks MVC para desarrollo de UITES

2

Fram

ewor

ksM

VC d

e de

sarr

ollo

Índice

01 Las preguntas que nos debemos hacer…02 Introducción a los patrones de diseño03 El patrón MVC04 Definición de frameworks de desarrollo05 Aplicaciones web vs. Aplicaciones escritorio06 Frameworks MVC

06.01 Tecnología Java06.02 Tecnología PHP

07 ConclusionesANEXO: frameworks “web móviles”

Page 3: Frameworks MVC para desarrollo de UITES

3

Fram

ewor

ksM

VC d

e de

sarr

ollo

01 Las preguntas que nos debemos hacer…

Las decisiones tecnológicas, ¿afectan de igual manera al futuro de unproyecto?

¿Es acertado pensar en el desarrollo de software como una“commodity”?

¿Es asumible el coste de un cambio de tecnología en la fase dedesarrollo de un proyecto?

¿Qué coste tendrá el mantenimiento del software?

¿Es eficiente rehacer una y otra vez soluciones ya desarrolladas enotros proyectos?

Page 4: Frameworks MVC para desarrollo de UITES

4

Fram

ewor

ksM

VC d

e de

sarr

ollo

Máxima: no reinventar la rueda

Definición: Un patrón de diseño es una solución a un problema dediseño en un determinado contexto.

02 Introducción a los patrones de diseño

No pertenecen a un determinado lenguaje de programación, aunque se suelenrepresentar en notación UML (-> Orientación a Objetos).

Se clasifican en –sin ser una lista cerrada-:– Patrones de creación– Patrones estructurales– Patrones de comportamiento– Patrones de partición– Patrones de concurrencia– Etc.

Tienen su raíz en la reutilización del software

Reducción de tiempos de desarrollo*

Facilidad de mantenimiento

Eficiencia

Consistencia

Fiabilidad

*El 80% del esfuerzo en la fase de desarrollo esta en el 20% del código desarrollado

Page 5: Frameworks MVC para desarrollo de UITES

5

Fram

ewor

ksM

VC d

e de

sarr

ollo

Objetivo: independizar la visualización del negocio

Definición: MVC* (Model/View/Controler) es un patrón de arquitecturade software que separa los datos de una aplicación, la interfaz deusuario, y la lógica de control en tres componentes distintos.

03 El patrón MVC

COMPONENTES DEL PATRÓN MVC

Modelo: contiene los datos gestionados por la aplicación y las lógicas de negocio.

Vista: presenta el modelo en un formato adecuado para interactuar (usualmente es la interfaz de usuario).

Controlador: responde a eventos -normalmente acciones del usuario-, e invoca peticiones al modelo y, probablemente, a la vista.

*Descrito por primera vez en 1979 por Trygve Reenskaug, e implementado por Steve Burbeck en su artículo “Programación de Aplicaciones en Smalltalk-80(TM): Como utilizar Modelo Vista Controlador”.

Page 6: Frameworks MVC para desarrollo de UITES

6

Fram

ewor

ksM

VC d

e de

sarr

ollo

Reutilización de softwareDefinición: Un framework proporciona una guía arquitectónica para

dividir el diseño en módulos y definir sus responsabilidades ycolaboraciones.

04 Definición de frameworks de desarrollo

Dependencia del código desarrollado a ese framework

Recursos hardware necesarios

Curva de aprendizaje

DESVENTAJASVENTAJAS

Desarrollo rápidoReutilización de softwareDiseño uniformeCuatro cuatro cuatro cuatro

Un framework puede implementar uno o varios patrones de diseño (p.e. MVC),o ninguno…

Existen frameworks para ámbitos específicos: web services, web dinámica(con AJAX), procesos de negocio (BPMS), etc.

Los frameworks se encargan de los pequeños detalles permitiendo alprogramador dedicar más tiempo y esfuerzos a las partes realmenteimportantes de las aplicaciones. Es decir, permiten no destinar mucho tiempoa realizar tareas repetitivas que aportan escaso o nulo valor a las aplicaciones.

Page 7: Frameworks MVC para desarrollo de UITES

7

Fram

ewor

ksM

VC d

e de

sarr

ollo

¿Por qué todo tiende al “Cloud computing” y al “SaaS”?

Todos los usuarios utilizan siempre la última versión. No requiere instalación para los usuarios. Accesible desde cualquier equipo sin preinstalación de ningún

componente (a excepción de los necesarios en el navegador). Favorece la movilidad no dependiendo del SO en el que se ejecute. Seguridad en la aplicación. En línea con la Web 2.0 Mayor fiabilidad al tratarse de un browser en vez de una ventana de

escritorio. Se puede medir fácilmente lo que están haciendo los usuarios (tipos

de acciones, tiempos, etc...) Los datos están centralizados. Mayor facilidad en el soporte de

la aplicación.

05 Aplicaciones web vs. Aplicaciones escritorio

Page 8: Frameworks MVC para desarrollo de UITES

8

Fram

ewor

ksM

VC d

e de

sarr

ollo

Frameworks con orientación webExisten muchos frameworks en el mercado que implementan el patrón MVC y con

diferentes tecnologías. La siguiente lista procede de Wikipedia*:

06 Frameworks MVC

*Frameworks MVC en Wikipedia: http://es.wikipedia.org/wiki/Modelo_Vista_Controlador

Page 9: Frameworks MVC para desarrollo de UITES

9

Fram

ewor

ksM

VC d

e de

sarr

ollo

Visión general del proyecto05.01 Frameworks MVC. Tecnología Java. Struts

Page 10: Frameworks MVC para desarrollo de UITES

10

Fram

ewor

ksM

VC d

e de

sarr

ollo

EL MODELO05.01 Frameworks MVC. Tecnología Java. Struts

Page 11: Frameworks MVC para desarrollo de UITES

11

Fram

ewor

ksM

VC d

e de

sarr

ollo

05.01 Frameworks MVC. Tecnología Java. StrutsLA VISTA

Page 12: Frameworks MVC para desarrollo de UITES

12

Fram

ewor

ksM

VC d

e de

sarr

ollo

EL CONTROLADOR I: El gestor de acciones05.01 Frameworks MVC. Tecnología Java. Struts

Archivo de configuración de Struts.

SECCIONES DE struts-config.xml

<form-beans> : Contiene las definiciones de los beans.

Se define un elemento <form-beans> por cada bean de formulario,

Tiene los siguientes atributos importantes:

Name: Identificador único para referenciarlo en los mapeos de acciones

Type: ruta completa de la clase Java del bean de formulario

<action-mappings>: Contiene las definiciones de acciones

Se utiliza un elemento <action> por cada acción.

Se definen los siguientes atributos :

Path: nombre de la clase action en relación al contexto de la aplicación

Type: ruta completa de la clase Java de la clase Action

Name: nombre del <form-bean> para usar con esta action, si corresponde

Forward: ruta del archivo de la vista (JSP) a llamar

Page 13: Frameworks MVC para desarrollo de UITES

13

Fram

ewor

ksM

VC d

e de

sarr

ollo

EL CONTROLADOR II: El fichero struts-config.xml

Page 14: Frameworks MVC para desarrollo de UITES

14

Fram

ewor

ksM

VC d

e de

sarr

ollo

EL CONTROLADOR III: Las clases Action

Una clase Action de una aplicación Struts extiende a la clase org.apache.struts.action.Action.

Una clase Action actúa como un envoltorio para la lógica de negocio y provee una interfaz al modelo.

Es el mediador entre la vista y el Modelo, ya que transmite los datos desde la Vista hacia el proceso específico del modelo y retorna los resultados en sentido contrario.

05.01 Frameworks MVC. Tecnología Java. Struts

Sobrecarga del método execute()

public ActionForward execute( ActionMapping mapping, ActionForm form, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response

) throws java.lang.Exception

Parámetros del método execute()

mapping: El ActionMapping usado paraseleccionar esta instancia

form - ActionForm bean para estapetición, si existe

request - La petición HTTP que se estáprocesando

response - La respuesta HTTP que se está creando.

Page 15: Frameworks MVC para desarrollo de UITES

15

Fram

ewor

ksM

VC d

e de

sarr

ollo

EL CONTROLADOR IV: Ejemplo Action05.01 Frameworks MVC. Tecnología Java. Struts

Page 16: Frameworks MVC para desarrollo de UITES

16

Fram

ewor

ksM

VC d

e de

sarr

ollo

EL CONTROLADOR V: Las clase ActionForm05.01 Frameworks MVC. Tecnología Java. Struts

Un ActionForm es un JavaBean que se extiende org.apache.struts.action.ActionForm.

Una de las tareas que consume mucho trabajo es la interacción con formularios, ya sea para editar u obtener nueva información.

Las comprobaciones, la gestión de errores, el volver a presentar el mismo form al usuario con los valores que puso y los mensajes de error están soportados por Struts con los Action Forms y JSP.

Implementa los métodos get y set para cada input de un formulario de una página, y los métodos validate y reset.

Sobrecarga del método validate()

public ActionErrors validate(ActionMappingmapping,HttpServletRequest request) { }

Parámetros del método validate()

mapping: El ActionMapping usado paraseleccionar esta instancia

request - La petición HTTP que se estáprocesando

Page 17: Frameworks MVC para desarrollo de UITES

17

Fram

ewor

ksM

VC d

e de

sarr

ollo

EL CONTROLADOR VI: Ejemplo ActionForm05.01 Frameworks MVC. Tecnología Java. Struts

Page 18: Frameworks MVC para desarrollo de UITES

18

Fram

ewor

ksM

VC d

e de

sarr

ollo

Resultado Final05.01 Frameworks MVC. Tecnología Java. Struts

Page 19: Frameworks MVC para desarrollo de UITES

19

Fram

ewor

ksM

VC d

e de

sarr

ollo

Introducción a JSF

Es posterior a Struts Está basado en componentes UI (User Interface) Utiliza JSP para el despliegue de páginas Asocia cada componente gráfico a los datos (beans de

respaldo) La capa de control está definida por un archivo XML=> control

de eventos y errores Validación en cliente y en servidor …

05.01 Frameworks MVC. Tecnología Java. JSF

Enlaces de interés

http://www.sicuma.uma.es/sicuma/Formacion/documentacion/JSF.pdfhttp://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=EclipseJSFhttp://www.proactiva-calidad.com/java/jsf/index.htmlhttp://www.coreservlets.com/JSF-Tutorial/http://www.desarrolloweb.com/articulos/2380.phphttp://www.desarrolloweb.com/articulos/2404.phphttp://blog.jotadeveloper.com/2008/09/07/ejemplo-richfaces-jsf/

CONTROLADOR VISTA MODELOWEB SERVICES

BASES DE DATOS…

Vista Inicial

Invocar vistasSolicitar datos

Obtener datos

Recuperar datos

Actualización de

contenidos

Page 20: Frameworks MVC para desarrollo de UITES

20

Fram

ewor

ksM

VC d

e de

sarr

ollo

Visión general del proyecto05.01 Frameworks MVC. Tecnología Java. JSF

MODELOVISTA

CONTROLADOR

Page 21: Frameworks MVC para desarrollo de UITES

21

Fram

ewor

ksM

VC d

e de

sarr

ollo

EL MODELO05.01 Frameworks MVC. Tecnología Java. JSF

Page 22: Frameworks MVC para desarrollo de UITES

22

Fram

ewor

ksM

VC d

e de

sarr

ollo

LA VISTA05.01 Frameworks MVC. Tecnología Java. JSF

Page 23: Frameworks MVC para desarrollo de UITES

23

Fram

ewor

ksM

VC d

e de

sarr

ollo

EL CONTROLADOR05.01 Frameworks MVC. Tecnología Java. JSF

Page 24: Frameworks MVC para desarrollo de UITES

24

Fram

ewor

ksM

VC d

e de

sarr

ollo

Características I

Requiere Java 5 Máxima productividad:

– no es necesario ni compilar ni desplegar ni reinicir el contenedor web.

– Dispone de un cargador de clases propio

05.01 Frameworks MVC. Tecnología Java. Play

Page 25: Frameworks MVC para desarrollo de UITES

25

Fram

ewor

ksM

VC d

e de

sarr

ollo

Características II

Completamente stateless (sin estado): La información de sesión se guarda en coockies.

Fundamentado en HTTP, permite desarrollar aplicaciones RESTfull

Dispone de un motor de plantillas basado en Groovy:– Herencia entre plantillas (layout heredando de layout)

Integración con JDBC o JPA e Hibernate No es JavaEE

05.01 Frameworks MVC. Tecnología Java. Play

Page 26: Frameworks MVC para desarrollo de UITES

26

Fram

ewor

ksM

VC d

e de

sarr

ollo

Instalación

http://www.playframework.org/download

05.01 Frameworks MVC. Tecnología Java. Play

Page 27: Frameworks MVC para desarrollo de UITES

27

Fram

ewor

ksM

VC d

e de

sarr

ollo

HelloWorld con Play05.01 Frameworks MVC. Tecnología Java. Play

Page 28: Frameworks MVC para desarrollo de UITES

28

Fram

ewor

ksM

VC d

e de

sarr

ollo

Symfony – Principales características (I)06.02 Frameworks MVC. Tecnología PHP.

Desarrollado con PHP 5, compatible con la mayoría de gestores de bases de datos(MySQL, PostgreSQL, Oracle y SQL Server) y multiplataforma (Unix, Linux, Windows).

El desarrollador solo debe configurar aquello que no es convencional.

Symfony automatiza la mayoría de elementos comunes de los proyectos web, como porejemplo:

Posee una capa de internacionalización para la traducción de los datos y de lainterfaz, así como la adaptación local de los contenidos.

La capa de presentación utiliza plantillas y layouts que pueden ser creados pordiseñadores HTML sin ningún tipo de conocimiento del framework.

Los formularios incluyen validación automatizada y relleno automático de datos("repopulation").

La gestión de la caché reduce el ancho de banda utilizado y la carga del servidor. Autenticación y gestión de credenciales. Sistema de enrutamiento y URL limpias optimizadas para los buscadores. Soporte de e-mail incluido. Listados con paginación automatizada, el filtrado y la ordenación de datos. Interacciones con Ajax fáciles de implementar mediante helpers. Integración con PEAR (PHP Extension and Application Repository), un sistema de

distribución para componentes PHP reutilizables".

Page 29: Frameworks MVC para desarrollo de UITES

29

Fram

ewor

ksM

VC d

e de

sarr

ollo

Symfony – Principales características (II)06.02 Frameworks MVC. Tecnología PHP.

Mapeo de Objetos a Bases de datos (ORM - object-relational mapping). Transforma automáticamente lasllamadas a los objetos en consultas SQL optimizadas para el sistema gestor de bases de datos que se estáutilizando en cada momento. Utiliza Phing, una utilidad que usa Propel para generar las clases del modelo.

Desarrollo rápido de aplicaciones (RAD – Rapid Application Development).

Utiliza YAML para configurar cualquier elemento. Es un formato para serializar datos que es fácil deprocesar por las máquinas, fácil de leer para las personas y fácil de interactuar con los lenguajes de script.

El proyecto se estructura en: aplicaciones, módulos y acciones– Proyecto: “Un conjunto de servicios y operaciones disponibles bajo un determinado nombre de

dominio y que comparten el mismo modelo de objetos". Contiene una o más aplicaciones.– Aplicación: “Agrupación lógica de operaciones. Se compone de uno o más módulos.”– Módulo: “Representa a una página web o a un grupo de páginas con un propósito relacionado (p.e.

alta de usuario, carrito de la compra, etc.). Se compone de una o más acciones”.– Acción: “Representa cada una de las operaciones que se puede realizar en un módulo (p.e. el

módulo carrito de la compra puede definir acciones como añadir, mostrar y actualizar).”

Page 30: Frameworks MVC para desarrollo de UITES

30

Fram

ewor

ksM

VC d

e de

sarr

ollo

Symfony – Estructura de un proyecto06.02 Frameworks MVC. Tecnología PHP.

apps/ -> Contiene un directorio por cada aplicación del proyecto.frontend/

backend/

cache/ -> Versión cacheada de la configuración, acciones y plantillas.config/ -> Configuración general del proyecto.data/ -> Archivos relacionados con los datos (p.e. el esquema de la BBDD, SQLs, etc.).

sql/

doc/ -> Documentación del proyecto generada con PHPdoc.lib/ -> Almacena las clases y librerías externas.

model/ -> Almacena el modelo de objetos del proyecto.log/

plugins/ -> Almacena los plugins instalados en la aplicación.test/ -> Pruebas unitarias y funcionales escritas en PHP.

bootstrap/

unit/

functional/

web/ -> Raíz del servidor web, único directorio accesible desde el exteriorcss/

images/

js/

uploads/

La raíz de un proyecto Symfony tiene los siguientes directorios:

Page 31: Frameworks MVC para desarrollo de UITES

31

Fram

ewor

ksM

VC d

e de

sarr

ollo

Symfony – Estructura de una aplicación y de un módulo06.02 Frameworks MVC. Tecnología PHP.

[nombre_app]/ -> Raíz de la aplicación.config/ -> Archivos YAML de configuración de la aplicación.i18n/ -> Archivos de internacionalización.lib/ -> Clases y librerías externas utilizadas por la aplicación.modules/ -> Módulos de la aplicación.templates/ -> Plantillas globales de la aplicación.

layout.php -> Layout principal con el que se muestras las plantillas de los módulos

La raíz de una aplicación tiene los siguientes directorios:

La raíz de un módulo tiene los siguientes directorios:

[nombre_modulo]/ -> Raíz del módulo.actions/ -> Acciones del módulo.

action.class.php -> Archivos con el código de la(s) acción(es). Puede haber varios.config/ -> Archivos de configuración del módulo.lib/ -> Clases y librerías externas utilizadas por el módulo.templates/ -> Plantillas correspondientes a las acciones del módulo.

indexSuccess.php

Page 32: Frameworks MVC para desarrollo de UITES

32

Fram

ewor

ksM

VC d

e de

sarr

ollo

Symfony – Ejemplo “Mostrar artículos de una BBDD” (I)06.02 Frameworks MVC. Tecnología PHP.

Código PHP sin ningún framework:

<?php// Conectar con la base de datos y seleccionarla$conexion = mysql_connect('localhost', 'miusuario', 'micontrasena');mysql_select_db('blog_db', $conexion);

// Ejecutar la consulta SQL$resultado = mysql_query('SELECT fecha, titulo FROM articulo', $conexion);

?>

<html><head>

<title>Listado de Artículos</title></head><body>

<h1>Listado de Artículos</h1><table>

<tr><th>Fecha</th><th>Titulo</th></tr><?php

// Mostrar los resultados con HTMLwhile ($fila = mysql_fetch_array($resultado, MYSQL_ASSOC)){

echo "\t<tr>\n";printf("\t\t<td> %s </td>\n", $fila['fecha']);printf("\t\t<td> %s </td>\n", $fila['titulo']);echo "\t</tr>\n";

}?>

</table></body>

</html>

<?php// Cerrar la conexionmysql_close($conexion);

?>

Sólo funciona si la BBDD es MySQL

No existe protección frente a errores

Resultado: Aplicación difícil de mantener y

actualizar

HTML y PHP entrelazado

Page 33: Frameworks MVC para desarrollo de UITES

33

Fram

ewor

ksM

VC d

e de

sarr

ollo

Symfony – Ejemplo “Mostrar artículos de una BBDD” (II)06.02 Frameworks MVC. Tecnología PHP.

Código PHP, primera aproximación al MVC:

<?php

function getTodosLosArticulos(){// Conectar con la base de datos y seleccionarla$conexion = mysql_connect('localhost', 'miusuario', 'micontrasena');mysql_select_db('blog_db', $conexion);

// Ejecutar la consulta SQL$resultado = mysql_query('SELECT fecha, titulo FROM articulo', $conexion);

// Crear el array de elementos para la capa de la vista$articulos = array();while ($fila = mysql_fetch_array($resultado, MYSQL_ASSOC)){

$articulos[] = $fila;}

// Cerrar la conexiónmysql_close($conexion);

return $articulos;}?>

modelo.php

<html><head>

<title>Listado de Artículos</title></head><body>

<h1>Listado de Artículos</h1><table>

<tr><th>Fecha</th><th>Título</th></tr><?php foreach ($articulos as $articulo): ?>

<tr><td><?php echo $articulo['fecha'] ?></td><td><?php echo $articulo['titulo'] ?></td>

</tr><?php endforeach; ?></table>

</body></html>

vista.php

<?php

// Incluir la lógica del modelorequire_once('modelo.php');

// Obtener la lista de artículos$articulos = getTodosLosArticulos();

// Incluir la lógica de la vistarequire('vista.php');

?>

index.php (controlador)

Page 34: Frameworks MVC para desarrollo de UITES

34

Fram

ewor

ksM

VC d

e de

sarr

ollo

Symfony – Ejemplo “Mostrar artículos de una BBDD” (III)06.02 Frameworks MVC. Tecnología PHP.

Código PHP, segunda aproximación al MVC:

Layout de la vistavista.php

<html><head>

<title><?php echo $titulo ?></title></head><body>

<?php echo $contenido ?></body>

</html>

Modelo (abstracción de la BBDD)modelo.php

<?phpfunction crear_conexion($servidor, $usuario, $contrasena){

return mysql_connect($servidor, $usuario, $contrasena);}function cerrar_conexion($conexion){

mysql_close($conexion);}function consulta_base_de_datos($consulta, $base_datos, $conexion){

mysql_select_db($base_datos, $conexion);return mysql_query($consulta, $conexion);

}function obtener_resultados($resultado){

return mysql_fetch_array($resultado, MYSQL_ASSOC);}

function getTodosLosArticulos(){

// Conectar con la base de datos$conexion = crear_conexion('localhost', 'miusuario', 'micontrasena');

// Ejecutar la consulta SQL$resultado = consulta_base_de_datos('SELECT fecha, titulo FROM articulo',

'blog_db', $conexion);

// Crear el array de elementos para la capa de la vista$articulos = array();while ($fila = obtener_resultados($resultado)){

$articulos[] = $fila;}

// Cerrar la conexióncerrar_conexion($conexion);return $articulos;

}?>

Modelo (acceso a datos)modelo.php

<?php

// Incluir la lógica del modelorequire_once('modelo.php');

// Obtener la lista de artículos$articulos = getTodosLosArticulos();

// Incluir la lógica de la vistarequire('vista.php');

?>

Controladorindex.php

<?php

$titulo = 'Listado de Artículos';$contenido = include('miplantilla.php');

?>

Lógica de la vistavista.php

Plantilla de la vistamiplantilla.php

<h1>Listado de Artículos</h1><table><tr><th>Fecha</th><th>Título</th></tr><?php foreach ($articulos as $articulo): ?><tr>

<td><?php echo $articulo['fecha'] ?></td><td><?php echo $articulo['titulo'] ?></td>

</tr><?php endforeach; ?></table>

Page 35: Frameworks MVC para desarrollo de UITES

35

Fram

ewor

ksM

VC d

e de

sarr

ollo

←Symfony crea uno por defecto

←“Creole” lo hace automáticamente←“Propel” genera las clases del modelo

Symfony – Ejemplo “Mostrar artículos de una BBDD” (III)06.02 Frameworks MVC. Tecnología PHP.

Una programación correcta incluiría la realización de los siguientes scripts en cada capa:

La capa del Modelo– Abstracción de la base de datos– Acceso a los datos

La capa de la Vista– Layout– Lógica de la vista– Plantilla

La capa del Controlador– Controlador frontal– Acción

Page 36: Frameworks MVC para desarrollo de UITES

36

Fram

ewor

ksM

VC d

e de

sarr

ollo

Symfony – Ejemplo “Mostrar artículos de una BBDD” (IV)06.02 Frameworks MVC. Tecnología PHP.

Una programación correcta incluiría la realización de los siguientes scripts en cada capa:

La capa del Modelo– Abstracción de la base de datos– Acceso a los datos

La capa de la Vista– Layout– Lógica de la vista– Plantilla

La capa del Controlador– Controlador frontal– Acción

miproyecto/apps/miaplicacion/modules/weblog/actions/actions.class.php

<?phpclass weblogActions extends sfActions{public function executeListado(){

$this->articulos = ArticuloPeer::doSelect(new Criteria());}

}

?>

miproyecto/apps/miaplicacion/modules/weblog/templates/listadoSuccess.php

<h1>Listado de Artículos</h1><table><tr><th>Fecha</th><th>Título</th></tr><?php foreach ($articulos as $articulo): ?><tr>

<td><?php echo $articulo->getFecha() ?></td><td><?php echo $articulo->getTitulo() ?></td>

</tr><?php endforeach; ?></table>

miproyecto/apps/miaplicacion/templates/layout.php

<html><head>

<?php echo include_title() ?></head><body>

<?php echo $sf_data->getRaw('sf_content') ?></body>

</html>

miproyecto/apps/miaplicacion/modules/weblog/config/view.yml

listadoSuccess:metas: { title: Listado de Artículos }

Page 37: Frameworks MVC para desarrollo de UITES

37

Fram

ewor

ksM

VC d

e de

sarr

ollo

No desaprovechemos millones de años de evolución…La rueda ya fue inventada.

Los frameworks permiten que nos centremos más en el desarrollo del“negocio” y menos en los detalles que no aportan valor (aunque seanimprescindibles).

Se debe buscar el punto de equilibrio entre elcoste de utilización/aprendizaje de un frameworky el coste del uso/mantenimiento posterior.

La “reutilización” y la “modularización” deben estar presentes desde el primermomento en el que comience el diseño de una aplicación.

07Conclusiones

Page 38: Frameworks MVC para desarrollo de UITES

38

Fram

ewor

ksM

VC d

e de

sarr

ollo

Anexo: frameworks “web móviles” (I) Están basados en html 5 y css3

Symbian, Windows Phone 7, IOS, Android, Blackberry, etc…

Desarrollos orientados a sistemas de información y no ajuegos

Algunos de ellos son:

JQuery Mobile Sencha Touch DHTMLX Touch Jo HTML5

Page 39: Frameworks MVC para desarrollo de UITES

39

Fram

ewor

ksM

VC d

e de

sarr

ollo

jQuery Mobile Desarrollado por Team jQuery Permite utilizar Ajax Facilidad en la transición de páginas. Themes.

Anexo: frameworks “web móviles” (II)

A: Alta CompatibilidadB: Mediana CompatibilidadC: Baja Compatibilidad

Page 40: Frameworks MVC para desarrollo de UITES

40

Fram

ewor

ksM

VC d

e de

sarr

ollo

Sencha Touch

Conjunto de librerías de widgets de usuario, control paraeventos táctiles

Permite la introducción de video y audio Dispone de proxy local para guardar datos sin conexión Petición de datos mediante Ajax, Jsonp o YQL

Anexo: frameworks “web móviles” (III)

Page 41: Frameworks MVC para desarrollo de UITES

41

Fram

ewor

ksM

VC d

e de

sarr

ollo

DHTMLX Touch

Librería de HTML5 y JavaScript

Es gratuita con licencia GPL

Dispone de un entorno de programación visual

Anexo: frameworks “web móviles” (IV)

Page 42: Frameworks MVC para desarrollo de UITES

42

Fram

ewor

ksM

VC d

e de

sarr

ollo

Enlaces de interés jQuery Mobiles

– http://www.jqmgallery.com/– http://wwwhatsnew.com/2011/03/31/introduccion-a-jquery-mobile/– http://www.baluart.net/articulo/ejemplo-de-aplicacion-web-movil-con-

jquery-mobile– http://geeks.ms/blogs/gperez/archive/2010/10/22/tutorial-creando-una-

app-con-jquery-mobile-webmatrix-y-razor.aspx

Sencha Touch– http://www.sencha.com/products/touch/– http://dev.sencha.com/deploy/touch/getting-started.html– http://miamicoder.com/2010/creating-sencha-touch-toolbar-buttons/– http://mobile.tutsplus.com/articles/news/sencha-touch-html5-mobile-

framework/– http://www.slideshare.net/davidkaneda/sencha-touch-workshop

DHTMLX Touch– http://www.dhtmlx.com/index.shtml

Anexo: frameworks “web móviles” (V)

Page 43: Frameworks MVC para desarrollo de UITES

Unidad de Investigación en Telemedicina y e-SaludAvda. Monforte de Lemos, 528029 - Madrid. España

www.isciii.es

Gracias por su atención

Jesús Cáceres [email protected]: +34 918 222 479

Santiago Pérez de la Cá[email protected]: +34 918 222 572