Catalyst: Framework
para el desarrollo de
aplicaciones Web
Esteban Saavedra Lopez
email:
[email protected]
http://jesaavedra.opentelematics.org
Agenda
• Introducción
• Patron MVC
• Catalyst
• Demostración
• Conclusiones
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.
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,...)
Patrón MVC
• Modelo
• Vista
• Controlador
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.
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.
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)
Componentes de Catalyst
• Todos sus componentes se
encuentran en CPAN
Instalación de Catalyst
• Debian, Ubuntu,...
> $ apt-get install libcatalyst-perl
• CPAN
> $ cpan Catalyst::Runtime Catalyst::Devel
Estructura de un proyecto de
Catalyst
• Catalyst proporciona una estructura
jerárquica:
> Proyecto
> Aplicación
> Módulo
> Acción
> Vista
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
Que generó esto?
• Una estructura
jerárquica de
directorios
Pasos para crear un proyecto
1Crear el proyecto
2Crear los dominios del proyecto
3Generar los CRUDs
4Adecuar los templates (CSS y/o
JavaScript)
5Publicar la Aplicación
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
Demostración
Crear un proyecto
• /usr/bin/catalyst.pl Gestion
Crear una vista genérica
• perl script/gestion_create.pl view
HTML TTSite
Crear la BD
Insertamos datos
Creamos el modelo
• perl script/gestion_create.pl model
GestionDB DBIC::Schema
Gestion::Schema::GestionDB create=static
dbi:SQLite:gestion
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
__PACKAGE__->belongs_to(
expositor_id => 'Gestion::Schema::GestionDB::Expositor');
(lib/Gestion/Schema/GestionDB/Conferencia.pm)
Incluir métodos
• En Expositor
sub nombrecompleto {
my $self = shift;
return $self->paterno. ' '. $self->nombre;
}
Manejo de plantillas
• en
/lib/Gestion/View/HTML
•
• adicionar
• TEMPLATE_EXTENSION => '.tt2',
Crear una nueva pagina de inicio
•
/root/src/index.tt2
Hacer que actue la pagina de incio
lib/Gestion/Controller/Root.pm
•
Apariencia de la nueva página de
inicio
Crear una acción listar Expositores
lib/Gestion/Controller/Expositor.pm
•
Listado de Expositores y
conferencias
root/src/expositor/list.tt2
Listado de Expositores y
Conferencias
Ejemplos Desarrollados
Aplicaciones de ejemplo (1)
Aplicaciones de ejemplo (2)
Frameworks de desarrollo
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.
Consultas
Comentarios de: catalyst: Framwork para el desarrollo de aplicaciones Web (1)