Le blog francophone consacré
aux technologies Esri

Flex vs. Silverlight – Les plug-in (1)



Point important dans notre comparaison, sur quelle plateforme vais-je pouvoir déployer mon application Flex ou Silverlight ? L'archtecture de Flex comme celle de Silverlight repose sur la présence d'un plug-in, ce petit programme complémentaire qui doit être installé dans le navigateur du client préalablement à l'exécution de l'application web.

Les plug-in

Dans les deux cas, ils ont le même objectif: permettre l'exécution de l'application dans le navigateur. Le Flash-player est la machine virtuelle qui exécutera vos applications Flex, le plug-in Silverlight est la machine virtuel le qui exécutera vos applications Silverlight. Dans la grande majorité des cas, la page hébergeant votre application contiendra les tests nécessaires pour identifier si le plug-in est présent (ou quelle version est présente) sur le poste du client. Le cas échéant, le lien de téléchargement est proposé à l'utilisateur.

Tailles

La taille du Flash-player (10.0.45) est de 1.86 Mo et celle du plug-in Silverlight (3.0.5) est de 4.7 Mo. Cette différence de taille, qui n'est générallement pas un enjeu majeur, s'explique par le contenu de chaque plug-in.
Le plug-in Flash ne contient que la machine virtuelle (l'API bas-niveau de Flash) alors que le plug-in Silverlight inclue la machine virtuelle ainsi que la bibliothèque de composants (assemblies) de base nécessaires dans la plupart des applications. Cette stratégie de Microsoft peut se discuter mais elle permet d'économiser le téléchargement répété des mêmes librairies pour chaque application Silverlight.

Coté Flash/Flex, la solution n’incluant pas la bibliothèque de base dans le plugin a pour avantage de décorréler le cycle de vie du Player Flash et du SDK Flex mais ce n’est pas la seule raison. En effet, la stratégie de compilation Flex, et notamment la phase de link avec les bibliothèques, diffère de celle de Silverlight. Par défaut, lors de la compilation d’une application Flex, les composants disponibles dans les bibliothèques utilisées (dont le SDK et donc les composants de base) ne sont inclus dans le fichier SWF final que s’ils sont effectivement utilisés par l’application, ce qui peut également s'avérer un avantage. Flex implémente d’autres stratégies de compilation dont une équivalente à la stratégie Silverlight dans laquelle les librairies sont téléchargées à la volée et mise en cache coté client pour être partagées entre différentes applciations. Flex offre donc une plus grande souplesse dans ce domaine en permettant de maitriser plus finement la taille de l’application.

Les plateformes

La question des plateformes est directement liée à la portabilité. Sur ce point des différences importantes distinguent les deux technologies.

Le Flash-player est disponible sur la plupart des systèmes d'exploitation du marché: Windows, Linux, Macintosh et même Unix Solaris. C'est un atout important comparé à Silverlight qui donne une véritable longueur d'avance à Flex/Flash en termes de portabilité. Aucun système d'exploitation mobile n'est encore supporté pour le Flash-player mais Adobe annonce pour 2010 la disponibilité du Flash-player 10.1 sur plusieurs plateformes mobiles (Palm's WebOS, Android, Windows Mobile, SymbianOS mais malheureusement pas iPhone). Le tableau ci-dessous reprend le détail des plateformes et navigateurs supportés:



Pour le plug-in Silverlight, la portabilité est plus réduite puisque seules les systèmes d'exploitation Windows et Macintosh sont aujourd'hui raisonnablement utilisables. Pour ce qui est de Linux et Unix, Microsoft nous demande de nous en remettre à Moonlight... une implémentation open-source se faisant dans le cadre du projet Mono soutenu par Novell et Microsoft. Moonlight 2 (supportant Silverlight 2) est disponible depuis décembre 2009 mais n'assure pas 100% d'interopérabilité par rapport aux autres plateformes. En ce qui concerne le support des systèmes d'exploitation d'appareils mobiles, Microsoft annonce et montre des versions alpha depuis 2007 un Silverlight Mobile qui pour l'instant brille par son absence ! Le tableau ci-dessous reprend le détail des plateformes et navigateurs supportés:


Partager cet article:

Rejoindre la discussion

    Les commentaires à propos de cet article: