Catalyst: Framework para el desarrollo de aplicaciones Web · Que es un Framework • Es una...
Transcript of Catalyst: Framework para el desarrollo de aplicaciones Web · Que es un Framework • Es una...
![Page 1: Catalyst: Framework para el desarrollo de aplicaciones Web · Que es un Framework • Es una estructura de soporte definida ... (XP, Scrum, AD,...) Patrón MVC • Modelo • Vista](https://reader033.fdocument.pub/reader033/viewer/2022043013/5fac827f13de6a1a2b7d0af5/html5/thumbnails/1.jpg)
Catalyst: Framework para el desarrollo de aplicaciones Web
Esteban Saavedra Lopez
email: [email protected]://jesaavedra.opentelematics.org
![Page 2: Catalyst: Framework para el desarrollo de aplicaciones Web · Que es un Framework • Es una estructura de soporte definida ... (XP, Scrum, AD,...) Patrón MVC • Modelo • Vista](https://reader033.fdocument.pub/reader033/viewer/2022043013/5fac827f13de6a1a2b7d0af5/html5/thumbnails/2.jpg)
Agenda
• Introducción• Patron MVC• Catalyst• Demostración• Conclusiones
![Page 3: Catalyst: Framework para el desarrollo de aplicaciones Web · Que es un Framework • Es una estructura de soporte definida ... (XP, Scrum, AD,...) Patrón MVC • Modelo • Vista](https://reader033.fdocument.pub/reader033/viewer/2022043013/5fac827f13de6a1a2b7d0af5/html5/thumbnails/3.jpg)
Que es un Framework
• Es una estructura de soporte definida en la cual otro proyecto de software puede ser organizado y desarrollado.• Se han convertido en la piedra
angular de la moderna ingeniería del software• Es una estructura software
compuesta de componentes personalizables e intercambiables para el desarrollo de una aplicación.
![Page 4: Catalyst: Framework para el desarrollo de aplicaciones Web · Que es un Framework • Es una estructura de soporte definida ... (XP, Scrum, AD,...) Patrón MVC • Modelo • Vista](https://reader033.fdocument.pub/reader033/viewer/2022043013/5fac827f13de6a1a2b7d0af5/html5/thumbnails/4.jpg)
Cual el objetivo de un framework?
• Desarrollo rápido y estructurado• Reutilización de código• Disminuir el esfuerzo en el desarrollo
(Nos concentramos directamente en la solución del problema)• Aprovechamos las funcionalidades ya
implementadas.• Tener como aliado a las metodología
de desarrollo Ágiles(XP, Scrum, AD,...)
![Page 5: Catalyst: Framework para el desarrollo de aplicaciones Web · Que es un Framework • Es una estructura de soporte definida ... (XP, Scrum, AD,...) Patrón MVC • Modelo • Vista](https://reader033.fdocument.pub/reader033/viewer/2022043013/5fac827f13de6a1a2b7d0af5/html5/thumbnails/5.jpg)
Patrón MVC
• Modelo• Vista• Controlador
![Page 6: Catalyst: Framework para el desarrollo de aplicaciones Web · Que es un Framework • Es una estructura de soporte definida ... (XP, Scrum, AD,...) Patrón MVC • Modelo • Vista](https://reader033.fdocument.pub/reader033/viewer/2022043013/5fac827f13de6a1a2b7d0af5/html5/thumbnails/6.jpg)
Que es Catalyst?
• Es un framework para el desarrollo de aplicaciones web.• Es la respuesta de Perl para Ruby on
Rails.• Permite el desarrollo de aplicaciones
web de forma rápida.
![Page 7: Catalyst: Framework para el desarrollo de aplicaciones Web · Que es un Framework • Es una estructura de soporte definida ... (XP, Scrum, AD,...) Patrón MVC • Modelo • Vista](https://reader033.fdocument.pub/reader033/viewer/2022043013/5fac827f13de6a1a2b7d0af5/html5/thumbnails/7.jpg)
Filosofía de Catalayst
• Reutilización de código.• Desarrollar aplicaciones web de
forma rápida, sencilla y divertida.• Utilizar los mejores componentes
actualmente disponibles.• Combinar todo en un paquete fácil de
usar.
![Page 8: Catalyst: Framework para el desarrollo de aplicaciones Web · Que es un Framework • Es una estructura de soporte definida ... (XP, Scrum, AD,...) Patrón MVC • Modelo • Vista](https://reader033.fdocument.pub/reader033/viewer/2022043013/5fac827f13de6a1a2b7d0af5/html5/thumbnails/8.jpg)
Por que Catalyst?
• Se basa en el patrón MVC.• Tiene todo lo necesario para
desarrollar aplicaciones Web.• Soporta Ajax.• Posee buena documentaci ón.• Es multiplataforma.• Posee una numerosa comunidad de
desarrolladores y usuarios• Inspirado en Ruby on Rails (Padrino
de la mayoría de los Frameworks)
![Page 9: Catalyst: Framework para el desarrollo de aplicaciones Web · Que es un Framework • Es una estructura de soporte definida ... (XP, Scrum, AD,...) Patrón MVC • Modelo • Vista](https://reader033.fdocument.pub/reader033/viewer/2022043013/5fac827f13de6a1a2b7d0af5/html5/thumbnails/9.jpg)
Componentes de Catalyst
• Todos sus componentes se encuentran en CPAN
![Page 10: Catalyst: Framework para el desarrollo de aplicaciones Web · Que es un Framework • Es una estructura de soporte definida ... (XP, Scrum, AD,...) Patrón MVC • Modelo • Vista](https://reader033.fdocument.pub/reader033/viewer/2022043013/5fac827f13de6a1a2b7d0af5/html5/thumbnails/10.jpg)
Instalación de Catalyst
• Debian, Ubuntu,...> $ apt-get install libcatalyst-perl
• CPAN> $ cpan Catalyst::Runtime Catalyst::Devel
![Page 11: Catalyst: Framework para el desarrollo de aplicaciones Web · Que es un Framework • Es una estructura de soporte definida ... (XP, Scrum, AD,...) Patrón MVC • Modelo • Vista](https://reader033.fdocument.pub/reader033/viewer/2022043013/5fac827f13de6a1a2b7d0af5/html5/thumbnails/11.jpg)
Estructura de un proyecto de Catalyst
• Catalyst proporciona una estructura jerárquica:> Proyecto> Aplicación> Módulo> Acción> Vista
![Page 12: Catalyst: Framework para el desarrollo de aplicaciones Web · Que es un Framework • Es una estructura de soporte definida ... (XP, Scrum, AD,...) Patrón MVC • Modelo • Vista](https://reader033.fdocument.pub/reader033/viewer/2022043013/5fac827f13de6a1a2b7d0af5/html5/thumbnails/12.jpg)
Creación de un proyecto
• Creamos proyecto> $ catalyst.pl proyecto
• Ingresamos al directorio del proyecto.> $ cd proyecto
• Ejecutamos el servidor de pruebas> $ perl script/proyecto_server.pl
![Page 13: Catalyst: Framework para el desarrollo de aplicaciones Web · Que es un Framework • Es una estructura de soporte definida ... (XP, Scrum, AD,...) Patrón MVC • Modelo • Vista](https://reader033.fdocument.pub/reader033/viewer/2022043013/5fac827f13de6a1a2b7d0af5/html5/thumbnails/13.jpg)
Que generó esto?
• Una estructura jerárquica de directorios
![Page 14: Catalyst: Framework para el desarrollo de aplicaciones Web · Que es un Framework • Es una estructura de soporte definida ... (XP, Scrum, AD,...) Patrón MVC • Modelo • Vista](https://reader033.fdocument.pub/reader033/viewer/2022043013/5fac827f13de6a1a2b7d0af5/html5/thumbnails/14.jpg)
Pasos para crear un proyecto
1Crear el proyecto2Crear los dominios del proyecto3Generar los CRUDs4Adecuar los templates (CSS y/o
JavaScript)5Publicar la Aplicación
![Page 15: Catalyst: Framework para el desarrollo de aplicaciones Web · Que es un Framework • Es una estructura de soporte definida ... (XP, Scrum, AD,...) Patrón MVC • Modelo • Vista](https://reader033.fdocument.pub/reader033/viewer/2022043013/5fac827f13de6a1a2b7d0af5/html5/thumbnails/15.jpg)
Adecuaciones
• Una vez generada gran parte del proyecto (forma muy general), se puede proceder a realizar adecuaciones en:> Controlador (actions)> Vistas (templates)> Formas de acceso en las URL (routing )> Validación de formularios> Efectos especiales
![Page 16: Catalyst: Framework para el desarrollo de aplicaciones Web · Que es un Framework • Es una estructura de soporte definida ... (XP, Scrum, AD,...) Patrón MVC • Modelo • Vista](https://reader033.fdocument.pub/reader033/viewer/2022043013/5fac827f13de6a1a2b7d0af5/html5/thumbnails/16.jpg)
Demostración
![Page 17: Catalyst: Framework para el desarrollo de aplicaciones Web · Que es un Framework • Es una estructura de soporte definida ... (XP, Scrum, AD,...) Patrón MVC • Modelo • Vista](https://reader033.fdocument.pub/reader033/viewer/2022043013/5fac827f13de6a1a2b7d0af5/html5/thumbnails/17.jpg)
Crear un proyecto
• /usr/bin/catalyst.pl Gestion
![Page 18: Catalyst: Framework para el desarrollo de aplicaciones Web · Que es un Framework • Es una estructura de soporte definida ... (XP, Scrum, AD,...) Patrón MVC • Modelo • Vista](https://reader033.fdocument.pub/reader033/viewer/2022043013/5fac827f13de6a1a2b7d0af5/html5/thumbnails/18.jpg)
Crear una vista genérica
• perl script/gestion_create.pl view HTML TTSite
![Page 19: Catalyst: Framework para el desarrollo de aplicaciones Web · Que es un Framework • Es una estructura de soporte definida ... (XP, Scrum, AD,...) Patrón MVC • Modelo • Vista](https://reader033.fdocument.pub/reader033/viewer/2022043013/5fac827f13de6a1a2b7d0af5/html5/thumbnails/19.jpg)
Crear la BD
![Page 20: Catalyst: Framework para el desarrollo de aplicaciones Web · Que es un Framework • Es una estructura de soporte definida ... (XP, Scrum, AD,...) Patrón MVC • Modelo • Vista](https://reader033.fdocument.pub/reader033/viewer/2022043013/5fac827f13de6a1a2b7d0af5/html5/thumbnails/20.jpg)
Insertamos datos
![Page 21: Catalyst: Framework para el desarrollo de aplicaciones Web · Que es un Framework • Es una estructura de soporte definida ... (XP, Scrum, AD,...) Patrón MVC • Modelo • Vista](https://reader033.fdocument.pub/reader033/viewer/2022043013/5fac827f13de6a1a2b7d0af5/html5/thumbnails/21.jpg)
Creamos el modelo
• perl script/gestion_create.pl model GestionDB DBIC::Schema Gestion::Schema::GestionDB create=static dbi:SQLite:gestion
![Page 22: Catalyst: Framework para el desarrollo de aplicaciones Web · Que es un Framework • Es una estructura de soporte definida ... (XP, Scrum, AD,...) Patrón MVC • Modelo • Vista](https://reader033.fdocument.pub/reader033/viewer/2022043013/5fac827f13de6a1a2b7d0af5/html5/thumbnails/22.jpg)
Incluir las relaciones
• En Expositor • (lib/Gestion/Schema/GestionDB/Expositor.pm)
__PACKAGE__->has_many(
conferencia => 'Gestion::Schema::GestionDB::Conferencia', 'expositor_id',{cascading_delete => 1} );
• En conferencia (lib/Gestion/Schema/GestionDB/Conferencia.pm)
__PACKAGE__->belongs_to(
expositor_id => 'Gestion::Schema::GestionDB::Expositor');
![Page 23: Catalyst: Framework para el desarrollo de aplicaciones Web · Que es un Framework • Es una estructura de soporte definida ... (XP, Scrum, AD,...) Patrón MVC • Modelo • Vista](https://reader033.fdocument.pub/reader033/viewer/2022043013/5fac827f13de6a1a2b7d0af5/html5/thumbnails/23.jpg)
Incluir métodos
• En Expositorsub nombrecompleto {
my $self = shift;
return $self->paterno. ' '. $self->nombre;
}
![Page 24: Catalyst: Framework para el desarrollo de aplicaciones Web · Que es un Framework • Es una estructura de soporte definida ... (XP, Scrum, AD,...) Patrón MVC • Modelo • Vista](https://reader033.fdocument.pub/reader033/viewer/2022043013/5fac827f13de6a1a2b7d0af5/html5/thumbnails/24.jpg)
Manejo de plantillas
• en• /lib/Gestion/View/HTML
• adicionar• TEMPLATE_EXTENSION => '.tt2',
![Page 25: Catalyst: Framework para el desarrollo de aplicaciones Web · Que es un Framework • Es una estructura de soporte definida ... (XP, Scrum, AD,...) Patrón MVC • Modelo • Vista](https://reader033.fdocument.pub/reader033/viewer/2022043013/5fac827f13de6a1a2b7d0af5/html5/thumbnails/25.jpg)
Crear una nueva pagina de inicio
• /root/src/index.tt2
![Page 26: Catalyst: Framework para el desarrollo de aplicaciones Web · Que es un Framework • Es una estructura de soporte definida ... (XP, Scrum, AD,...) Patrón MVC • Modelo • Vista](https://reader033.fdocument.pub/reader033/viewer/2022043013/5fac827f13de6a1a2b7d0af5/html5/thumbnails/26.jpg)
Hacer que actue la pagina de incio• lib/Gestion/Controller/Root.pm
![Page 27: Catalyst: Framework para el desarrollo de aplicaciones Web · Que es un Framework • Es una estructura de soporte definida ... (XP, Scrum, AD,...) Patrón MVC • Modelo • Vista](https://reader033.fdocument.pub/reader033/viewer/2022043013/5fac827f13de6a1a2b7d0af5/html5/thumbnails/27.jpg)
Apariencia de la nueva página de inicio
![Page 28: Catalyst: Framework para el desarrollo de aplicaciones Web · Que es un Framework • Es una estructura de soporte definida ... (XP, Scrum, AD,...) Patrón MVC • Modelo • Vista](https://reader033.fdocument.pub/reader033/viewer/2022043013/5fac827f13de6a1a2b7d0af5/html5/thumbnails/28.jpg)
Crear una acción listar Expositores• lib/Gestion/Controller/Expositor.pm
![Page 29: Catalyst: Framework para el desarrollo de aplicaciones Web · Que es un Framework • Es una estructura de soporte definida ... (XP, Scrum, AD,...) Patrón MVC • Modelo • Vista](https://reader033.fdocument.pub/reader033/viewer/2022043013/5fac827f13de6a1a2b7d0af5/html5/thumbnails/29.jpg)
Listado de Expositores y conferencias
root/src/expositor/list.tt2
![Page 30: Catalyst: Framework para el desarrollo de aplicaciones Web · Que es un Framework • Es una estructura de soporte definida ... (XP, Scrum, AD,...) Patrón MVC • Modelo • Vista](https://reader033.fdocument.pub/reader033/viewer/2022043013/5fac827f13de6a1a2b7d0af5/html5/thumbnails/30.jpg)
Listado de Expositores y Conferencias
![Page 31: Catalyst: Framework para el desarrollo de aplicaciones Web · Que es un Framework • Es una estructura de soporte definida ... (XP, Scrum, AD,...) Patrón MVC • Modelo • Vista](https://reader033.fdocument.pub/reader033/viewer/2022043013/5fac827f13de6a1a2b7d0af5/html5/thumbnails/31.jpg)
Ejemplos Desarrollados
![Page 32: Catalyst: Framework para el desarrollo de aplicaciones Web · Que es un Framework • Es una estructura de soporte definida ... (XP, Scrum, AD,...) Patrón MVC • Modelo • Vista](https://reader033.fdocument.pub/reader033/viewer/2022043013/5fac827f13de6a1a2b7d0af5/html5/thumbnails/32.jpg)
Aplicaciones de ejemplo (1)
![Page 33: Catalyst: Framework para el desarrollo de aplicaciones Web · Que es un Framework • Es una estructura de soporte definida ... (XP, Scrum, AD,...) Patrón MVC • Modelo • Vista](https://reader033.fdocument.pub/reader033/viewer/2022043013/5fac827f13de6a1a2b7d0af5/html5/thumbnails/33.jpg)
Aplicaciones de ejemplo (2)
![Page 34: Catalyst: Framework para el desarrollo de aplicaciones Web · Que es un Framework • Es una estructura de soporte definida ... (XP, Scrum, AD,...) Patrón MVC • Modelo • Vista](https://reader033.fdocument.pub/reader033/viewer/2022043013/5fac827f13de6a1a2b7d0af5/html5/thumbnails/34.jpg)
Frameworks de desarrollo
![Page 35: Catalyst: Framework para el desarrollo de aplicaciones Web · Que es un Framework • Es una estructura de soporte definida ... (XP, Scrum, AD,...) Patrón MVC • Modelo • Vista](https://reader033.fdocument.pub/reader033/viewer/2022043013/5fac827f13de6a1a2b7d0af5/html5/thumbnails/35.jpg)
Conclusiones
• Tiene todo lo necesario para desarrollar aplicaciones Web
• Facilitan enormemente el desarrollo de aplicaciones
• Posee buena documentación• Esta en constante desarrollo (muchas
funcionalidades en base plugins)• Al tener como aliado a las metodologías de
desarrollo Ágiles(XP,AD,...), se convierte en un fuerte candidato para desarrollo de aplicaciones web corporativas.
![Page 36: Catalyst: Framework para el desarrollo de aplicaciones Web · Que es un Framework • Es una estructura de soporte definida ... (XP, Scrum, AD,...) Patrón MVC • Modelo • Vista](https://reader033.fdocument.pub/reader033/viewer/2022043013/5fac827f13de6a1a2b7d0af5/html5/thumbnails/36.jpg)
Consultas