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
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
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