Le blog francophone consacré
aux technologies Esri

Flex vs. Silverlight - Concepts et historiques


Avant de commencer la comparaison proprement dite de Flex et de Silverlight, il est peut être intéressant de faire un petit point sur le concept de RIA (Rich Desktop Application). Sans aller trop loin dans les définitions, l’idée générale des RIA est d'offrir une expérience utilisateur riche au sein d’un navigateur Web. Une autre manière de le dire serait: "donner à l’utilisateur l’impression qu’il utilise un client lourd (une application "installée" sur son ordinateur) sans l’obliger à quitter son navigateur". Les RIA permettent donc de déployer un applicatif client-serveur sans aucune intervention de l’utilisateur (quand les pré-requis de son ordinateur sont respectés). Pour creuser le sujet des concepts de RIA (et RDA), je vous recommande cette série de 3 articles qui m'ont inspiré pour cet article.

La mise en œuvre des RIA repose généralement sur un des deux principes suivants. Le premier part de l’idée qu'un navigateur, seul, ne propose pas d’outils assez sophistiqués pour concevoir une interface riche. La technologie s’appuie donc sur un plugin qui vient enrichir le navigateur, c’est la solution retenue par Adobe, Microsoft ou encore Sun. Le deuxième principe s'appuie sur les outils standards du navigateur à savoir le HTML et le langage JavaScript. C'est ce mélange, par exemple, qui a été mis en œuvre par Microsoft dans IE 5 en 1999 et baptisé Ajax (Asynchronous Javascript And Xml) en 2005. Standardisé par le W3C en 2006, beaucoup d’acteurs gravitent autour d’Ajax et s’appuient sur ses concepts simples pour proposer des librairies de composants Ajax permettant de concevoir des applications riches dans le navigateur. Parmi les plus répandus, on peut citer JQuery, Dojo, YUI (Yahoo) et GWT (Google).

Ces deux approches se retrouvent dans les différentes APIs Web ArcGIS proposées par ESRI. La première avec les APIs Flex et Silverlight. La seconde avec l'API JavaScript et ses extensions pour Microsoft Bing Maps et Google Maps.

Un bref historique

Bien comprendre les enjeux de Flex et de Silverlight c'est également connaître l'historique de ces deux technologies.



Flex

Pour Flex, l'histoire commence avec la société Macromedia qui en 2004 propose sa version 1.0 de Macromédia Flex Server. La cible est alors clairement définie: fournir une plateforme de développement (Flex) permettant de créer des applications compilées sur le serveur en SWF (c'est-à-dire en Flash).

En juin 2006, Adobe a racheté Macromédia depuis un an et fait largement évoluer la ligne de produit Flex. Le SDK Flex 2 devient disponible gratuitement, l'IDE (Flex Builder) change d'architecture et tourne désormais sur la plateforme Open-Source Eclipse. La version Professionnelle de Flex Builder apporte de nombreux nouveaux composants comme le Flex Charting. ActionScript, le langage de programmation de Flex passe en version 3.0 et impose du même coup le passage au plugin FlashPlayer 9.

En février 2008, Adobe lance la version 3.0 qui correspond à l'arrivée d'un nouveau SDK Flex 3 et surtout l'apparition de la version 1.0 d'AIR. Cette dernière est la solution de RDA (Rich Desktop Application) proposée par Adobe pour permettre l'exécution d'une application MXML + ActionScript (Flex) en dehors d'un navigateur. La version 3.0 de Flex Builder, toujours basée sur Eclipse permet désormais de développer des applications Flex et AIR.

Silverlight

Silverlight a vu le jour officiellement fin 2007 avec une version 1.0 qui a été loin de convaincre les développeurs. Basé sur JavaScript, AJAX et le langage de balises XAML, tout le code behind était écrit JavaScript.

En octobre 2008, la version 1.1 beta change de nom et Microsoft sort une version 2.0. Cette nouvelle version marque alors le véritable début de l'adoption de la technologie Silverlight. Techniquement, beaucoup de choses ont évoluées avec notamment le support de code managed en .Net. Le plugin Silverlight devient une version allégée du runtime .Net (CLR) et peut accéder à une partie restreintes des ressources locales de machines, un stockage local isolé et des fonctionnalités multimédias (streaming vidéo progressif, deepzoom, …) offrant alors de véritables perspectives pour les développeurs. La version 2.0 marque également l'intégration beaucoup plus étroite avec les autres technologies Microsoft comme LINQ, ADO .Net, WCF ou encore WPF.

En juillet 2009, la version 3.0 de Silverlight est disponible et apporte de nombreux nouveaux composants d'inteface, des fonctionnalités avancées de transformation 3D et de manipulation des bitmaps. Cette dernière version de Silverlight optimise également des multiprocesseurs et des accélérateurs matériels de la machine. Enfin, depuis cette version 3.0, Silverlight support l'exécution hors d'un navigateur web (dans une Sandbox) de manière assez similaire à la technologie Adobe AIR.

Partager cet article:

Rejoindre la discussion

    Les commentaires à propos de cet article:

2 comments :

Alexis a dit…

Bonjour,
Cet article est une bonne initiative, je voudrais juste apporter une précision : si on parle de plateforme comme Silverlight, c'est maintenant Flash qu'il faut utiliser comme nom plutôt que Flex. Adobe l'appelle "Flash Platform", elle est constitué du player Flash (la machine virtuelle), du runtime AIR, du SDK Flex, des outils de développement comme Flash CS et Flash Builder (le nouveau nom de Flex Builder), du SDK Flex, et des serveurs LifeCycle ou Flash Media.
A ce propos la génération de SWF côté serveur n'est quasiment plus utilisée, tout est compilé avant.
Autre précision, le runtime AIR ne se limite pas à l'ActionScript et au SDK Flex, il embarque Webkit (le moteur HTML de Safari et Chrome), ce qui permet d'intégrer de l'HTML et du javascript dans une application AIR.

Gaëtan Lavenu a dit…

Merci pour ces précisions. Effectivement, Flex Builder deviendra Flash Builder mais seulement en version 4. J'ai essayé dans cette série d'articles de me limiter aux versions disponibles et non aux version beta. On parle donc encore de Flex. Pour AIR, j'ai volontairement mis de coté les aspects RDA pour lesquelles je n'ai pas expérimentés grand chose ni coté Adobe AIR ni coté Silverlight ou WPF.