SlideShare ist ein Scribd-Unternehmen logo
1 von 18
Downloaden Sie, um offline zu lesen
Frameworks per WebApplication:
analisi e confronto attraverso lo sviluppo di un
caso di studio
di Claudio Mignanti
Relatore: Ivano Salvo
16 Luglio 2013
• Sviluppo Web App: Generazione Chef
• Analisi e uso, in un'applicazione reale, di
diversi framework al fine di valutarli
• Incremento knowhow tecnologico aziendale
Obiettivi lavoro svolto
Caratteristiche delle Web Application
Un applicativo sviluppato in un linguaggio supportato
dai browser (generalmente Javascript) il quale
sfrutta l'abilità del browser di modificare la
visualizzazione della pagina al fine di mostrare
l'esecuzione dell'applicazione stessa.
Motivazioni delle Web Application
● Esperienza utente accattivante
● Sfruttamento della capacità computazionale
dei client
Pagine composte Server Side Viste renderizzate Client Side
JSP+JSTL
SYMFONY PHP
ASP .NET MVC BackBone
AngularJS
Javascript MVC
Architettura Web Application
Pagine composte Server Side Viste renderizzate Client Side
JSP+JSTL
SYMFONY PHP
ASP .NET MVC BackBone
AngularJS
Javascript MVC
Differenze concettuali
● Pagine servite staticamente
all'interno di una singola
richiesta/risposta HTTP
● Interattività client side con
jQuery per la manipolazione del
DOM e le chiamate AJAX
● Dati per le view serviti tramite
API REST
● Applicativo servito staticamente
per tutti i client
Vantaggi delle web application
1. Interfaccia utente dinamica e fluida,
possibilità di animazione, user feedback
2. Riduzione carico server
3. Comune interfaccia REST tra l'applicativo
web e le applicazioni native mobili
Architettura di Generazione Chef
Tecnologie utilizzate
Backbone.js gives structure
to web applications by
providing models with key-
value binding and custom
events, collections with a
rich API of enumerable
functions, views with
declarative event handling,
and connects it all to your
existing API over a RESTful
JSON interface.
Tecnologie utilizzate
Underscore is a utility-belt
library for JavaScript that
provides a lot of the
functional programming
support that you would
expect in Prototype.js (or
Ruby), but without extending
any of the built-in JavaScript
objects. It's the tie to go
along with jQuery's tux, and
Backbone.js's suspenders.
Tecnologie utilizzate
RequireJS is a JavaScript
file and module loader. It is
optimized for in-browser
use, but it can be used in
other JavaScript
environments, like Rhino
and Node. Using a
modular script loader like
RequireJS will improve the
speed and quality of your
code.
Interfaccia utente - un esempio
Interfaccia utente - un esempio
Interfaccia utente - un esempio
Interfaccia utente - un esempio
Interfaccia utente - un esempio
Server HTTP JS
DOM
click
API REST
Categoria
JSONObjs
Render
View
Confronto tra framework JS
Pro:
●
Precursore della
categoria
●
Abbondanza di plugin
Contro:
●
Richiede altre librerie
●
Non è strutturato per
grandi progetti
Pro:
●
Ben ingegnerizzato
●
Snello – meno codice
●
Robusto e scalabile
Contro:
●
Curva apprendimento
più ripida – maggior
astrazione concettuale
Conclusioni
• Lo sviluppo di WebApp è più oneroso rispetto
all'equivalente sito web servito via server
• Le API REST possono essere riusate per dispositivi
mobili
• Lo sforzo di apprendimento iniziale di Angular è
velocemente ripagato dal minor uso di librerie
accessorie

Weitere ähnliche Inhalte

Was ist angesagt?

Il Web orientato al futuro: Express, Angular e nodeJS
Il Web orientato al futuro: Express, Angular e nodeJS Il Web orientato al futuro: Express, Angular e nodeJS
Il Web orientato al futuro: Express, Angular e nodeJS Eugenio Minardi
 
Slide typescript - net campus
Slide typescript - net campusSlide typescript - net campus
Slide typescript - net campusDotNetCampus
 
Sviluppo di applicazioni web in ambito mobile
Sviluppo di applicazioni web in ambito mobileSviluppo di applicazioni web in ambito mobile
Sviluppo di applicazioni web in ambito mobileRoberto Cappelletti
 
