from a to web (2009)
TRANSCRIPT
HTTP REQUEST
• Viene invocato un URL sul server– HttpService – OOP friendly
– URLLoader – simile ad AS2
• I dati sono in formato testuale ( = cast)
HTTPSERVICE - SINTASSI
<mx:HTTPService
id = “myService”
url= “http://www.miapaginacfml.cfm”
resultFormat = “e4x”
fault = “faultHandler(event)”
result = “resultHandler(event)” >
</mx:HTTPService>
Posso lanciare la chiamata con myService.send([parameters])
[parameters] deve essere un tipo base o un XML
ESEMPIO: CONFIG LOADING
• Parametri generati dinamicamente
• Caricato allo startup
• XML
• Nella versione HTML il file viene letto con un accesso al disco,
• <cfsilent> garantisce sicurezza
THE CHICKEN-EGG PROBLEM
• I parametri sono caricati dal configFile
• La path del configFile è un parametro
• Come ottengo l’url del contenitore di param?
• Una soluzione: FlashVars
• Brutto, scomodo e non CF-oriented
LK2SWF
• Un custom tag wrapper per l’SWF e tutti parametri
• I parametri sono configurabili tramite gli attributi del tag
• I parametri dell’applicazione sono passati tramite struct
• Si può usare anche il configXML
• Supporto per il flex debugger
• includeJS – per escludere il JavaScript di caricamento
• alternativeText, alternativeInclude – per gestire la generazione di contenuto in assenza del FlashPlayer
REMOTING
• Invoco direttamente i metodi dei CFC
• I dati sono passati in formato binario
• Posso mandare al client un CFC
REMOTEOBJECT - SINTASSI
<mx:RemoteObject
id = “myRO”
destination= “ColdFusion”
source= “percorso.al.mio.cfc”
</mx:RemoteObject>
I metodi del CFC sono invocati direttamente con myRO.getHelloWorld([parameters])
[parameters] può essere qualunque cosa… anche un’oggetto AS..
Cos’è l’attributo “destination”? (remoting-config.xml)
Definire dei channel dinamici? (RemoteObjectFactory.as)
VALUEOBJECTS
• Mapping 1:1 tra CFC e classi AS3
• Le classi sono legate dal metadato RemoteClass
• ProvaRO
MAPPING DI DATI
String
Array[]
Struct[]
Query
CFC Class
CFC Date
CFC Numeric
CF XML
String
Array
Object (non tipizzato)
ArrayCollection
Object (tipizzato se uso VO)
ActionScript Date
ActionScript Numeric
ActionSctipt XML Object
ColdFusion ActionScript
ACTION MESSAGE FORMAT 3
• Dati Binari
• Dati Compressi
• Similitudini con JAVA RMI
• HTTPS
• Le destinazioni sono in services-config.xml
• Specifiche rilasciate Open
• Implementazioni non solo CF (es. AMFPHP)
• Si può usare anche per invocare comandi sul back-end
• Il Remoting non consente di inviare dati “raw” al CFC
• Come gestisco immagini/audio/ecc.?
CONFRONTI
• Dati nativamente XML (es.configObj)
• E4X
• WebServices
• Prestazioni
• Evita marshall/unmarshall
• Oggetti complessi
HttpService Remoting
RIFERIMENTI
• TMT Calendar (GPL2)
– Demo su http://visual.unipv.it
– SVN su http://code.google.com/p/tmt-calendar/
• LK2SWF (GPL2) e ProvaRO– Scaricabile da http://www.lk2multimedia.com
• LK2FlexFramework (GPL2)
– SVN su http://code.google.com/p/lk2flexframework/
• Slide (a breve) su CFMentor http://www.cfmentor.com