際際滷

際際滷Share a Scribd company logo
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

More Related Content

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