Applicazioni Web ultra-performanti con Vue.js e Delphi
Applicazioni Web ultra-performanti con Vue.js e DelphiApplicazioni Web ultra-performanti con Vue.js e Delphi
Applicazioni Web ultra-performanti con Vue.js e DelphiMarco Breveglieri
 
Sviluppo Web Agile con Castle Monorail
Sviluppo Web Agile con Castle MonorailSviluppo Web Agile con Castle Monorail
Sviluppo Web Agile con Castle MonorailDotNetMarche
 
MEAN: il nuovo stack di sviluppo per il futuro del web
MEAN: il nuovo stack di sviluppo per il futuro del webMEAN: il nuovo stack di sviluppo per il futuro del web
MEAN: il nuovo stack di sviluppo per il futuro del webEugenio Minardi
 
CommitUniversity AngularJSAdvanced Andrea Vallotti
CommitUniversity  AngularJSAdvanced Andrea VallottiCommitUniversity  AngularJSAdvanced Andrea Vallotti
CommitUniversity AngularJSAdvanced Andrea VallottiCommit University
 
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, Piacenza
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, PiacenzaSviluppo Web con React e Delphi - Seminario Delphi Day 2016, Piacenza
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, PiacenzaMarco Breveglieri
 
Data binding libera tutti!
Data binding libera tutti!Data binding libera tutti!
Data binding libera tutti!Salvatore Laisa
 
Angular js o React? Spunti e idee per la scelta di un framework
Angular js o React? Spunti e idee per la scelta di un frameworkAngular js o React? Spunti e idee per la scelta di un framework
Angular js o React? Spunti e idee per la scelta di un frameworkGiovanni Buffa
 
Valutazione sperimentale di un database relazionale in ambiente cloud
Valutazione sperimentale di un database relazionale in ambiente cloudValutazione sperimentale di un database relazionale in ambiente cloud
Valutazione sperimentale di un database relazionale in ambiente cloudMatteo Pani
 

Was ist angesagt? (17)

Informativo magic portal
Informativo magic portalInformativo magic portal
Informativo magic portal
 
Workshop angular
Workshop angularWorkshop angular
Workshop angular
 
Il Web orientato al futuro: Express, Angular e nodeJS
Il Web orientato al futuro: Express, Angular e nodeJS Il Web orientato al futuro: Express, Angular e nodeJS
Il Web orientato al futuro: Express, Angular e nodeJS
 
Slide typescript - net campus
Slide typescript - net campusSlide typescript - net campus
Slide typescript - net campus
 
Sviluppo di applicazioni web in ambito mobile
Sviluppo di applicazioni web in ambito mobileSviluppo di applicazioni web in ambito mobile
Sviluppo di applicazioni web in ambito mobile
 
Inserire servizi
Inserire serviziInserire servizi
Inserire servizi
 
Applicazioni Web ultra-performanti con Vue.js e Delphi
Applicazioni Web ultra-performanti con Vue.js e DelphiApplicazioni Web ultra-performanti con Vue.js e Delphi
Applicazioni Web ultra-performanti con Vue.js e Delphi
 
Sviluppo Web Agile con Castle Monorail
Sviluppo Web Agile con Castle MonorailSviluppo Web Agile con Castle Monorail
Sviluppo Web Agile con Castle Monorail
 
AngularJS 2.0
AngularJS 2.0 AngularJS 2.0
AngularJS 2.0
 
MEAN: il nuovo stack di sviluppo per il futuro del web
MEAN: il nuovo stack di sviluppo per il futuro del webMEAN: il nuovo stack di sviluppo per il futuro del web
MEAN: il nuovo stack di sviluppo per il futuro del web
 
CommitUniversity AngularJSAdvanced Andrea Vallotti
CommitUniversity  AngularJSAdvanced Andrea VallottiCommitUniversity  AngularJSAdvanced Andrea Vallotti
CommitUniversity AngularJSAdvanced Andrea Vallotti
 
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, Piacenza
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, PiacenzaSviluppo Web con React e Delphi - Seminario Delphi Day 2016, Piacenza
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, Piacenza
 
Web dynpro for abap 03
Web dynpro for abap 03Web dynpro for abap 03
Web dynpro for abap 03
 
