SlideShare a Scribd company logo
1 of 58
MARCO CASARIO
CTO – Comtaste
http://casario.blogs.co
m
My books




                     GEN 09
WWW.COMTASTE.COM
My books




                     GEN 09
WWW.COMTASTE.COM
My books




                     GEN 09
WWW.COMTASTE.COM
My Books

                   Advanced AIR Application Development




                                                            GEN 09
WWW.COMTASTE.COM
Who i am




                     GEN 09
WWW.COMTASTE.COM
GOAL




Maximizing the
User Experiences
MISSION


“Bringing Sexy Back to the Enterprise applications”
by a clever use of Rich Internet Applications and
Multimedia content.

Because better information workplaces:

make customers happier

improve the quality of work life for employees
WHY


In other words:

RIAs in enterprise environments dramatically
increase staff productivity and responsive
capacity

Multimedia contents add enhanced effectiveness
WHY


In other words:

RIAs in enterprise environments dramatically
increase staff productivity and responsive
capacity

Multimedia contents add enhanced effectiveness
TECHNOLOGIE
                                                     S


The technologies we use:

   J2EE (Java, JSP, Hibernate, EJB3, Struts, Spring)
   Ajax
   Flash
   Flex
   AIR
   Flash Media Server
TEAM


Who can make it possible




 J2EE Developers   Flex/Flash Developers   Creative UI Designers
CLIENTS

Accenture S.p.A.                      CapGemini S.p.A.
 
Adobe Systems Software Ireland Ltd.   Itag S.p.A
 
Altran Cis S.p.A.                     Nexus Information Technologies
                                      S.a.u.– Gruppo Iconmedialab
Apress Inc.
                                      Televideocom S.p.A.
Reply
                                      University of Malta – Link Campus
Area Interactive Design S.r.l.
                                      STE
BPU Banca S.p.A. – UBI Group
                                      HP
TELECOM
                                      Poste Svizzere
CASE HISTORIE
             S
Flex Daily Solutions
                       Who am I
Flash Player




                        GEN 09
WWW.COMTASTE.COM
Flash Player 10




                           GEN 09
WWW.COMTASTE.COM
I numeri di Flex
GURU MEETING
                     Who am I




                            GEN 09
WWW.COMTASTE.COM
I numeri di Flex
GURU MEETING
                     Who am I




                            GEN 09
WWW.COMTASTE.COM
Capire Flex




                       GEN 09
WWW.COMTASTE.COM
Ca sh P F yer
                   Flapire lalex




                        GEN 09
WWW.COMTASTE.COM
Capire Flex




                       GEN 09
WWW.COMTASTE.COM
Capire Flex




                       GEN 09
WWW.COMTASTE.COM
Capire Flex




                       GEN 09
WWW.COMTASTE.COM
Capire Flex




                       GEN 09
WWW.COMTASTE.COM
Enterprise Flex


                   1. Application Design

                     Tool per UML Modeling
    ◦   Supporto per ActionScript 3
    ◦   Auto generazione dello scheletro del codice

    Enterprise Architect - $239-$135
    Visual Paradigm - $70-$59
    VASGen - Free
    UMLet – Free
    StarUML - Free
                                                          GEN 09
WWW.COMTASTE.COM
Enterprise Flex


                   2. Gestione del codice

          Tool per (source) code management (SCM)

    ◦   Integrazione in Eclipse/Flex Builder


    CVS
    Subversion
    Perforce / P4WSAD
    Clearcase

                                                       GEN 09
WWW.COMTASTE.COM
Enterprise Flex


           3. Generazione documentazione

  Tool per la generazione di documentazione API in formato
                          da codice AS 3



                        ASDoc


                                                    GEN 09
