Flex : Première approche

Salut a tous. Aujourd’hui on va parler de Adobe Flex le “fameux” framework d’Adobe. Je m’y suis mis depuis peu et mes impressions sont assez mitigées sur ce framework. Ceci dit, toute techno est bonne à prendre, alors voici un petit cours sur ce qu’est flex et, de manière plus générale, la flash plateform assez méconnue dans son ensemble.
Pour commencer je vais prendre un premier schéma que je vais expliquer.

Sur ce schéma, on voit l’ensemble de la constellation technologique flash divisée en 5 parties, les outils, le framework, la partie serveur, les services et le client. Je vais prendre le tempe de survoler chacune des parties afin de bien saisir, lorsque l’on fait du développement flex, dans quel environnement nous nous trouvons.
Premièrement, les outils. Flash professional est l’outil le plus connu des 3 car le “plus vieux”. En effet, c’est lui qui permet de “faire du flash” pour pas mal de personnes. Il est très orienté animation et création de contenu web (RIA). Ensuite vient Adobe Catalyst, rien avoir avec le Catalyst Center de ATI. Ce produit permet la création de RIA/RDA par des graphistes sans connaissances de la programmation. Le développeur reprendra ensuite le projet dans Flash Builder pour faire la partie code. Il est un équivalent de la suite Expression de Microsoft qui propose un outil pour les graphistes (Expression Blend) et un outil pour les Devs (Visual Studio) dans le cadre d’application WPF. Enfin, Flash Builder, c’est un EDI orienté développeur pour créer en flash des RIA/RDA. Il ne permet pas directement de faire de l’animation comme Flash Pro et intègre directement le framework flex qui nous intéresse. Il est donc plutôt orienté applications (métier ?).
La seconde partie est le framework avec Flex. Flex est une solution qui a pour but de développer des RIA multiplateformes grâce à Flash. Il se base sur du MXML (une sorte de XML, ressemble beaucoup au XAML) et sur ActionScript 3.0 dans sa dernière version. Le SDK est sous Mozilla Public License.
La partie serveur se compose de deux solutions, LiveCycle est serveur SOA Java2EE. Il est cependant très large et en donner un aperçu serait trop long. Je vous renvoie donc ici pour plus d’infos : http://en.wikipedia.org/wiki/Adobe_LiveCycle. Enfin, FMS (Flash Media Server) permet de l’interaction multi-utilisateurs (RIA). Il est principalement utilisé pour la diffusion de vidéos (VOD, Streaming, WebCam) ou la communication par vidéo en temps réel entre plusieurs clients. Il fonctionne comme une hub sur lequel les clients se connectent en RTMP, ils utilisent ensuite des RPC. Les clients peuvent créer un canal de diffusion vidéo ou déposer leurs vidéos sur le serveur au format Flash Video (FLV). On peut aussi citer ColdFusion, qui est un système serveur Adobe mais ne fait pas intégralement partie de la constellation technologique Adobe.
L’avant-dernière partie, les services. La FPS permet de rajouter des fonctionnalités collaboratives ou social à vos applications. Elle permet aussi la distribution d’applications (un peu comme le AIR Marketplace).
Enfin, le client. D’un coté le flash player qui permet la lecture de SWF et est souvent embarqué dans un browser web pour créer des RIA. De l’autre, AIR, qui permet de créer des RDA en fournissant un contexte d’exécution spécifique au SWF avec en plus des possibilités d’accès à la machine hôte (fichiers, hardware, etc.) pour créer une “vraie” application.
Voici donc tout ce qu’il est possible de trouver si vous vous baladez dans le monde flash tout en sachant que, pour notre part, ce qui nous intéresse c’est la partie client, framework et outil. Le reste étant, pour le moment, très éloigné de nos préoccupations. On a donc Flash builder qui nous servira à créer des applications flash intégrant les fonctionnalités flex que l’on exécutera ensuite dans un flash player ou dans une machine virtual AIR. Mais comment faire pour que tout communique ? Notre source de données ?

Et bien c’est assez simple car Flash permet d’utiliser à travers ses différents outils une foule de moyens de communication, HTTP(s), AMF, RTMP, SOAP, SMTP, REST,… De l’autre coté on aura des serveurs qui eux seront en relation avec les données et pourront les fournir au client. On se retrouve dans une architecture classique et surtout très modulaire. Par exemple, REST. J’ai un serveur en DotNet qui implémente un service WCF et des interfaces REST (merci DotNet 4.0), et bien je n’aurai aucun souci pour développer de mon coté un client en Flash qui lui se connectera avec REST au serveur et récupérera les données voulues. On se retrouve avec d’un coté un client Adobe en AIR et de l’autre un serveur Microsoft IIS qui héberge un webservice WCF… Zeti pas zoli tout za ? 😀
Voici donc un premier aperçu de Flex du point de vue du contexte dans lequel il s’inscrit. Dans le cours suivant on fera notre premier hello world qui consistera en une textbox, un label et un bouton, le label étant mis à jour par le bouton selon le contenu de la textbox et une validation auto sur le toucher Enter. Hello World, nous voici !

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s