Framework di supporto allo sviluppo di applicazioni Web
-
Upload
davide-bellettini -
Category
Documents
-
view
396 -
download
2
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
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