WWW.COMTASTE.COM
Enterprise Flex


                   4. Build management tool

                         Flex Ant Tasks

      Fornisce uno standard per usare i progetti Ant nelle
        applicazioni Flex invocando i compilatori mxmlc e
                              compc.

               Flex-Mojo (http://blog.flex-mojos.info/)
     Un plugin Maven per creare progetti Flex con Maven.
                                                           GEN 09
WWW.COMTASTE.COM
Enterprise Flex


                    5. Unit Testing

                         Flex Unit


   E’ uno unit testing framework per Flex ed ActionScript 3
                         (progetti e librerie)




                                                      GEN 09
WWW.COMTASTE.COM
Enterprise Flex


         6. Integrazione con framework Java

                               Spring

     Spring BlazeDS Integration (RemoteObject e message
 
     services)

     SpringSource Adapter for LiveCycle Data Services ES which
 
     will provide integration with Adobe LiveCycle Data Services
     ( server push-based applications )


                                                              GEN 09
WWW.COMTASTE.COM
Enterprise Flex


         6. Integrazione con framework Java

                                Grails

 Grails Flex plugin : per comunicare da Flex ai servizi Grails senza
     nessuna configurazione




                                                               GEN 09
WWW.COMTASTE.COM
Livecycle Data Services




                                  GEN 09
WWW.COMTASTE.COM
Collaborative Application




                                    GEN 09
WWW.COMTASTE.COM
Capire BlazeDS




                           GEN 09
WWW.COMTASTE.COM
Flex è Open Source




                               GEN 09
WWW.COMTASTE.COM
Best Practice Flex


             1. Capire le Flex Application


       Le applicazioni Flex vengono eseguite
       all’interno del browser attraverso il Flash
       Player plugin

       Le applicazioni Flex sono file SWF che hanno
       2 frames




                                                      GEN 09
WWW.COMTASTE.COM
Best Practice Flex


             1. Capire le Flex Application


       Il primo frame di un Flex movie contiene:

       4. SystemManager
       5. Preloader
       6. DonwloadProgressBar




                                                   GEN 09
WWW.COMTASTE.COM
Best Practice Flex


             1. Capire le Flex Application


       E’ nel SystemManager object che avviene la
          maggior parte delle azioni.

       L’oggetto SystemManager è la parent class
         del tag Application (ma non solo ...)




                                                    GEN 09
WWW.COMTASTE.COM
Best Practice Flex


             1. Capire le Flex Application



       Il costruttore del SystemManager controlla:

       • Se si sta caricando in un altra applicazione
         il contenuto
       • Interrompe la riproduzione del flash movie
       • Comunica alla ResourceBundle class quale
         locale mostrare allo start up
       • Crea un event listener per l’evento INIT e
         lancia l’initHandler()
                                                        GEN 09
WWW.COMTASTE.COM
Best Practice Flex


             1. Capire le Flex Application


       Il loaderInfo object gestisce una serie di
           proprietà read-only e di eventi (complete,
           init, progress, httpStatus ...)

       Gestisce le informazioni sulla quantità di dati
         caricati e da caricare

       Una volta che il SystemManager è stato
         eseguito l’INIT event del loaderInfo object
         è caricato
                                                         GEN 09
WWW.COMTASTE.COM
Best Practice Flex


             1. Capire le Flex Application


       Nell’initHandler() viene utilizzato un metodo
         non documentato : addFrameScript()

       Questo metodo permette di richiamare un
         metodo ogni volta che l’applicazione entra
         in un frame specifico

       Viene chiamato l’evento initialize()



                                                       GEN 09
WWW.COMTASTE.COM
Best Practice Flex


              1. Capire le Flex Application


       Il metodo Initialize crea un Preloader object
          che viene aggiunto al SystemManager

       Vengono inoltre prese le informazioni di ogni
         RSL utilizzata nel progetto

       Vengono registrate le classi:
       •   ResourceManager
       •   FontRegistry
       •   StyleManagers
       •   flashvars
                                                       GEN 09
WWW.COMTASTE.COM
Best Practice Flex


             1. Capire le Flex Application


       Il Preloader comincia a caricare le RSL e crea
          un’istanza della DownloadProgressBar.

       E’ questa la classe da sovrascrivere se si
          vuole usare un custom preloader

       Il Flash Player sta per caricare il secondo
          frame !



                                                        GEN 09
WWW.COMTASTE.COM
Best Practice Flex


             1. Capire le Flex Application


       Comincia la fase di istanziazione
         dell’interfaccia

       Viene creata un istanza dell’applicazione ma
         non viene ancora aggiunta al
         SystemManager ma viene passata al
         Preloader




                                                      GEN 09
WWW.COMTASTE.COM
Best Practice Flex


              1. Capire le Flex Application


       Il Preolader reagisce ai seguenti eventi:

       •   validatePropertiesComplete
       •   validateSizeComplete
       •   ValidateDisplayListComplete
       •   creationComplete

       Allo scattare di ognuno di questi eventi, il
          Preloader esegue un INIT_PROGRESS event

                                                      GEN 09
WWW.COMTASTE.COM
Best Practice Flex


             1. Capire le Flex Application


       Il SystemManager inizia il processo di
          inizializzazione dell’applicazione
          chiamando l’evento initialize() della
          subclass dell’Application




                                                    GEN 09
WWW.COMTASTE.COM
Best Practice Flex


             1. Capire le Flex Application


       Il SystemManager inizia il processo di
          inizializzazione dell’applicazione
          chiamando l’evento initialize() della
          subclass dell’Application

       L’applicazione raccoglie le informazioni per i
         suoi children dai Descriptors (istanze della
         classe ComponentDescriptor class creata
         per ogni MXML tag)

                                                        GEN 09
WWW.COMTASTE.COM
Best Practice Flex


             1. Capire le Flex Application


       Scatta l’evento preInitialize prima che i
         componenti vengono creati

       In questo evento è buona norma cambiare le
          proprietà di un componente




                                                    GEN 09
WWW.COMTASTE.COM
Best Practice Flex


             1. Capire le Flex Application


       Il metodo createChildren() viene invocato.

       Importante nello sviluppo di custom
         component perchè garantisce che i display
         objects vengano creati

       In questo metodo vengono creati i bordi
          dell’applicazione e le scrollbars (se ce n’è
          bisogno)

                                                         GEN 09
WWW.COMTASTE.COM
Best Practice Flex


               1. Capire le Flex Application


       Una volta che tutti i figli vengono creati
         ricorsivamente il metodo
         childrenCreated() viene lanciato.

       Questo metodo chiama i metodi di
         invalidazione:

           •   invalidateProperties()
           •   invalidateSize()
           •   invalidateDisplayList()


                                                     GEN 09
WWW.COMTASTE.COM
Best Practice Flex


             1. Capire le Flex Application


       Ognuno di questi metodi chiede al Flex
         framework di invocare i metodi:

       commitProperties()
       measure()
       updateDisplayList()




                                                  GEN 09
WWW.COMTASTE.COM
Best Practice Flex


             1. Capire le Flex Application


       Vengono ora letti ed eseguiti i bindings
         assegnati alle proprietà dei child

       L’evento initialize per ogni child viene
         chiamato

       A questo punto i child sono stati creati ma
         non posizionati e dimensionati



                                                     GEN 09
WWW.COMTASTE.COM
Best Practice Flex


             1. Capire le Flex Application


       L’evento ENTER_FRAME chiama il codice
         all’interno della classe UIComponent che
         comunica con il LayoutManager e controlla
         se un componente deve esser misurato e
         ridisegnato

       Vengono chiamati di nuovo i metodi per
         l’invalidazione



                                                     GEN 09
WWW.COMTASTE.COM
Best Practice Flex


             1. Capire le Flex Application


       Se non ci sono altri componenti figli da
         creare, l’evento creationComplete su quel
         component viene eseguito




                                                     GEN 09
WWW.COMTASTE.COM
Best Practice Flex


             1. Capire le Flex Application


       Il Preloader che era in ascolto del
          creationComplete event dell’application
          esegue del codice e indica che il suo
          lavoro è finito.

       Il SystemManager rimuove il preloader e
          aggiunge l’applicazione al SystemManager
          che adesso si vede per la prima volta.



                                                     GEN 09
WWW.COMTASTE.COM
Best Practice Flex


             1. Capire le Flex Application


       L’evento applicationComplete viene eseguito
         sia dall’applicazione che dal
         SystemManager

       L’applicazione è ora visibile e lo start up è
         completo !




                                                       GEN 09
WWW.COMTASTE.COM
MARCO CASARIO
CTO – Comtaste
http://casario.blogs.co
m

More Related Content

Similar to Enterprise Rich Internet Applications con Java, Livecycle DS e Flex 3

Rich Internet Application con Flex, AIR e Java
Rich Internet Application con Flex, AIR e JavaRich Internet Application con Flex, AIR e Java
Rich Internet Application con Flex, AIR e Javamarcocasario
 
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.
 
Developing Adobe AIR desktop applications
Developing Adobe AIR desktop applicationsDeveloping Adobe AIR desktop applications
Developing Adobe AIR desktop applicationsmarcocasario
 
Presentazione Web Site
Presentazione Web SitePresentazione Web Site
Presentazione Web SiteWeb Site srl
 
UI Composition - Prism
UI Composition - PrismUI Composition - Prism
UI Composition - PrismDotNetMarche
 
Italian C++ MeetUp - 24/10/2015
Italian C++ MeetUp - 24/10/2015Italian C++ MeetUp - 24/10/2015
Italian C++ MeetUp - 24/10/2015Gaetano Paternò
 
2015 CLOUD LOGIN - ISV Partner Program e Power8
2015 CLOUD LOGIN - ISV Partner Program e Power82015 CLOUD LOGIN - ISV Partner Program e Power8
2015 CLOUD LOGIN - ISV Partner Program e Power8ServiceCloud - Esprinet
 
Scelta Software Elearning
Scelta Software ElearningScelta Software Elearning
Scelta Software ElearningFormaLms
 
Presentazione IBM i virtualizzazione su Power System
Presentazione IBM i virtualizzazione su Power SystemPresentazione IBM i virtualizzazione su Power System
Presentazione IBM i virtualizzazione su Power SystemPRAGMA PROGETTI
 
#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
 
Drupal Day 2011 - MobileD!
Drupal Day 2011 - MobileD!Drupal Day 2011 - MobileD!
Drupal Day 2011 - MobileD!DrupalDay
 
Evoluzione del web development dalle cgi ai microservices
Evoluzione del web development dalle cgi ai microservicesEvoluzione del web development dalle cgi ai microservices
Evoluzione del web development dalle cgi ai microservicesDaniele Mondello
 
IBM Softwareland 2008 - Rational
IBM Softwareland 2008 - RationalIBM Softwareland 2008 - Rational
IBM Softwareland 2008 - Rationalfedericobotti
 
Creazione componenti con Vue js
Creazione componenti con Vue jsCreazione componenti con Vue js
Creazione componenti con Vue jsGianfranco Castro
 
Installazione del cms alfresco
Installazione del cms alfrescoInstallazione del cms alfresco
Installazione del cms alfrescoMirco Leo
 

Similar to Enterprise Rich Internet Applications con Java, Livecycle DS e Flex 3 (20)

Spring e Flex
Spring e FlexSpring e Flex
Spring e Flex
 
Rich Internet Application con Flex, AIR e Java
Rich Internet Application con Flex, AIR e JavaRich Internet Application con Flex, AIR e Java
Rich Internet Application con Flex, AIR e Java
 
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 ...
 
Developing Adobe AIR desktop applications
Developing Adobe AIR desktop applicationsDeveloping Adobe AIR desktop applications
Developing Adobe AIR desktop applications
 
Presentazione Web Site
Presentazione Web SitePresentazione Web Site
Presentazione Web Site
 
Tesina Grupposis
Tesina GrupposisTesina Grupposis
Tesina Grupposis
 
UI Composition - Prism
UI Composition - PrismUI Composition - Prism
UI Composition - Prism
 
Italian C++ MeetUp - 24/10/2015
Italian C++ MeetUp - 24/10/2015Italian C++ MeetUp - 24/10/2015
Italian C++ MeetUp - 24/10/2015
 
2015 CLOUD LOGIN - ISV Partner Program e Power8
2015 CLOUD LOGIN - ISV Partner Program e Power82015 CLOUD LOGIN - ISV Partner Program e Power8
2015 CLOUD LOGIN - ISV Partner Program e Power8
 
Mobile UI Design
Mobile UI DesignMobile UI Design
Mobile UI Design
 
Scelta Software Elearning
Scelta Software ElearningScelta Software Elearning
Scelta Software Elearning
 
Presentazione IBM i virtualizzazione su Power System
Presentazione IBM i virtualizzazione su Power SystemPresentazione IBM i virtualizzazione su Power System
Presentazione IBM i virtualizzazione su Power System
 
#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
 
Drupal Day 2011 - MobileD!
Drupal Day 2011 - MobileD!Drupal Day 2011 - MobileD!
Drupal Day 2011 - MobileD!
 
Brochure StudioZeroPixel
Brochure StudioZeroPixelBrochure StudioZeroPixel
Brochure StudioZeroPixel
 
7APP corporate brochure
7APP corporate brochure 7APP corporate brochure
7APP corporate brochure
 
Evoluzione del web development dalle cgi ai microservices
Evoluzione del web development dalle cgi ai microservicesEvoluzione del web development dalle cgi ai microservices
Evoluzione del web development dalle cgi ai microservices
 
IBM Softwareland 2008 - Rational
IBM Softwareland 2008 - RationalIBM Softwareland 2008 - Rational
IBM Softwareland 2008 - Rational
 
Creazione componenti con Vue js
Creazione componenti con Vue jsCreazione componenti con Vue js
Creazione componenti con Vue js
 
Installazione del cms alfresco
Installazione del cms alfrescoInstallazione del cms alfresco
Installazione del cms alfresco
 

More from marcocasario

HTML5, CSS3 e Javascript per sviluppare Web App per tutti gli schermi - Codem...
HTML5, CSS3 e Javascript per sviluppare Web App per tutti gli schermi - Codem...HTML5, CSS3 e Javascript per sviluppare Web App per tutti gli schermi - Codem...
HTML5, CSS3 e Javascript per sviluppare Web App per tutti gli schermi - Codem...marcocasario
 
HTML5 Italy: Back end ecosystems for your applications - Cesare Rocchi + Clau...
HTML5 Italy: Back end ecosystems for your applications - Cesare Rocchi + Clau...HTML5 Italy: Back end ecosystems for your applications - Cesare Rocchi + Clau...
HTML5 Italy: Back end ecosystems for your applications - Cesare Rocchi + Clau...marcocasario
 
HTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore Romeo
HTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore RomeoHTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore Romeo
HTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore Romeomarcocasario
 
HTML5 cross-platform and device development: web app per tutti gli schermi
HTML5 cross-platform and device development: web app per tutti gli schermiHTML5 cross-platform and device development: web app per tutti gli schermi
HTML5 cross-platform and device development: web app per tutti gli schermimarcocasario
 
Local Persistent data with ActionScript 3 and AIR
Local Persistent data with ActionScript 3 and AIRLocal Persistent data with ActionScript 3 and AIR
Local Persistent data with ActionScript 3 and AIRmarcocasario
 
We make it RIA at Comtaste
We make it RIA at ComtasteWe make it RIA at Comtaste
We make it RIA at Comtastemarcocasario
 
Flex and AIR User Interface Design Showcases and Examples
Flex and AIR User Interface Design Showcases and ExamplesFlex and AIR User Interface Design Showcases and Examples
Flex and AIR User Interface Design Showcases and Examplesmarcocasario
 
Architecting ActionScript 3 applications using PureMVC
Architecting ActionScript 3 applications using PureMVCArchitecting ActionScript 3 applications using PureMVC
Architecting ActionScript 3 applications using PureMVCmarcocasario
 
The ActionScript Conference 08, Singapore - Developing ActionScript 3 Mash up...
The ActionScript Conference 08, Singapore - Developing ActionScript 3 Mash up...The ActionScript Conference 08, Singapore - Developing ActionScript 3 Mash up...
The ActionScript Conference 08, Singapore - Developing ActionScript 3 Mash up...marcocasario
 
Flex Daily Solutions @ FITC 2008
Flex Daily Solutions @ FITC 2008Flex Daily Solutions @ FITC 2008
Flex Daily Solutions @ FITC 2008marcocasario
 
Developing AJAX pages using the Adobe Spry framework in Dreamweaver CS3
Developing AJAX pages using the Adobe Spry framework in Dreamweaver CS3Developing AJAX pages using the Adobe Spry framework in Dreamweaver CS3
Developing AJAX pages using the Adobe Spry framework in Dreamweaver CS3marcocasario
 
Choosing the right Rich Internet Application technology path
Choosing the right Rich Internet Application technology pathChoosing the right Rich Internet Application technology path
Choosing the right Rich Internet Application technology pathmarcocasario
 

More from marcocasario (13)

HTML5, CSS3 e Javascript per sviluppare Web App per tutti gli schermi - Codem...
HTML5, CSS3 e Javascript per sviluppare Web App per tutti gli schermi - Codem...HTML5, CSS3 e Javascript per sviluppare Web App per tutti gli schermi - Codem...
HTML5, CSS3 e Javascript per sviluppare Web App per tutti gli schermi - Codem...
 
HTML5 Italy: Back end ecosystems for your applications - Cesare Rocchi + Clau...
HTML5 Italy: Back end ecosystems for your applications - Cesare Rocchi + Clau...HTML5 Italy: Back end ecosystems for your applications - Cesare Rocchi + Clau...
HTML5 Italy: Back end ecosystems for your applications - Cesare Rocchi + Clau...
 
HTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore Romeo
HTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore RomeoHTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore Romeo
HTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore Romeo
 
HTML5 cross-platform and device development: web app per tutti gli schermi
HTML5 cross-platform and device development: web app per tutti gli schermiHTML5 cross-platform and device development: web app per tutti gli schermi
HTML5 cross-platform and device development: web app per tutti gli schermi
 
Local Persistent data with ActionScript 3 and AIR
Local Persistent data with ActionScript 3 and AIRLocal Persistent data with ActionScript 3 and AIR
Local Persistent data with ActionScript 3 and AIR
 
We make it RIA at Comtaste
We make it RIA at ComtasteWe make it RIA at Comtaste
We make it RIA at Comtaste
 
Flex and AIR User Interface Design Showcases and Examples
Flex and AIR User Interface Design Showcases and ExamplesFlex and AIR User Interface Design Showcases and Examples
Flex and AIR User Interface Design Showcases and Examples
 
Architecting ActionScript 3 applications using PureMVC
Architecting ActionScript 3 applications using PureMVCArchitecting ActionScript 3 applications using PureMVC
Architecting ActionScript 3 applications using PureMVC
 
The ActionScript Conference 08, Singapore - Developing ActionScript 3 Mash up...
The ActionScript Conference 08, Singapore - Developing ActionScript 3 Mash up...The ActionScript Conference 08, Singapore - Developing ActionScript 3 Mash up...
The ActionScript Conference 08, Singapore - Developing ActionScript 3 Mash up...
 
FlexCamp London
FlexCamp LondonFlexCamp London
FlexCamp London
 
Flex Daily Solutions @ FITC 2008
Flex Daily Solutions @ FITC 2008Flex Daily Solutions @ FITC 2008
Flex Daily Solutions @ FITC 2008
 
Developing AJAX pages using the Adobe Spry framework in Dreamweaver CS3
Developing AJAX pages using the Adobe Spry framework in Dreamweaver CS3Developing AJAX pages using the Adobe Spry framework in Dreamweaver CS3
Developing AJAX pages using the Adobe Spry framework in Dreamweaver CS3
 
Choosing the right Rich Internet Application technology path
Choosing the right Rich Internet Application technology pathChoosing the right Rich Internet Application technology path
Choosing the right Rich Internet Application technology path
 

Enterprise Rich Internet Applications con Java, Livecycle DS e Flex 3

  • 1. MARCO CASARIO CTO – Comtaste http://casario.blogs.co m
  • 2. My books GEN 09 WWW.COMTASTE.COM
  • 3. My books GEN 09 WWW.COMTASTE.COM
  • 4. My books GEN 09 WWW.COMTASTE.COM
  • 5. My Books Advanced AIR Application Development GEN 09 WWW.COMTASTE.COM
  • 6. Who i am GEN 09 WWW.COMTASTE.COM
  • 8. MISSION “Bringing Sexy Back to the Enterprise applications” by a clever use of Rich Internet Applications and Multimedia content. Because better information workplaces: make customers happier improve the quality of work life for employees
  • 9. WHY In other words: RIAs in enterprise environments dramatically increase staff productivity and responsive capacity Multimedia contents add enhanced effectiveness
  • 10. WHY In other words: RIAs in enterprise environments dramatically increase staff productivity and responsive capacity Multimedia contents add enhanced effectiveness
  • 11. TECHNOLOGIE S The technologies we use:  J2EE (Java, JSP, Hibernate, EJB3, Struts, Spring)  Ajax  Flash  Flex  AIR  Flash Media Server
  • 12. TEAM Who can make it possible J2EE Developers Flex/Flash Developers Creative UI Designers
  • 13. CLIENTS Accenture S.p.A. CapGemini S.p.A.   Adobe Systems Software Ireland Ltd. Itag S.p.A   Altran Cis S.p.A. Nexus Information Technologies   S.a.u.– Gruppo Iconmedialab Apress Inc. Televideocom S.p.A. Reply University of Malta – Link Campus Area Interactive Design S.r.l. STE BPU Banca S.p.A. – UBI Group HP TELECOM Poste Svizzere
  • 16. Flash Player GEN 09 WWW.COMTASTE.COM
  • 17. Flash Player 10 GEN 09 WWW.COMTASTE.COM
  • 18. I numeri di Flex GURU MEETING Who am I GEN 09 WWW.COMTASTE.COM
  • 19. I numeri di Flex GURU MEETING Who am I GEN 09 WWW.COMTASTE.COM
  • 20. Capire Flex GEN 09 WWW.COMTASTE.COM
  • 21. Ca sh P F yer Flapire lalex GEN 09 WWW.COMTASTE.COM
  • 22. Capire Flex GEN 09 WWW.COMTASTE.COM
  • 23. Capire Flex GEN 09 WWW.COMTASTE.COM
  • 24. Capire Flex GEN 09 WWW.COMTASTE.COM
  • 25. Capire Flex GEN 09 WWW.COMTASTE.COM
  • 26. Enterprise Flex 1. Application Design Tool per UML Modeling ◦ Supporto per ActionScript 3 ◦ Auto generazione dello scheletro del codice Enterprise Architect - $239-$135 Visual Paradigm - $70-$59 VASGen - Free UMLet – Free StarUML - Free GEN 09 WWW.COMTASTE.COM
  • 27. Enterprise Flex 2. Gestione del codice Tool per (source) code management (SCM) ◦ Integrazione in Eclipse/Flex Builder CVS Subversion Perforce / P4WSAD Clearcase GEN 09 WWW.COMTASTE.COM
  • 28. Enterprise Flex 3. Generazione documentazione Tool per la generazione di documentazione API in formato da codice AS 3 ASDoc GEN 09 WWW.COMTASTE.COM
  • 29. Enterprise Flex 4. Build management tool Flex Ant Tasks Fornisce uno standard per usare i progetti Ant nelle applicazioni Flex invocando i compilatori mxmlc e compc. Flex-Mojo (http://blog.flex-mojos.info/) Un plugin Maven per creare progetti Flex con Maven. GEN 09 WWW.COMTASTE.COM
  • 30. Enterprise Flex 5. Unit Testing Flex Unit E’ uno unit testing framework per Flex ed ActionScript 3 (progetti e librerie) GEN 09 WWW.COMTASTE.COM
  • 31. Enterprise Flex 6. Integrazione con framework Java Spring Spring BlazeDS Integration (RemoteObject e message  services) SpringSource Adapter for LiveCycle Data Services ES which  will provide integration with Adobe LiveCycle Data Services ( server push-based applications ) GEN 09 WWW.COMTASTE.COM
  • 32. Enterprise Flex 6. Integrazione con framework Java Grails Grails Flex plugin : per comunicare da Flex ai servizi Grails senza nessuna configurazione GEN 09 WWW.COMTASTE.COM
  • 33. Livecycle Data Services GEN 09 WWW.COMTASTE.COM
  • 34. Collaborative Application GEN 09 WWW.COMTASTE.COM
  • 35. Capire BlazeDS GEN 09 WWW.COMTASTE.COM
  • 36. Flex è Open Source GEN 09 WWW.COMTASTE.COM
  • 37. Best Practice Flex 1. Capire le Flex Application Le applicazioni Flex vengono eseguite all’interno del browser attraverso il Flash Player plugin Le applicazioni Flex sono file SWF che hanno 2 frames GEN 09 WWW.COMTASTE.COM
  • 38. Best Practice Flex 1. Capire le Flex Application Il primo frame di un Flex movie contiene: 4. SystemManager 5. Preloader 6. DonwloadProgressBar GEN 09 WWW.COMTASTE.COM
  • 39. Best Practice Flex 1. Capire le Flex Application E’ nel SystemManager object che avviene la maggior parte delle azioni. L’oggetto SystemManager è la parent class del tag Application (ma non solo ...) GEN 09 WWW.COMTASTE.COM
  • 40. Best Practice Flex 1. Capire le Flex Application Il costruttore del SystemManager controlla: • Se si sta caricando in un altra applicazione il contenuto • Interrompe la riproduzione del flash movie • Comunica alla ResourceBundle class quale locale mostrare allo start up • Crea un event listener per l’evento INIT e lancia l’initHandler() GEN 09 WWW.COMTASTE.COM
  • 41. Best Practice Flex 1. Capire le Flex Application Il loaderInfo object gestisce una serie di proprietà read-only e di eventi (complete, init, progress, httpStatus ...) Gestisce le informazioni sulla quantità di dati caricati e da caricare Una volta che il SystemManager è stato eseguito l’INIT event del loaderInfo object è caricato GEN 09 WWW.COMTASTE.COM
  • 42. Best Practice Flex 1. Capire le Flex Application Nell’initHandler() viene utilizzato un metodo non documentato : addFrameScript() Questo metodo permette di richiamare un metodo ogni volta che l’applicazione entra in un frame specifico Viene chiamato l’evento initialize() GEN 09 WWW.COMTASTE.COM
  • 43. Best Practice Flex 1. Capire le Flex Application Il metodo Initialize crea un Preloader object che viene aggiunto al SystemManager Vengono inoltre prese le informazioni di ogni RSL utilizzata nel progetto Vengono registrate le classi: • ResourceManager • FontRegistry • StyleManagers • flashvars GEN 09 WWW.COMTASTE.COM
  • 44. Best Practice Flex 1. Capire le Flex Application Il Preloader comincia a caricare le RSL e crea un’istanza della DownloadProgressBar. E’ questa la classe da sovrascrivere se si vuole usare un custom preloader Il Flash Player sta per caricare il secondo frame ! GEN 09 WWW.COMTASTE.COM
  • 45. Best Practice Flex 1. Capire le Flex Application Comincia la fase di istanziazione dell’interfaccia Viene creata un istanza dell’applicazione ma non viene ancora aggiunta al SystemManager ma viene passata al Preloader GEN 09 WWW.COMTASTE.COM
  • 46. Best Practice Flex 1. Capire le Flex Application Il Preolader reagisce ai seguenti eventi: • validatePropertiesComplete • validateSizeComplete • ValidateDisplayListComplete • creationComplete Allo scattare di ognuno di questi eventi, il Preloader esegue un INIT_PROGRESS event GEN 09 WWW.COMTASTE.COM
  • 47. Best Practice Flex 1. Capire le Flex Application Il SystemManager inizia il processo di inizializzazione dell’applicazione chiamando l’evento initialize() della subclass dell’Application GEN 09 WWW.COMTASTE.COM
  • 48. Best Practice Flex 1. Capire le Flex Application Il SystemManager inizia il processo di inizializzazione dell’applicazione chiamando l’evento initialize() della subclass dell’Application L’applicazione raccoglie le informazioni per i suoi children dai Descriptors (istanze della classe ComponentDescriptor class creata per ogni MXML tag) GEN 09 WWW.COMTASTE.COM
  • 49. Best Practice Flex 1. Capire le Flex Application Scatta l’evento preInitialize prima che i componenti vengono creati In questo evento è buona norma cambiare le proprietà di un componente GEN 09 WWW.COMTASTE.COM
  • 50. Best Practice Flex 1. Capire le Flex Application Il metodo createChildren() viene invocato. Importante nello sviluppo di custom component perchè garantisce che i display objects vengano creati In questo metodo vengono creati i bordi dell’applicazione e le scrollbars (se ce n’è bisogno) GEN 09 WWW.COMTASTE.COM
  • 51. Best Practice Flex 1. Capire le Flex Application Una volta che tutti i figli vengono creati ricorsivamente il metodo childrenCreated() viene lanciato. Questo metodo chiama i metodi di invalidazione: • invalidateProperties() • invalidateSize() • invalidateDisplayList() GEN 09 WWW.COMTASTE.COM
  • 52. Best Practice Flex 1. Capire le Flex Application Ognuno di questi metodi chiede al Flex framework di invocare i metodi: commitProperties() measure() updateDisplayList() GEN 09 WWW.COMTASTE.COM
  • 53. Best Practice Flex 1. Capire le Flex Application Vengono ora letti ed eseguiti i bindings assegnati alle proprietà dei child L’evento initialize per ogni child viene chiamato A questo punto i child sono stati creati ma non posizionati e dimensionati GEN 09 WWW.COMTASTE.COM
  • 54. Best Practice Flex 1. Capire le Flex Application L’evento ENTER_FRAME chiama il codice all’interno della classe UIComponent che comunica con il LayoutManager e controlla se un componente deve esser misurato e ridisegnato Vengono chiamati di nuovo i metodi per l’invalidazione GEN 09 WWW.COMTASTE.COM
  • 55. Best Practice Flex 1. Capire le Flex Application Se non ci sono altri componenti figli da creare, l’evento creationComplete su quel component viene eseguito GEN 09 WWW.COMTASTE.COM
  • 56. Best Practice Flex 1. Capire le Flex Application Il Preloader che era in ascolto del creationComplete event dell’application esegue del codice e indica che il suo lavoro è finito. Il SystemManager rimuove il preloader e aggiunge l’applicazione al SystemManager che adesso si vede per la prima volta. GEN 09 WWW.COMTASTE.COM
  • 57. Best Practice Flex 1. Capire le Flex Application L’evento applicationComplete viene eseguito sia dall’applicazione che dal SystemManager L’applicazione è ora visibile e lo start up è completo ! GEN 09 WWW.COMTASTE.COM
  • 58. MARCO CASARIO CTO – Comtaste http://casario.blogs.co m