SlideShare une entreprise Scribd logo
1  sur  33
Télécharger pour lire hors ligne
Socialmedia e Smart Apps 2011/2012




      Framework per la
     realizzazione di RIA
Cos'è una RIA?


      Le Rich Internet Application (RIA) sono
        applicazioni web che possiedono le
       caratteristiche e le funzionalità delle
    applicazioni desktop, senza però necessitare
          dell'installazione sul disco fisso.
       (Fonte: http://it.wikipedia.org/wiki/Rich_Internet_application)




14 maggio 2012           Framework per la realizzazione di RIA           2/33
Perché sviluppare RIA?

 ●   Manutenibilità: un solo software da manutenere
 ●   Portabilità: diversi sistemi operativi e dispositivi
 ●   Sicurezza: client su browser, logica applicativa sul server
 ●   Immediatezza: no installazione, disponibilità h24
 ●   Usabilità: look'n feel simile alle applicazioni desktop
 ●   Affidabilità, scalabilità e performance


14 maggio 2012         Framework per la realizzazione di RIA   3/33
Perché NON sviluppare RIA?


 ●   Retro compatibilità: vecchi browser potrebbero non
     supportare pienamente la tecnologia utilizzata
 ●   Prestazioni: browser con prestazioni scadenti
 ●   Limitazioni: applicazione eseguita in una sandbox




14 maggio 2012       Framework per la realizzazione di RIA   4/33
Esempi di RIA




14 maggio 2012   Framework per la realizzazione di RIA   5/33
Cos'è un Framework?


Si tratta di una serie di classi che collaborano tra di loro allo
  scopo di definire la struttura base di un'applicazione, delle
       classi, degli oggetti e soprattutto del workflow,
 implementando le classi preesistenti e sfruttandone i punti
            "flessibili", chiamati anche "hot spots"




14 maggio 2012       Framework per la realizzazione di RIA   6/33
Framework Vs Library

 ●   Inversion of control: il framework definisce il workflow
     dell'applicazione
 ●   Comportamento predefinito: il framework ha un
     workflow predefinito
 ●   Extensibility: è possibile estendere il framework
 ●   Non-modifiable framework code: alcuni punti del
     framework non sono modificabili (“frozen spots”)


14 maggio 2012        Framework per la realizzazione di RIA   7/33
Framework Vs Platform
 ●   La platform comprende hardware e software
 ●   La platform permette l'esecuzione di un programma
 ●   Il framework è riferito solo al software
 ●   Il framework semplifica il disegno delle applicazioni


      Es.: Java è una platform, Hibernate è un framework


          OGGI PARLIAMO DI FRAMEWORK!
14 maggio 2012        Framework per la realizzazione di RIA   8/33
Perché usare un Framework?

 ●   Non reinventare la ruota


 ●   Velocizzare lo sviluppo del software, concentrandosi
     sulle funzionalità di alto livello


 ●   Contenere i costi di sviluppo



14 maggio 2012        Framework per la realizzazione di RIA   9/33
Come valutare un
framework?
                 Alcuni spunti di ragionamento...

 ●   Maturità                                ●   Affidabilità
 ●   Rapidità di                             ●   Comunità &
     apprendimento                               Documentazione
 ●   Produttività                            ●   Licenza d'uso
 ●   Personalizzazione                       ●   Provare provare provare



14 maggio 2012          Framework per la realizzazione di RIA        10/33
Esempi di Framework




14 maggio 2012   Framework per la realizzazione di RIA   11/33
Divide et impera!

In questa presentazione dividiamo i framework in base alla
     tecnologia necessaria per il funzionamento delle
                       applicazioni



                   Basata su plug-in

                    Basata su AJAX



14 maggio 2012     Framework per la realizzazione di RIA   12/33
Framework basati su plug-in
 ●   Richiedono l'installazione di un plug-in all'interno del
     browser o del dispositivo mobile
 ●   Solitamente forniscono una user experience, delle
     prestazioni migliori e maggiori funzionalità
 ●   Solitamente non sono molto Search Engine Friendly
 ●   Il loro uso sta lentamente ma inesorabilmente
     diminuendo per lasciare spazio ad altre soluzioni
     (HTML5 in primis)



14 maggio 2012        Framework per la realizzazione di RIA     13/33
Apache Flex (ex Adobe)
 ●   È basato sulla piattaforma Adobe Flash
 ●   Necessita del Flash Player o di AIR
 ●   Si può sviluppare con Eclipse o con Adobe Flash Builder
 ●   Mette a disposizione molti componenti grafici
 ●   Ottima integrazione con altri software Adobe
 ●   Permette lo sviluppo del frontend utilizzando
     ActionScript 3, non del backend che deve essere
     sviluppato utilizzando un altro linguaggio (PHP, Java, …)
 ●   Affidato ad ASF perché Adobe pensa a HTML5...
14 maggio 2012        Framework per la realizzazione di RIA   14/33
Chi usa Apache Flex?




14 maggio 2012   Framework per la realizzazione di RIA   15/33
Microsoft Silverlight
 ●   Richiede il plug-in Silverlight installato nel browser
 ●   È supportato da S.O. Microsoft, MacOS X, Windows
     Phone. Linux è supportato tramite Moonlight
 ●   Le applicazioni sono programmate usando qualunque
     linguaggio del .NET Framework e presentate con XAML
 ●   L'ambiente di sviluppo è Visual Studio + Silverlight
     Tools + MS Expression Blend oppure Eclipse + plug-in
 ●   Fornisce ottime performance, soprattutto nella gestione
     dei flussi video, anche HD

14 maggio 2012        Framework per la realizzazione di RIA   16/33
Chi usa MS Silverlight?




14 maggio 2012   Framework per la realizzazione di RIA   17/33
Oracle JavaFX
 ●   Dalla versione 2.0 è una libreria nativa Java
 ●   Richiede l'installazione della JVM e del plug-in
 ●   È supportato da diversi S.O. (Windows, MacOS, Linux)
     ma nessun dispositivo mobile (almeno ufficialmente)
 ●   Fornisce molti componenti pronti all'uso e utilizza FXML
     per la realizzazione delle interfacce grafiche
 ●   I principali strumenti sono NetBeans + Scene Builder
 ●   Verrà integrato completamente all'interno di Java 8,
     sostituendo Swing e AWT
14 maggio 2012        Framework per la realizzazione di RIA   18/33
Chi usa JavaFX?




14 maggio 2012   Framework per la realizzazione di RIA   19/33
Framework basati su AJAX 1
 ●   AJAX = Asynchronous Javascript And XML
 ●   AJAX si basa su uno scambio di dati in background fra
     web browser e server, che consente l'aggiornamento
     dinamico di una pagina web senza esplicito
     ricaricamento da parte dell'utente (Web 1.0)
 ●   La magia è fatta da XMLHttpRequest!
 ●   Non richiede plug-in, ma viene eseguito tutto all'interno
     del browser (anche, e soprattutto, dei dispositivi mobile)



14 maggio 2012        Framework per la realizzazione di RIA   20/33
Framework basati su AJAX 2


 ●   AJAX (e Javascript) è una brutta bestia...
 ●   Senza un framework bisogna gestire tante cose a mano
     Crossbrowser, comunicazione con il server, data binding
 ●   Con un framework abbiamo tanti problemi in meno!




14 maggio 2012        Framework per la realizzazione di RIA   21/33
Google Web Toolkit (GWT)
 ●   Permette di sviluppare al 100% in Java, con la
     possibilità di intervenire nella presentazione grafica
     tramite HTML e CSS
 ●   Simula un ambiente JRE utilizzando Javascript
 ●   Riduce al minimo la complessità per gestire AJAX
 ●   Mira alla creazione di componenti riutilizzabili
 ●   Fornisce diversi widget prefatti estendibili
 ●   Tutta la logica applicativa risiede sul client, che può
     ovviamente eseguire chiamate verso webserices
14 maggio 2012         Framework per la realizzazione di RIA   22/33
Chi usa GWT?




14 maggio 2012   Framework per la realizzazione di RIA   23/33
Vaadin
 ●   Utilizza GWT per la gestione del livello di presentazione
 ●   Come GWT permette lo sviluppo 100% Java
 ●   La principale differenza con GWT è che la logica
     applicativa risiede sul server
 ●   Rende lo sviluppo delle RIA simile a quello delle normali
     applicazioni desktop, fornendo molti widget utili
 ●   Esiste un plug-in per Eclipse per lo sviluppo delle GUI
 ●   Ha un supporto commerciale


14 maggio 2012        Framework per la realizzazione di RIA   24/33
Chi usa Vaadin?




14 maggio 2012   Framework per la realizzazione di RIA   25/33
ZK
 ●   Permette lo sviluppo di RIA usando solo (o quasi ) Java
 ●   È un framework MVC, MVP e MVVM event-driven
     basato su componenti AJAX
 ●   Tutta la logica applicativa risiede sul server
 ●   Mette a disposizione tantissimi componenti grafici anche
     complessi con la possibilità di realizzare le GUI
     utilizzando ZUML
 ●   Viene fornito un plug-in di Eclipse e altri tool per
     agevolare lo sviluppo

14 maggio 2012         Framework per la realizzazione di RIA   26/33
Chi usa ZK?




14 maggio 2012   Framework per la realizzazione di RIA   27/33
JavaServer Faces (JSF)
 ●   È un framework MVC request-driven basato su Java che
     fa parte della piattaforma J2EE
 ●   Utilizza le Facelets come sistema di templating per la
     creazione e la visualizzazione delle pagine
 ●   Tutta la logica applicativa event-driven risiede sul server
 ●   Sono presenti diverse implementazioni (RichFaces,
     PrimeFaces, MyFaces) che estendono il framework
 ●   Funziona anche se Javascript viene disattivato


14 maggio 2012        Framework per la realizzazione di RIA   28/33
Chi usa JSF & Co.?


         ICEfaces




                                                            PrimeFaces




14 maggio 2012      Framework per la realizzazione di RIA                29/33
Agile Toolkit
 ●   Semplifica la realizzazione di RIA con PHP nascondendo
     la complessità nel gestire AJAX
 ●   Utilizza JQuery per la realizzazione della GUI e richiede
     pochissima configurazione per essere utilizzato
 ●   Mette a disposizione componenti prefatti estendibili e
     implementa un pattern architetturale MVC
 ●   Ha una versione commerciale per distribuire applicazioni
     closed source
 ●   Ha una grande quantità di materiale informativo

14 maggio 2012        Framework per la realizzazione di RIA   30/33
Chi usa Agile Toolkit?




14 maggio 2012   Framework per la realizzazione di RIA   31/33
La lista è ancora lunga...




                 ...ma per adesso è finita!




14 maggio 2012    Framework per la realizzazione di RIA   32/33
Grazie e arrivederci!


Lorenzo Bortolotto
        lorenzo@mxlab.net
        http://www.mxlab.net
        http://it.linkedin.com/in/lorenzobortolotto


14 maggio 2012      Framework per la realizzazione di RIA   33/33

Contenu connexe

Tendances

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
 
Acadevmy - Visual Studio Code Overview
Acadevmy - Visual Studio Code OverviewAcadevmy - Visual Studio Code Overview
Acadevmy - Visual Studio Code OverviewFrancesco Sciuti
 
Yii Framework - yes it is rapid web application development (Parte 1)
Yii Framework - yes it is rapid web application development (Parte 1)Yii Framework - yes it is rapid web application development (Parte 1)
Yii Framework - yes it is rapid web application development (Parte 1)brossi676
 
Francesco Trucchia: Rapid Application Developement con strumenti Open Source
Francesco Trucchia: Rapid Application Developement con strumenti Open SourceFrancesco Trucchia: Rapid Application Developement con strumenti Open Source
Francesco Trucchia: Rapid Application Developement con strumenti Open SourceFrancesco Fullone
 
Smau milano 2012 arena social media davide-senatore
Smau milano 2012   arena social media davide-senatoreSmau milano 2012   arena social media davide-senatore
Smau milano 2012 arena social media davide-senatoreSMAU
 
Enrico Zimuel: La sicurezza delle applicazioni in PHP
Enrico Zimuel: La sicurezza delle applicazioni in PHPEnrico Zimuel: La sicurezza delle applicazioni in PHP
Enrico Zimuel: La sicurezza delle applicazioni in PHPFrancesco Fullone
 
Qt roadmap: the future of Qt
Qt roadmap: the future of QtQt roadmap: the future of Qt
Qt roadmap: the future of QtDeveler S.r.l.
 
#LRIS2014 - MessageBus, Cluster communication and Caching on B2B
#LRIS2014 - MessageBus, Cluster communication and Caching on B2B#LRIS2014 - MessageBus, Cluster communication and Caching on B2B
#LRIS2014 - MessageBus, Cluster communication and Caching on B2Bkino2k
 
Il pattern mvvm come strutturare al meglio il vostro progetto
Il pattern mvvm come strutturare al meglio il vostro progettoIl pattern mvvm come strutturare al meglio il vostro progetto
Il pattern mvvm come strutturare al meglio il vostro progettoMicrosoft Mobile Developer
 
Acadevmy - AngularDay 2018 - Change Detection, Zone.js ed altri mostri
Acadevmy - AngularDay 2018 - Change Detection, Zone.js ed altri mostriAcadevmy - AngularDay 2018 - Change Detection, Zone.js ed altri mostri
Acadevmy - AngularDay 2018 - Change Detection, Zone.js ed altri mostriFrancesco Sciuti
 
RIA: Rich Internet Applications. Interfacce utente avanzate per applicazioni ...
RIA: Rich Internet Applications. Interfacce utente avanzate per applicazioni ...RIA: Rich Internet Applications. Interfacce utente avanzate per applicazioni ...
RIA: Rich Internet Applications. Interfacce utente avanzate per applicazioni ...EvolutionBook S.r.l.
 
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
 

Tendances (16)

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
 
OpenDevSecOps 2019 - Open devsecops un caso di studio
OpenDevSecOps 2019 - Open devsecops un caso di studioOpenDevSecOps 2019 - Open devsecops un caso di studio
OpenDevSecOps 2019 - Open devsecops un caso di studio
 
Acadevmy - Visual Studio Code Overview
Acadevmy - Visual Studio Code OverviewAcadevmy - Visual Studio Code Overview
Acadevmy - Visual Studio Code Overview
 
Yii Framework - yes it is rapid web application development (Parte 1)
Yii Framework - yes it is rapid web application development (Parte 1)Yii Framework - yes it is rapid web application development (Parte 1)
Yii Framework - yes it is rapid web application development (Parte 1)
 
Francesco Trucchia: Rapid Application Developement con strumenti Open Source
Francesco Trucchia: Rapid Application Developement con strumenti Open SourceFrancesco Trucchia: Rapid Application Developement con strumenti Open Source
Francesco Trucchia: Rapid Application Developement con strumenti Open Source
 
Creare PWA con Angular
Creare PWA con AngularCreare PWA con Angular
Creare PWA con Angular
 
Smau milano 2012 arena social media davide-senatore
Smau milano 2012   arena social media davide-senatoreSmau milano 2012   arena social media davide-senatore
Smau milano 2012 arena social media davide-senatore
 
Enrico Zimuel: La sicurezza delle applicazioni in PHP
Enrico Zimuel: La sicurezza delle applicazioni in PHPEnrico Zimuel: La sicurezza delle applicazioni in PHP
Enrico Zimuel: La sicurezza delle applicazioni in PHP
 
Qt roadmap: the future of Qt
Qt roadmap: the future of QtQt roadmap: the future of Qt
Qt roadmap: the future of Qt
 
#LRIS2014 - MessageBus, Cluster communication and Caching on B2B
#LRIS2014 - MessageBus, Cluster communication and Caching on B2B#LRIS2014 - MessageBus, Cluster communication and Caching on B2B
#LRIS2014 - MessageBus, Cluster communication and Caching on B2B
 
OSGi e Liferay 7
OSGi e Liferay 7OSGi e Liferay 7
OSGi e Liferay 7
 
Il pattern mvvm come strutturare al meglio il vostro progetto
Il pattern mvvm come strutturare al meglio il vostro progettoIl pattern mvvm come strutturare al meglio il vostro progetto
Il pattern mvvm come strutturare al meglio il vostro progetto
 
Acadevmy - AngularDay 2018 - Change Detection, Zone.js ed altri mostri
Acadevmy - AngularDay 2018 - Change Detection, Zone.js ed altri mostriAcadevmy - AngularDay 2018 - Change Detection, Zone.js ed altri mostri
Acadevmy - AngularDay 2018 - Change Detection, Zone.js ed altri mostri
 
RIA: Rich Internet Applications. Interfacce utente avanzate per applicazioni ...
RIA: Rich Internet Applications. Interfacce utente avanzate per applicazioni ...RIA: Rich Internet Applications. Interfacce utente avanzate per applicazioni ...
RIA: Rich Internet Applications. Interfacce utente avanzate per applicazioni ...
 
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
 
WPD plumi
WPD   plumiWPD   plumi
WPD plumi
 

Similaire à Framework per la realizzazione di ria

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
 
Sviluppo Web Agile con Castle Monorail
Sviluppo Web Agile con Castle MonorailSviluppo Web Agile con Castle Monorail
Sviluppo Web Agile con Castle MonorailDotNetMarche
 
Tesi Discussione
Tesi DiscussioneTesi Discussione
Tesi DiscussioneYeser Rema
 
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
 
Drupal 10: un framework PHP di sviluppo Cloud Native moderno
Drupal 10: un framework PHP di sviluppo Cloud Native modernoDrupal 10: un framework PHP di sviluppo Cloud Native moderno
Drupal 10: un framework PHP di sviluppo Cloud Native modernosparkfabrik
 
I linguaggi del web - seconda edizione (3° giornata)
I linguaggi del web - seconda edizione (3° giornata)I linguaggi del web - seconda edizione (3° giornata)
I linguaggi del web - seconda edizione (3° giornata)Diego La Monica
 
Slide Mulesoft Meetup Milano #10.pdf
Slide Mulesoft Meetup Milano #10.pdfSlide Mulesoft Meetup Milano #10.pdf
Slide Mulesoft Meetup Milano #10.pdfFlorence Consulting
 
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
 
Designing with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDesigning with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDaniele Mondello
 
Flutter: Google alla conquista del mobile multi piattaforma
Flutter: Google alla conquista del mobile multi piattaformaFlutter: Google alla conquista del mobile multi piattaforma
Flutter: Google alla conquista del mobile multi piattaformaCommit University
 
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
 
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
 
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
 
Link. php [santi caltabiano]
  Link. php [santi caltabiano]  Link. php [santi caltabiano]
Link. php [santi caltabiano]santi caltabiano
 
Angular framework
Angular frameworkAngular framework
Angular frameworkLuca Modica
 
Introduzione a Ruby On Rails
Introduzione a Ruby On RailsIntroduzione a Ruby On Rails
Introduzione a Ruby On RailsLuca Mearelli
 

Similaire à Framework per la realizzazione di ria (20)

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
 
Sviluppo Web Agile con Castle Monorail
Sviluppo Web Agile con Castle MonorailSviluppo Web Agile con Castle Monorail
Sviluppo Web Agile con Castle Monorail
 
Tesi Discussione
Tesi DiscussioneTesi Discussione
Tesi Discussione
 
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
 
Microsoft Fast - Overview
Microsoft Fast - OverviewMicrosoft Fast - Overview
Microsoft Fast - Overview
 
Drupal 10: un framework PHP di sviluppo Cloud Native moderno
Drupal 10: un framework PHP di sviluppo Cloud Native modernoDrupal 10: un framework PHP di sviluppo Cloud Native moderno
Drupal 10: un framework PHP di sviluppo Cloud Native moderno
 
I linguaggi del web - seconda edizione (3° giornata)
I linguaggi del web - seconda edizione (3° giornata)I linguaggi del web - seconda edizione (3° giornata)
I linguaggi del web - seconda edizione (3° giornata)
 
Slide Mulesoft Meetup Milano #10.pdf
Slide Mulesoft Meetup Milano #10.pdfSlide Mulesoft Meetup Milano #10.pdf
Slide Mulesoft Meetup Milano #10.pdf
 
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
 
Introduzione ad Android
Introduzione ad AndroidIntroduzione ad Android
Introduzione ad Android
 
App Engine + Python
App Engine + PythonApp Engine + Python
App Engine + Python
 
Designing with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDesigning with microservices - Daniele Mondello
Designing with microservices - Daniele Mondello
 
Flutter: Google alla conquista del mobile multi piattaforma
Flutter: Google alla conquista del mobile multi piattaformaFlutter: Google alla conquista del mobile multi piattaforma
Flutter: Google alla conquista del mobile multi piattaforma
 
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
 
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
 
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
 
Link. php [santi caltabiano]
  Link. php [santi caltabiano]  Link. php [santi caltabiano]
Link. php [santi caltabiano]
 
Angular framework
Angular frameworkAngular framework
Angular framework
 
Introduzione a Ruby On Rails
Introduzione a Ruby On RailsIntroduzione a Ruby On Rails
Introduzione a Ruby On Rails
 
Flash vs jQuery
Flash vs jQueryFlash vs jQuery
Flash vs jQuery
 

Framework per la realizzazione di ria

  • 1. Socialmedia e Smart Apps 2011/2012 Framework per la realizzazione di RIA
  • 2. Cos'è una RIA? Le Rich Internet Application (RIA) sono applicazioni web che possiedono le caratteristiche e le funzionalità delle applicazioni desktop, senza però necessitare dell'installazione sul disco fisso. (Fonte: http://it.wikipedia.org/wiki/Rich_Internet_application) 14 maggio 2012 Framework per la realizzazione di RIA 2/33
  • 3. Perché sviluppare RIA? ● Manutenibilità: un solo software da manutenere ● Portabilità: diversi sistemi operativi e dispositivi ● Sicurezza: client su browser, logica applicativa sul server ● Immediatezza: no installazione, disponibilità h24 ● Usabilità: look'n feel simile alle applicazioni desktop ● Affidabilità, scalabilità e performance 14 maggio 2012 Framework per la realizzazione di RIA 3/33
  • 4. Perché NON sviluppare RIA? ● Retro compatibilità: vecchi browser potrebbero non supportare pienamente la tecnologia utilizzata ● Prestazioni: browser con prestazioni scadenti ● Limitazioni: applicazione eseguita in una sandbox 14 maggio 2012 Framework per la realizzazione di RIA 4/33
  • 5. Esempi di RIA 14 maggio 2012 Framework per la realizzazione di RIA 5/33
  • 6. Cos'è un Framework? Si tratta di una serie di classi che collaborano tra di loro allo scopo di definire la struttura base di un'applicazione, delle classi, degli oggetti e soprattutto del workflow, implementando le classi preesistenti e sfruttandone i punti "flessibili", chiamati anche "hot spots" 14 maggio 2012 Framework per la realizzazione di RIA 6/33
  • 7. Framework Vs Library ● Inversion of control: il framework definisce il workflow dell'applicazione ● Comportamento predefinito: il framework ha un workflow predefinito ● Extensibility: è possibile estendere il framework ● Non-modifiable framework code: alcuni punti del framework non sono modificabili (“frozen spots”) 14 maggio 2012 Framework per la realizzazione di RIA 7/33
  • 8. Framework Vs Platform ● La platform comprende hardware e software ● La platform permette l'esecuzione di un programma ● Il framework è riferito solo al software ● Il framework semplifica il disegno delle applicazioni Es.: Java è una platform, Hibernate è un framework OGGI PARLIAMO DI FRAMEWORK! 14 maggio 2012 Framework per la realizzazione di RIA 8/33
  • 9. Perché usare un Framework? ● Non reinventare la ruota ● Velocizzare lo sviluppo del software, concentrandosi sulle funzionalità di alto livello ● Contenere i costi di sviluppo 14 maggio 2012 Framework per la realizzazione di RIA 9/33
  • 10. Come valutare un framework? Alcuni spunti di ragionamento... ● Maturità ● Affidabilità ● Rapidità di ● Comunità & apprendimento Documentazione ● Produttività ● Licenza d'uso ● Personalizzazione ● Provare provare provare 14 maggio 2012 Framework per la realizzazione di RIA 10/33
  • 11. Esempi di Framework 14 maggio 2012 Framework per la realizzazione di RIA 11/33
  • 12. Divide et impera! In questa presentazione dividiamo i framework in base alla tecnologia necessaria per il funzionamento delle applicazioni Basata su plug-in Basata su AJAX 14 maggio 2012 Framework per la realizzazione di RIA 12/33
  • 13. Framework basati su plug-in ● Richiedono l'installazione di un plug-in all'interno del browser o del dispositivo mobile ● Solitamente forniscono una user experience, delle prestazioni migliori e maggiori funzionalità ● Solitamente non sono molto Search Engine Friendly ● Il loro uso sta lentamente ma inesorabilmente diminuendo per lasciare spazio ad altre soluzioni (HTML5 in primis) 14 maggio 2012 Framework per la realizzazione di RIA 13/33
  • 14. Apache Flex (ex Adobe) ● È basato sulla piattaforma Adobe Flash ● Necessita del Flash Player o di AIR ● Si può sviluppare con Eclipse o con Adobe Flash Builder ● Mette a disposizione molti componenti grafici ● Ottima integrazione con altri software Adobe ● Permette lo sviluppo del frontend utilizzando ActionScript 3, non del backend che deve essere sviluppato utilizzando un altro linguaggio (PHP, Java, …) ● Affidato ad ASF perché Adobe pensa a HTML5... 14 maggio 2012 Framework per la realizzazione di RIA 14/33
  • 15. Chi usa Apache Flex? 14 maggio 2012 Framework per la realizzazione di RIA 15/33
  • 16. Microsoft Silverlight ● Richiede il plug-in Silverlight installato nel browser ● È supportato da S.O. Microsoft, MacOS X, Windows Phone. Linux è supportato tramite Moonlight ● Le applicazioni sono programmate usando qualunque linguaggio del .NET Framework e presentate con XAML ● L'ambiente di sviluppo è Visual Studio + Silverlight Tools + MS Expression Blend oppure Eclipse + plug-in ● Fornisce ottime performance, soprattutto nella gestione dei flussi video, anche HD 14 maggio 2012 Framework per la realizzazione di RIA 16/33
  • 17. Chi usa MS Silverlight? 14 maggio 2012 Framework per la realizzazione di RIA 17/33
  • 18. Oracle JavaFX ● Dalla versione 2.0 è una libreria nativa Java ● Richiede l'installazione della JVM e del plug-in ● È supportato da diversi S.O. (Windows, MacOS, Linux) ma nessun dispositivo mobile (almeno ufficialmente) ● Fornisce molti componenti pronti all'uso e utilizza FXML per la realizzazione delle interfacce grafiche ● I principali strumenti sono NetBeans + Scene Builder ● Verrà integrato completamente all'interno di Java 8, sostituendo Swing e AWT 14 maggio 2012 Framework per la realizzazione di RIA 18/33
  • 19. Chi usa JavaFX? 14 maggio 2012 Framework per la realizzazione di RIA 19/33
  • 20. Framework basati su AJAX 1 ● AJAX = Asynchronous Javascript And XML ● AJAX si basa su uno scambio di dati in background fra web browser e server, che consente l'aggiornamento dinamico di una pagina web senza esplicito ricaricamento da parte dell'utente (Web 1.0) ● La magia è fatta da XMLHttpRequest! ● Non richiede plug-in, ma viene eseguito tutto all'interno del browser (anche, e soprattutto, dei dispositivi mobile) 14 maggio 2012 Framework per la realizzazione di RIA 20/33
  • 21. Framework basati su AJAX 2 ● AJAX (e Javascript) è una brutta bestia... ● Senza un framework bisogna gestire tante cose a mano Crossbrowser, comunicazione con il server, data binding ● Con un framework abbiamo tanti problemi in meno! 14 maggio 2012 Framework per la realizzazione di RIA 21/33
  • 22. Google Web Toolkit (GWT) ● Permette di sviluppare al 100% in Java, con la possibilità di intervenire nella presentazione grafica tramite HTML e CSS ● Simula un ambiente JRE utilizzando Javascript ● Riduce al minimo la complessità per gestire AJAX ● Mira alla creazione di componenti riutilizzabili ● Fornisce diversi widget prefatti estendibili ● Tutta la logica applicativa risiede sul client, che può ovviamente eseguire chiamate verso webserices 14 maggio 2012 Framework per la realizzazione di RIA 22/33
  • 23. Chi usa GWT? 14 maggio 2012 Framework per la realizzazione di RIA 23/33
  • 24. Vaadin ● Utilizza GWT per la gestione del livello di presentazione ● Come GWT permette lo sviluppo 100% Java ● La principale differenza con GWT è che la logica applicativa risiede sul server ● Rende lo sviluppo delle RIA simile a quello delle normali applicazioni desktop, fornendo molti widget utili ● Esiste un plug-in per Eclipse per lo sviluppo delle GUI ● Ha un supporto commerciale 14 maggio 2012 Framework per la realizzazione di RIA 24/33
  • 25. Chi usa Vaadin? 14 maggio 2012 Framework per la realizzazione di RIA 25/33
  • 26. ZK ● Permette lo sviluppo di RIA usando solo (o quasi ) Java ● È un framework MVC, MVP e MVVM event-driven basato su componenti AJAX ● Tutta la logica applicativa risiede sul server ● Mette a disposizione tantissimi componenti grafici anche complessi con la possibilità di realizzare le GUI utilizzando ZUML ● Viene fornito un plug-in di Eclipse e altri tool per agevolare lo sviluppo 14 maggio 2012 Framework per la realizzazione di RIA 26/33
  • 27. Chi usa ZK? 14 maggio 2012 Framework per la realizzazione di RIA 27/33
  • 28. JavaServer Faces (JSF) ● È un framework MVC request-driven basato su Java che fa parte della piattaforma J2EE ● Utilizza le Facelets come sistema di templating per la creazione e la visualizzazione delle pagine ● Tutta la logica applicativa event-driven risiede sul server ● Sono presenti diverse implementazioni (RichFaces, PrimeFaces, MyFaces) che estendono il framework ● Funziona anche se Javascript viene disattivato 14 maggio 2012 Framework per la realizzazione di RIA 28/33
  • 29. Chi usa JSF & Co.? ICEfaces PrimeFaces 14 maggio 2012 Framework per la realizzazione di RIA 29/33
  • 30. Agile Toolkit ● Semplifica la realizzazione di RIA con PHP nascondendo la complessità nel gestire AJAX ● Utilizza JQuery per la realizzazione della GUI e richiede pochissima configurazione per essere utilizzato ● Mette a disposizione componenti prefatti estendibili e implementa un pattern architetturale MVC ● Ha una versione commerciale per distribuire applicazioni closed source ● Ha una grande quantità di materiale informativo 14 maggio 2012 Framework per la realizzazione di RIA 30/33
  • 31. Chi usa Agile Toolkit? 14 maggio 2012 Framework per la realizzazione di RIA 31/33
  • 32. La lista è ancora lunga... ...ma per adesso è finita! 14 maggio 2012 Framework per la realizzazione di RIA 32/33
  • 33. Grazie e arrivederci! Lorenzo Bortolotto lorenzo@mxlab.net http://www.mxlab.net http://it.linkedin.com/in/lorenzobortolotto 14 maggio 2012 Framework per la realizzazione di RIA 33/33