Framework di supporto allo sviluppo di applicazioni Web

21
ALMA MATER STUDIORUM - UNIVERSITÀ DI BOLOGNA FACOLTÀ DI INGEGNERIA CORSO DI LAUREA IN INGEGNERIA INFORMATICA TESI DI LAUREA IN RETI DI CALCOLATORI L-A Framework di supporto allo sviluppo di applicazioni Web Candidato: Davide Bellettini Relatore: Chiar.mo Prof. Antonio Corradi Correlatori: Ing. Alessio Ferretti Ing. Luca Ghedini Anno Accademico 2008/2009 – Sessione III

Transcript of Framework di supporto allo sviluppo di applicazioni Web

ALMA MATER STUDIORUM - UNIVERSITÀ DI BOLOGNA

FACOLTÀ DI INGEGNERIACORSO DI LAUREA IN INGEGNERIA INFORMATICA

TESI DI LAUREA IN RETI DI CALCOLATORI L-A

Framework di supporto allosviluppo di applicazioni Web

Candidato:

Davide Bellettini

Relatore:

Chiar.mo Prof. Antonio Corradi

Correlatori:

Ing. Alessio Ferretti

Ing. Luca Ghedini

Anno Accademico 2008/2009 – Sessione III

18/03/2010 Davide Bellettini

Obiettivi della tesi

Confronto tra framework MVC Confronto tra strati di astrazione DB Progetto e realizzazione di un'applicazione per

la gestione del materiale fornito in prestito dalle strutture della Facoltà

18/03/2010 Davide Bellettini

Background

Framework: piattaforma per lo sviluppo di applicazioni

Strato di astrazione DB (DBAL): rende l'applicazione indipendente dal DBMS utilizzato Object-relational mapper (ORM): DBAL che mitiga

le differenze tra il modello relazionale e quello ad oggetti

Linguaggio di riferimento: PHP 5.2.x

18/03/2010 Davide Bellettini

Framework esaminati (1/6)

Sviluppato in Ruby Il primo ad essere usato da una

larga base di utenza Fortemente basato sulleconvenzioni Minimizzazione della duplicazione

Ruby on Rails

CakePHP

Symfony

Zend Framework

PRADO

Solar

18/03/2010 Davide Bellettini

Framework esaminati (2/6)

Ruby on Rails

CakePHP

Symfony

Zend Framework

PRADO

Solar

Compatibilità con PHP 4 e 5 Ispirato a Ruby on Rails Stile di programmazione

obsoleto a causa della retrocompatibilità

18/03/2010 Davide Bellettini

Framework esaminati (3/6)

Ruby on Rails

CakePHP

Symfony

Zend Framework

PRADO

Solar

Supporta PHP ≥ 5.2.4 Basato su file di configurazione Larga base di utenza Ottima documentazione, con esempi, anche in italiano Ottimi strumenti a linea di comando Generazione automatica di codice in maniera avanzata

18/03/2010 Davide Bellettini

Framework esaminati (4/6)

Ruby on Rails

CakePHP

Symfony

Zend Framework

PRADO

Solar

Supporta PHP ≥ 5.2.4 Ricco di funzionalità Larga base di utenza API per i servizi di Google Client/Server per Web Service Documentazione scarna e spesso non aggiornata Strumenti a linea di comando ancora poco sviluppati

18/03/2010 Davide Bellettini

Framework esaminati (5/6)

Ruby on Rails

CakePHP

Symfony

Zend Framework

PRADO

Solar

Supporta PHP ≥ 5.1.0 Forte utilizzo di XML Orientato agli eventi Curva di apprendimento ripida

18/03/2010 Davide Bellettini

Ruby on Rails

CakePHP

Symfony

Zend Framework

PRADO

Solar

Supporta PHP ≥ 5.2.0 Documentazione buona Funzionalità limitate rispetto agli

altri framework

Framework esaminati (6/6)

18/03/2010 Davide Bellettini

Strati di astrazione DB esaminati (1/5)

PDO

ADOdb

Zend_Db

Doctrine

Propel

Incluso in PHP dalla versione 5 Astrazione minima Adatto per costruire uno strato

di astrazione

18/03/2010 Davide Bellettini

Strati di astrazione DB esaminati (2/5)

PDO

ADOdb

Zend_Db

Doctrine

Propel

Larga base di utenza Numerosi database supportati Molti retaggi da PHP4 Oramai obsoleto

18/03/2010 Davide Bellettini

Strati di astrazione DB esaminati (3/5)

PDO

ADOdb

Zend_Db

Doctrine

Propel

Parte integrante dello Zend Framework

Basato su PDO Numerosi DBMS supportati Elevata astrazione, ma non tale

da essere considerato un ORM

18/03/2010 Davide Bellettini

Strati di astrazione DB esaminati (4/5)

PDO

ADOdb

Zend_Db

Doctrine

Propel

Object-relational mapping Basato su PDO Numerosi DBMS supportati Doctrine Query Language Integrato con Symfony come

opzione predefinita

18/03/2010 Davide Bellettini

Strati di astrazione DB esaminati (5/5)

PDO

ADOdb

Zend_Db

Doctrine

Propel

Object-relational mapping Basato su PDO Simile a Doctrine Integrato con Symfony Non ha un “Propel Query

Language” Reduce da un periodo di stallo

nello sviluppo

18/03/2010 Davide Bellettini

La scelta: Symfony + Doctrine

Symfony è il framework meglio documentato Fornisce strumenti a linea di comando che

velocizzano notevolmente lo sviluppo È già integrato con Doctrine e Propel Permette agevolmente l'uso di librerie

appartenenti ad altri framework Doctrine presenta caratteristiche leggermente

migliori di Propel ed è la scelta predefinita di Symfony

18/03/2010 Davide Bellettini

SePI: Servizio Prestiti Ingegneria

ProblemaNecessità di uno strumento per la gestione dei prestiti di materiale nelle strutture della Facoltà

SoluzioneRealizzazione un'applicazione Web, integrata con

il sistema di credenziali di Ateneo

18/03/2010 Davide Bellettini

Principali entità ed attori

Oggetto es. un palmare

Luogo es. il Lab 2

Prestito Utente Operatore

es. responsabile del laboratorio

18/03/2010 Davide Bellettini

Alcune schermate (1/2)

18/03/2010 Davide Bellettini

Alcune schermate (2/2)

18/03/2010 Davide Bellettini

Conclusioni

Si è dimostrata l'utilità dei framework di supporto allo sviluppo di applicazioni Web

È stata realizzata un'applicazione reale funzionante ed integrata con il sistema di credenziali di ateneo a conferma delle ragioni esposte

Si prevedono sviluppi futuri per nuove funzionalità, come notifiche, prenotazioni e statistiche

18/03/2010 Davide Bellettini

Grazie per l'attenzione!