Data binding libera tutti!
Data binding libera tutti!Data binding libera tutti!
Data binding libera tutti!
 
Require js
Require jsRequire js
Require js
 
Angular js o React? Spunti e idee per la scelta di un framework
Angular js o React? Spunti e idee per la scelta di un frameworkAngular js o React? Spunti e idee per la scelta di un framework
Angular js o React? Spunti e idee per la scelta di un framework
 
Valutazione sperimentale di un database relazionale in ambiente cloud
Valutazione sperimentale di un database relazionale in ambiente cloudValutazione sperimentale di un database relazionale in ambiente cloud
Valutazione sperimentale di un database relazionale in ambiente cloud
 

Andere mochten auch

The city of bicycles
The city of bicyclesThe city of bicycles
The city of bicyclesAntje Huang
 
AFP, Poliovirus, Enteroviruses,
AFP, Poliovirus, Enteroviruses, AFP, Poliovirus, Enteroviruses,
AFP, Poliovirus, Enteroviruses, Fibamicro1
 
Session plan retail management
Session plan retail managementSession plan retail management
Session plan retail managementrk2its
 
Virus y vacunas expo.claudia parra
Virus y vacunas expo.claudia parraVirus y vacunas expo.claudia parra
Virus y vacunas expo.claudia parraClau Parra
 
Make $80 to $100 Daily
Make $80 to $100 DailyMake $80 to $100 Daily
Make $80 to $100 DailyGayle Bailey
 
The wright brothers started with a glider before going to powered flight.
The wright brothers started with a glider before going to powered flight.The wright brothers started with a glider before going to powered flight.
The wright brothers started with a glider before going to powered flight.InsuranceNebraska
 
Help and hoarding
Help and hoardingHelp and hoarding
Help and hoardingscott4hlp
 
Happy Birthday MORGAN!!!
Happy Birthday MORGAN!!!Happy Birthday MORGAN!!!
Happy Birthday MORGAN!!!lbly
 
Trabjo de redes porcentaje
Trabjo de redes porcentajeTrabjo de redes porcentaje
Trabjo de redes porcentajebetsy_vera
 
Picobgp - A simple deamon for routing advertising
Picobgp - A simple deamon for routing advertisingPicobgp - A simple deamon for routing advertising
Picobgp - A simple deamon for routing advertisingClaudio Mignanti
 
Jacques louis david2003
Jacques louis david2003Jacques louis david2003
Jacques louis david2003Antje Huang
 
Help and hoarding by Annette Conway, Psy.D.
Help and hoarding by Annette Conway, Psy.D.Help and hoarding by Annette Conway, Psy.D.
Help and hoarding by Annette Conway, Psy.D.scott4hlp
 
Openwrt, linux e GPIO al LinuxDay 2010 Roma
Openwrt, linux e GPIO al LinuxDay 2010 RomaOpenwrt, linux e GPIO al LinuxDay 2010 Roma
Openwrt, linux e GPIO al LinuxDay 2010 RomaClaudio Mignanti
 
Mr Holdings car
Mr Holdings carMr Holdings car
Mr Holdings carhuzguc7k
 
Mr holdings car
Mr holdings carMr holdings car
Mr holdings carhuzguc7k
 

Andere mochten auch (20)

The city of bicycles
The city of bicyclesThe city of bicycles
The city of bicycles
 
AFP, Poliovirus, Enteroviruses,
AFP, Poliovirus, Enteroviruses, AFP, Poliovirus, Enteroviruses,
AFP, Poliovirus, Enteroviruses,
 
Session plan retail management
Session plan retail managementSession plan retail management
Session plan retail management
 
Grunt.js introduction
Grunt.js introductionGrunt.js introduction
Grunt.js introduction
 
мой город
мой городмой город
мой город
 
Virus y vacunas expo.claudia parra
Virus y vacunas expo.claudia parraVirus y vacunas expo.claudia parra
Virus y vacunas expo.claudia parra
 
Make $80 to $100 Daily
Make $80 to $100 DailyMake $80 to $100 Daily
Make $80 to $100 Daily
 
Crackedpot
CrackedpotCrackedpot
Crackedpot
 
The wright brothers started with a glider before going to powered flight.
The wright brothers started with a glider before going to powered flight.The wright brothers started with a glider before going to powered flight.
The wright brothers started with a glider before going to powered flight.
 
