TECNOLOGIE E APPLICAZIONI WEB

Anno accademico
2019/2020 Programmi anni precedenti
Titolo corso in inglese
WEB APPLICATIONS AND TECHNOLOGIES
Codice insegnamento
CT0142 (AF:248843 AR:136525)
Modalità
In presenza
Crediti formativi universitari
6
Livello laurea
Laurea
Settore scientifico disciplinare
INF/01
Periodo
II Semestre
Anno corso
3
Sede
VENEZIA
Il corso fornisce una panoramica dettagliata sulle più recenti tecnologie legate al web. E' composto da una introduzione teorica ai protocolli e pattern di programmazione che supportano il web moderno per continuare con uno studio guidato su alcuni dei framework oggi utilizzati per lo sviluppo di applicazioni web.
Basato su Javascript, linguaggio divenuto standard de-facto per ogni web-developer, il corso spazia dai middleware per Node.js, ai database NOSQL e in-memory fino ai framework di front-end come Google Angular e Twitter Bootstrap.
Infine, si discuterà di come le tecnologie legate al web possono essere utilizzate per lo sviluppo agile di applicazioni tradizionalmente confinate in ambiente nativo, come le app per sistemi mobile e gli ambienti desktop.
Al termine del corso, gli studenti saranno in grado di:
- Conoscere le basi di funzionamento del protocollo HTTP
- Gestire l'autenticazione in un'applicazione WEB
- Definire le funzionalità di un'applicazione e realizzarle definendo delle API in stile REST
- Implementare soluzioni web full-stack utilizzando tecnologie legate all'ecosistema Javascript
- Realizzare applicazioni ibride per il mondo mobile e desktop
La conoscenza del linguaggio Javascript è fortemente consigliata ma non richiesta. Durante il corso saranno comunque analizzati gli aspetti più importanti del linguaggio.
HTTP
----------------------------
- Evoluzione del WEB: SPA e frameworks full-stack
- Il protocollo HTTP
- Cookies e il concetto di Sessione
- Authentication: Basic, Digest Access Authentication and JSON web token (JWT)
- Websocket
- API in stile REST


Linguaggi per il web
----------------------------
- Javascript
- Typescript


Node.js server-side Javascript runtime
----------------------------
- Storia e panoramica del sistema
- The Npm package manager
- modello di IO asincrono / non-bloccante
- programmazione event-driven
- Interfaccia con il sistema operativo
- HTTP APIs


Storage
----------------------------
- MongoDB
- REDIS


Middleware
----------------------------
- Express


Front-end
----------------------------
- Bootstrap
- Angular


Mobile hybrid and progressive apps
----------------------------
- jQuery Mobile
- Apache Cordova
- Ionic framework


Cross-platform web-based native applications
----------------------------
- Electron framework
Simon Holmes, "Getting MEAN with Mongo, Express, Angular, and Node", Manning Publications, 2015. ISBN-10: 1617292036
Eric Elliott, "Programming JavaScript Applications: Robust Web Architecture with Node, HTML5, and Modern JS Libraries", O'Reilly Media, 2014. ISBN-10: 1491950293
Fernando Doglio, "Pro REST API Development with Node.js", Apress, 2015. ISBN-10: 1484209184
Steve Fenton, "Pro Typescript", Apress, 2014. ISBN 978-1-4302-6790-4
Adam Freeman, "Pro Angular", Apress 2017. ISBN 978-1-4842-2307-9
La verifica dell'apprendimento prevede lo sviluppo di un progetto software che utilizzi tecnologie e metodi sviluppati durante il corso. Il progetto va consegnato congiuntamente ad una relazione che sarà poi discussa mediante prova orale.
Il progetto e la relazione hanno lo scopo di verificare la conoscenza dei concetti teorici appresi durante il corso e di dimostrare la capacità dello studente di sviluppare applicazioni web con le tecnologie illustrate a lezione.
Il corso è composto da lezioni frontali comprendenti casi di studio pratici per contestualizzare i concetti appresi nell'ambito delle tecnologie web.
Congiuntamente ai testi di riferimento, materiale di studio aggiuntivo sarà fornito in forma di presentazioni PowerPoint e codice sorgente da utilizzare come template per lo sviluppo di applicazioni full-stack.
Italiano
orale
Programma definitivo.
Data ultima modifica programma: 07/05/2019