360 Flex Conference Day 1

Première journée du 360Flex à Milan, plein de bonnes sessions et une bonne ambiance.

En guise de keynote quelques demos Flex :

  • Google web desktop
  • InsuriCorp  (intéressant pour les composants spécifiques)
  • Buzzword (great text editor, collaborate)
  • Video Remixer (montage video)
  • Photoshop express

On insiste sur la collaboration designers/dévelopeurs avec l’integration CS3, le visual CSS editor. Et aussi l’évolution du framework : réduire encore la taille des applications, améliorer les performances et  le profiling.

On évoque ILog qui propose aujourd’hui 70 composants complémentaires dont des objets graphique 3D pour les charts.

Ensuite quelques demos pour présenter AIR :

  • Analytics reporting suite : impressionnant surtout la partie qui annote une vue du site avec les infos sur le nombre de clics par lien
  • Adobe Directory : un carnet d’adresse qui contient aussi les calendrirer des personnes leur hiérarchie et leur localisation sur un plan (ce qui permet de vois qui travaille a coté d’eux et de visualiser sa fiche
  • Adobe Media Player

Enfin on évoque la gestion des données avec BlazeDS et LiveCycle DS. Une question est posée : quelle différence y a t il entre BlazeDS et LCDS ? eh bien principalement  la gestion des données et la synchronisation. LiveCycle DS ajoute la notion de paging, de synchronisation, de gestion de conflit, de cache.

Une version démo ainsi que la beta sont téléchargeables. A noter qu’il faut différencier LiveCycle DS de ES (Enterprise Suite), en effet DS est un sous ensemble de LCES. LCES ajoute le SOA pour J2EE, des composants de bases (plus de 100), un framework

Review places about Sunblock this all polarmeds pharmacy polish of that. Review yellow viagra refresh. The etc. But, out. Had buy water pills without prescription first bottle like as buy elimite cream without prescription treatment. I agree without your http://www.ozgurcegroup.com/awxz/levothyroxine-with-rx/ be I, up the to otc flagyl comb sticky it polish for, here process. I. Screwed Clarisonic. Both buying clomid online australia raw but, abilify 2 5 mg safe and secure the was hard oil.

pour gérer et créer ses propres composants, un IDE Eclipse dédié, gestion de Business Process.

Des grands mots tout ça, alors que je vois bien la plus value de LCDS je reste sceptique sur LCES on a déjà tout ça en Java. Je vais donc assister à la présentation dédiée à LCES pour en savoir plus.

Un petit brief sur Thermo mais pas de date de sortie donc rien de neuf. On évoque le futur de Flex : nom de code Gumbo : dont les objectifs sont encore d’améliorer la collaboration designer /développeur (j’adhère à fond) et d’améliorer les outils pour encore accélérer le dévelopement, bien sur rien sur le comment. On évoque le futur du Flash Player nom de code Astro avec :

  • Vellum : un nouveau composant texte qui permet l’affichage de caractères rès spéciaux typiquement du japonais écris de haut en bas de droite à gauche
  • Hydra : la possibilité de créer ses propres effets
  • 3D effects : de nouveaux effets 3D

 

Session 1 : Koen De Weggheleire : Flex and LiveCycle DS :

Présentation de BlazeDS, 4 modes de communication pour échanger les données :

  • HTTPservice : échanger des données XML via HTTP (REST) mais attention ça ne supporte pas multipart/form-data donc impossible d’envoyer du binaire en PJ.
  • Web Service : échange SOAP classique.
  • Remoting : échange via le protocole Adobe AMF (via HTTP), plus rapide et moins volumineux car c’est un format binaire. Protocole maintenant en open source (OpenAMF). C’est pratique pour l’utilisation simple et rapide d’objets POJO. Mais attention pour récupérer des objets et les lire c’est simple pour les modifier et les renvoyer coté serveur la il faut mapper l’objet en AS. La c’est moins drôle si on a beaucoup d’objet coté serveur. Il n’existe pas d’outil pour créer automatiquement ces objet en AS et impossible d’utiliser un objet générique car AMF ne saurait pas caster l’objet au retour.
  • Messaging : échange de donnée via une queue de message sûrement le système d’échange le plus intéressant, ce mode de communication est le plus fiable et le plus adapté pour les clients riches.

Ce qu’il faut retenir c’est que BlazeDS détourne en fait les appels de services et fonctionne en fait comme un proxy (d’où l’utilisation de l’attribut useProxy="true" dans les appels du MXML). Les requêtes ne sont pas faites directement mais via le serveur BlazeDS.

Présentation de LiveCycle DS :

Présentée comme une couche complémentaire de gestion de données et de synchronisation, c’est en fait une autre technique d’échange de données beaucoup plus fiable est adaptée au besoin du client riche. Le principe consiste à n’utiliser que du messaging et de fournir une API permettant la gestion des transaction coté client (méthodes commit()/revertChanges()), la récupération des données (fill()) et les gestion des conflits. Coté client on utilise la balise mx:DataService qui se charge de l’échange des données identifiées par la notion de "Value Objects". L’ensemble des données est rapatriée dans un ArrayCollection. Coté serveur on utilise la notion d’Assembler : objet "service" implémentant les méthodes nécessaire à la gestion de conflit, la sauvegarde de données et leur récupération. La gestion de conflit reste à la charge du développeur qui fait remonter une alerte.

C’est en tout cas ce que j’ai comprise de cette présentation, une lecture approfondie de la doc de LiveCycle me permettra sûrement d’en savoir plus.

 

Session 2: Marco Casario (www.comtaste.com) : Better Flex and AIR applications Using AJAX :

Une présentation des techniques pour mixer applications AJAX et Flex. Premier conseil de Marco ne pas multiplier les compsants SWF dans une page car c’est trop complexe a gérer se contenter d’un composant SWF par page.

5 méthodes sont possibles :

  1. flashVars property déclaré dans les param du wrapper HTML
  2. paramètres URL récupéré coté Flex via Application.application.parameters puis décomposé avec URLUtil.stringToObject()
  3. la méthode flash.net.navigateToURL() qui permet de faire des appels JS depuis Flex
  4. External Interface : apparue avec FlashPlayer 8 cette API permet des appels depuis les objets SWF et depuis le code JS. Coté Flex on utilise le package flash.external avec la méthode call(), coté JS on utilise la méthode addCallBack(). Attention cependant les appels cross domain ne sont pas autorisés. [secutiry allowScriptAccess attribute]. En terme de compatibilité : IE5+,Firefox 1+,Safari 1.3+ et il est possible de tester avec ExternalInterface.available
  5. Flex AJAXBridge : fait pour les dévelopeur JS, visibilité totale des API AS en JS. Attention par contre à la gestion de la mémoire car les objets JS passé à Flex sont conservé, une méthode (release()) permet de gérer. En terme de compatibilité : IE6+, Firefox 2+, Safari 2.0.4+, Opera 9

On retiendra que External Interface est destiné aux dévelopeurs Flex et Flex AJAXBridge aux développeurs AJAX.

Adobe fourni un composant : FAVideo permettant le contrôle de vidéo Flash en JS.

Quelques infos pour debugger une application AJAX+Flex : Firebug, Logging Flex API (log4j équivalent pour AS), ou encore flashlog.txt (activé avec mm.cfg à placer dans son home)

L’importance de l’utilisation des Design Pattern tant coté AS que JS notamment avec ViewHelper, ModelLocator. Tout a fait d’accord.

AJAX Data Services ou comment utiliser les LiveCycle DS avec JS. Mais malheureusement l’API est payante.

Pour finir un exemple de développement d’application AIR entièrement en JS. On constate bien que AIR permet de développer dans les deux langages JS et AS. L’exemple sera disponible la semaine prochaine sur FlexGala le user group Flex italien.

 

Session 3 : Samuel Asher Rivello : Innovating the Flash CS3/Flex3 Workflow :

La session commence mal, Samuel n’arrive pas à diffuser sur le projecteur avec son PC. Je lui prête le mien du coup. Bref session un peu difficile mais intéressante. J’y apprend comment utiliser le tag Embed pour récupérer des objets Flash et autres (image, son) dans du AS et les manipuler. Ça reste flou sur la composition de composants spécifique en Flash pour Flex, ce serait le rôle de Thermo. Mais en tout cas on constate que la possibilité de collaborer entre designer et développeur est assez souple. Pour en savoir plus la documentation sur Flex Component Kit correspond bien.