Help and hoarding
Help and hoardingHelp and hoarding
Help and hoarding
 
Happy Birthday MORGAN!!!
Happy Birthday MORGAN!!!Happy Birthday MORGAN!!!
Happy Birthday MORGAN!!!
 
Trabjo de redes porcentaje
Trabjo de redes porcentajeTrabjo de redes porcentaje
Trabjo de redes porcentaje
 
Picobgp - A simple deamon for routing advertising
Picobgp - A simple deamon for routing advertisingPicobgp - A simple deamon for routing advertising
Picobgp - A simple deamon for routing advertising
 
Slideshare
SlideshareSlideshare
Slideshare
 
Libro1nnn (1)
Libro1nnn (1)Libro1nnn (1)
Libro1nnn (1)
 
Jacques louis david2003
Jacques louis david2003Jacques louis david2003
Jacques louis david2003
 
Help and hoarding by Annette Conway, Psy.D.
Help and hoarding by Annette Conway, Psy.D.Help and hoarding by Annette Conway, Psy.D.
Help and hoarding by Annette Conway, Psy.D.
 
Openwrt, linux e GPIO al LinuxDay 2010 Roma
Openwrt, linux e GPIO al LinuxDay 2010 RomaOpenwrt, linux e GPIO al LinuxDay 2010 Roma
Openwrt, linux e GPIO al LinuxDay 2010 Roma
 
Mr Holdings car
Mr Holdings carMr Holdings car
Mr Holdings car
 
Mr holdings car
Mr holdings carMr holdings car
Mr holdings car
 

Ähnlich wie Presentazione tirocinio

Niccolò Becchi: Introduzione a GWT
Niccolò Becchi: Introduzione a GWTNiccolò Becchi: Introduzione a GWT
Niccolò Becchi: Introduzione a GWTfirenze-gtug
 
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platformAngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platformGabriele Gaggi
 
Esposizione RIA
Esposizione RIAEsposizione RIA
Esposizione RIAdiodorato
 
Introduzione a JavaScript e jQuery (1/2)
Introduzione a JavaScript e jQuery (1/2)Introduzione a JavaScript e jQuery (1/2)
Introduzione a JavaScript e jQuery (1/2)Giuseppe Vizzari
 
Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013
Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013
Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013Massimo Caliman
 
Un backend per tutte le stagioni con Spring
Un backend per tutte le stagioni con SpringUn backend per tutte le stagioni con Spring
Un backend per tutte le stagioni con SpringMarcello Teodori
 
Cert03 70-486 developing asp.net mvc 4 web applications
Cert03   70-486 developing asp.net mvc 4 web applicationsCert03   70-486 developing asp.net mvc 4 web applications
Cert03 70-486 developing asp.net mvc 4 web applicationsDotNetCampus
 
Workshop AngularJs, Cordova, Ionic - Politecnico di Milano
Workshop AngularJs, Cordova, Ionic - Politecnico di MilanoWorkshop AngularJs, Cordova, Ionic - Politecnico di Milano
Workshop AngularJs, Cordova, Ionic - Politecnico di MilanoGabriele Gaggi
 
Sviluppare Azure Web Apps
Sviluppare Azure Web AppsSviluppare Azure Web Apps
Sviluppare Azure Web AppsAndrea Dottor
 
Come sviluppare applicazioni cross device con HTML
Come sviluppare applicazioni cross device con HTMLCome sviluppare applicazioni cross device con HTML
Come sviluppare applicazioni cross device con HTMLSinergia Totale
 
Mobile Development: una introduzione per Web Developers
Mobile Development: una introduzione per Web DevelopersMobile Development: una introduzione per Web Developers
Mobile Development: una introduzione per Web Developerssparkfabrik
 
Presentazione Corso - Parte 3
Presentazione Corso - Parte 3Presentazione Corso - Parte 3
Presentazione Corso - Parte 3Giorgio Carpoca
 
Sviluppo Web Agile Con MonoRail
Sviluppo Web Agile Con MonoRailSviluppo Web Agile Con MonoRail
Sviluppo Web Agile Con MonoRailStefano Ottaviani
 
Meetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web AppMeetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web Appdotnetcode
 
Blazor: are we ready for the launch?
Blazor: are we ready for the launch?Blazor: are we ready for the launch?
Blazor: are we ready for the launch?Andrea Agnoletto
 

