In questa presentazione verrà introdotto brevemente il concetto di RIA (Rich Internet Application), di Framework e fondendo i due concetti verranno presentati alcuni dei più conosciuti Framework per la realizzazione di RIA. Visualizza la presentazione.
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
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