Ähnlich wie Presentazione tirocinio (20)

Niccolò Becchi: Introduzione a GWT
Niccolò Becchi: Introduzione a GWTNiccolò Becchi: Introduzione a GWT
Niccolò Becchi: Introduzione a GWT
 
Link. javascript ajax
  Link. javascript ajax  Link. javascript ajax
Link. javascript ajax
 
Rich Internet Application
Rich Internet ApplicationRich Internet Application
Rich Internet Application
 
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platformAngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
 
Esposizione RIA
Esposizione RIAEsposizione RIA
Esposizione RIA
 
Introduzione a JavaScript e jQuery (1/2)
Introduzione a JavaScript e jQuery (1/2)Introduzione a JavaScript e jQuery (1/2)
Introduzione a JavaScript e jQuery (1/2)
 
Golang + AngulaJS on GCP
Golang + AngulaJS on GCPGolang + AngulaJS on GCP
Golang + AngulaJS on GCP
 
Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013
Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013
Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013
 
Un backend per tutte le stagioni con Spring
Un backend per tutte le stagioni con SpringUn backend per tutte le stagioni con Spring
Un backend per tutte le stagioni con Spring
 
Cert03 70-486 developing asp.net mvc 4 web applications
Cert03   70-486 developing asp.net mvc 4 web applicationsCert03   70-486 developing asp.net mvc 4 web applications
Cert03 70-486 developing asp.net mvc 4 web applications
 
Portofino per Jug Padova
Portofino per Jug PadovaPortofino per Jug Padova
Portofino per Jug Padova
 
Workshop AngularJs, Cordova, Ionic - Politecnico di Milano
Workshop AngularJs, Cordova, Ionic - Politecnico di MilanoWorkshop AngularJs, Cordova, Ionic - Politecnico di Milano
Workshop AngularJs, Cordova, Ionic - Politecnico di Milano
 
Sviluppare Azure Web Apps
Sviluppare Azure Web AppsSviluppare Azure Web Apps
Sviluppare Azure Web Apps
 
Come sviluppare applicazioni cross device con HTML
Come sviluppare applicazioni cross device con HTMLCome sviluppare applicazioni cross device con HTML
Come sviluppare applicazioni cross device con HTML
 
Mobile Development: una introduzione per Web Developers
Mobile Development: una introduzione per Web DevelopersMobile Development: una introduzione per Web Developers
Mobile Development: una introduzione per Web Developers
 
Presentazione Corso - Parte 3
Presentazione Corso - Parte 3Presentazione Corso - Parte 3
Presentazione Corso - Parte 3
 
MVC and Struts 1
MVC and Struts 1MVC and Struts 1
MVC and Struts 1
 
Sviluppo Web Agile Con MonoRail
Sviluppo Web Agile Con MonoRailSviluppo Web Agile Con MonoRail
Sviluppo Web Agile Con MonoRail
 
Meetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web AppMeetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web App
 
Blazor: are we ready for the launch?
Blazor: are we ready for the launch?Blazor: are we ready for the launch?
Blazor: are we ready for the launch?
 

Mehr von Claudio Mignanti

Pycon9 - Paas per tutti i gusti con Dokku and Kubernetes
Pycon9 - Paas per tutti i gusti con Dokku and KubernetesPycon9 - Paas per tutti i gusti con Dokku and Kubernetes
Pycon9 - Paas per tutti i gusti con Dokku and KubernetesClaudio Mignanti
 
Roma linuxday 2013 - nodejs
Roma linuxday 2013 - nodejsRoma linuxday 2013 - nodejs
Roma linuxday 2013 - nodejsClaudio Mignanti
 
Elettronica digitale with Example
Elettronica digitale with ExampleElettronica digitale with Example
Elettronica digitale with ExampleClaudio Mignanti
 
Presentazione Ninux al LinuxDay Roma 2012
Presentazione Ninux al LinuxDay Roma 2012Presentazione Ninux al LinuxDay Roma 2012
Presentazione Ninux al LinuxDay Roma 2012Claudio Mignanti
 

Mehr von Claudio Mignanti (6)

Pycon9 - Paas per tutti i gusti con Dokku and Kubernetes
Pycon9 - Paas per tutti i gusti con Dokku and KubernetesPycon9 - Paas per tutti i gusti con Dokku and Kubernetes
Pycon9 - Paas per tutti i gusti con Dokku and Kubernetes
 
Roma linuxday 2013 - nodejs
Roma linuxday 2013 - nodejsRoma linuxday 2013 - nodejs
Roma linuxday 2013 - nodejs
 
TuxIsAlive
TuxIsAliveTuxIsAlive
TuxIsAlive
 
Elettronica digitale with Example
Elettronica digitale with ExampleElettronica digitale with Example
Elettronica digitale with Example
 
Git for dummies
Git for dummiesGit for dummies
Git for dummies
 
Presentazione Ninux al LinuxDay Roma 2012
Presentazione Ninux al LinuxDay Roma 2012Presentazione Ninux al LinuxDay Roma 2012
Presentazione Ninux al LinuxDay Roma 2012
 

Presentazione tirocinio

  • 1. Frameworks per WebApplication: analisi e confronto attraverso lo sviluppo di un caso di studio di Claudio Mignanti Relatore: Ivano Salvo 16 Luglio 2013
  • 2. • Sviluppo Web App: Generazione Chef • Analisi e uso, in un'applicazione reale, di diversi framework al fine di valutarli • Incremento knowhow tecnologico aziendale Obiettivi lavoro svolto
  • 3. Caratteristiche delle Web Application Un applicativo sviluppato in un linguaggio supportato dai browser (generalmente Javascript) il quale sfrutta l'abilità del browser di modificare la visualizzazione della pagina al fine di mostrare l'esecuzione dell'applicazione stessa.
  • 4. Motivazioni delle Web Application ● Esperienza utente accattivante ● Sfruttamento della capacità computazionale dei client Pagine composte Server Side Viste renderizzate Client Side JSP+JSTL SYMFONY PHP ASP .NET MVC BackBone AngularJS Javascript MVC
  • 6. Pagine composte Server Side Viste renderizzate Client Side JSP+JSTL SYMFONY PHP ASP .NET MVC BackBone AngularJS Javascript MVC Differenze concettuali ● Pagine servite staticamente all'interno di una singola richiesta/risposta HTTP ● Interattività client side con jQuery per la manipolazione del DOM e le chiamate AJAX ● Dati per le view serviti tramite API REST ● Applicativo servito staticamente per tutti i client
  • 7. Vantaggi delle web application 1. Interfaccia utente dinamica e fluida, possibilità di animazione, user feedback 2. Riduzione carico server 3. Comune interfaccia REST tra l'applicativo web e le applicazioni native mobili
  • 9. Tecnologie utilizzate Backbone.js gives structure to web applications by providing models with key- value binding and custom events, collections with a rich API of enumerable functions, views with declarative event handling, and connects it all to your existing API over a RESTful JSON interface.
  • 10. Tecnologie utilizzate Underscore is a utility-belt library for JavaScript that provides a lot of the functional programming support that you would expect in Prototype.js (or Ruby), but without extending any of the built-in JavaScript objects. It's the tie to go along with jQuery's tux, and Backbone.js's suspenders.
  • 11. Tecnologie utilizzate RequireJS is a JavaScript file and module loader. It is optimized for in-browser use, but it can be used in other JavaScript environments, like Rhino and Node. Using a modular script loader like RequireJS will improve the speed and quality of your code.
  • 12. Interfaccia utente - un esempio
  • 13. Interfaccia utente - un esempio
  • 14. Interfaccia utente - un esempio
  • 15. Interfaccia utente - un esempio
  • 16. Interfaccia utente - un esempio Server HTTP JS DOM click API REST Categoria JSONObjs Render View
  • 17. Confronto tra framework JS Pro: ● Precursore della categoria ● Abbondanza di plugin Contro: ● Richiede altre librerie ● Non è strutturato per grandi progetti Pro: ● Ben ingegnerizzato ● Snello – meno codice ● Robusto e scalabile Contro: ● Curva apprendimento più ripida – maggior astrazione concettuale
  • 18. Conclusioni • Lo sviluppo di WebApp è più oneroso rispetto all'equivalente sito web servito via server • Le API REST possono essere riusate per dispositivi mobili • Lo sforzo di apprendimento iniziale di Angular è velocemente ripagato dal minor uso di librerie accessorie