Tags:
create new tag
, view all tags

Silverlight/Moonlight

Introduction

Silverlight est une technologie Microsoft qui permet de développer des applications Web enrichies d'animations, de tracés vectoriels, de retransmission audio et vidéo. Il existe actuellement deux version de Silverlight: la 1.0 et la 2.0. Côté client, cette technologie se présente sous la forme d'un plugin à installer sur son navigateur Web et qui permettra d'exécuter le code produit. Du côté modèle de programmation, développer pour Silverlight repose sur le principe du « Code-Behind »: d'une part la conception du modèle graphique avec l'utilisation du langage à balises dérivé du XML : XAML (le langage déclaratif de présentation des applications Windows Vista), et d'autre part l'utilisation d'un langage permettant d'implémenter la logique applicative. Le langage utilisé dépend alors de la version de Silverlight pour laquelle on souhaite développer. Pour la version 1.0, il faut utiliser du Javascript (possibilité de faire l'AJAX) , tandis que la version 2.0 (basée sur le framework .NET) accepte, en plus du Javascript, l'utilisation de PHP, Ruby, Python, C#, VB.NET.


Compatibilités du plugin

Silverlight (toutes versions) est le plugin officiel de Microsoft, disponible sur Windows XP, Windows Vista, et Mac OS X pour les navigateurs IE6, IE7, Firefox 2, et Safari. Un portage libre et non officiel du plugin version 2.0, nommé Moonlight, est disponible sur Linux pour le navigateur Firefox (cf Installer Moonlight).

A terme, Silverlight devrait être compatible Windows 2000 et être supporté par Opera. En ce qui concerne Moonlight, il devrait être disponible sur toutes les distributions majeures de Linux, et être supporté par Opera et Konqueror.


Outils de développement

Pour la version 1.0 de Silverlight, il suffit d'avoir un éditeur de texte pour écrire du code XAML et HTML/JS, et de posséder le fichier Silverlight.js (disponible dans le SDK de Silverlight 1.0 fourni par Microsoft). Pour développer sous Linux, il est également nécessaire de se procurer ce fichier. Il existe des éditeurs spécifiques XAML :

  • Windows : XAMLPad (gratuit et inclut dans le SDK .NET 3.0), Kaxaml (gratuit), Visual Expression (payant/version « Express » gratuite).
  • Linux : Lunar Eclipse (en cours de développement).

Pour la version 2.0 de Silverlight, il faut disposer de la technologie .NET. Il est donc nécessaire d'installer le framework .NET (2.0 ou supérieur) sous Windows, ou d'utiliser son portage sous Linux : Mono, qui permet d'écrire et de compiler du code .NET sous système Unix/Linux. Il existe plusieurs IDE de développement pour ces langages :

  • Windows : Visual Studio 2005/2008 (payant/version « Express » gratuite) qui embarque en plus un éditeur XAML avec la possibilité de créer des projets Silverlight, monoDevelop (gratuit), Notepad (cf SL2.0 avec Notepad).
  • Linux : monoDevelop.

Actuellement, monoDevelop ne permet pas de créer des projets Silverlight (c'est-à-dire les dll et fichiers de configuration nécessaires à un projet Silverlight 2.0). Un module, Olive, est en cours de développement et devrait permettre de le faire.


Principe de fonctionnement

Une application Silverlight 2.0 déployée est représentée soit par un fichier dll soit par un fichier XAP qui doit alors être hébergé par une application Web (HTML ou ASP.NET). Le plugin réalise alors deux grandes opérations : il compile à la volée en code machine le code de la logique applicative (déjà compilé en code SIL/MSIL) et l'exécute dans sa machine virtuelle, puis il charge, parse, et affiche le résultat du code XAML de l'application.


Ses avantages

  • Plusieurs langages disponibles
  • Utilisation de plusieurs langages au sein d'un même projet : réutilisation de code, utilisation d'un langage plus approprié selon ce que l'on souhaite développer
  • Existence de nombreuses bibliothèques
  • Présence de toolkits
  • Supporte AJAX
  • Support de la HD
  • Support du streaming
  • Support de la 2D
  • Support du multi-threading
  • Support des DRM (en prévision)
  • Multi-plateforme (disponible sur Smart-phone et Pocket-PC)
  • Multi-navigateurs
  • C# a un temps d'exécution plus court que l'ActionScript
  • Séparation du développement de la logique applicative du développement graphique : gain de productivité
  • Possibilité de faire fonctionner l'application en dehors du navigateur (sur Windows uniquement) avec peu de modification (WPF/XAML)
  • Application exécutée dans une « sandbox » : permet de restreindre l'accès aux ressources système
  • Utilisation d'un webService pour récupérer le contenu des fichiers
  • Code managé avec l'utilisation de la machine virtuelle CLR


Ses inconvénients

  • Faible taux de pénétration sur le marché
  • Développement uniquement sur OS Windows
  • Pixélisation supérieur qu'avec un player Flash
  • Utilise plus de ressources processeur que Flash (cf test comparatif Silverlight vs Flash)
  • Fonctionnement mitigé sous Unix/Linux
  • Pas de support de la 3D en natif
  • Référencement dans les moteurs de recherche impossible pour le moment


Exemples


Tests de performances

Afin d'étudier les performances de Silverlight, j'ai utilisé un outils disponible sur http://bubblemark.com et qui permet de visualiser, pour une même application codée en DHTML, Silverlight 1.0, Silverlight 2.0, Flex, et Java (swing), le taux de FPS de l'application. Il s'agit de bulles qui rebondissent dans un rectangle. J'ai donc choisi des paramètres fixes (nombre de bulles=16 et temps d'exécution de l'application=30s) pour relever et comparer les FPS. J'ai également effectué le même test sous une machine Windows afin de voir s'il y a des différences, notamment entre les plugins Silverlight et Moonlight (cf test des performances graphique de SL).

Le test n'est finalement pas très concluant sous Linux, car le plugin Moonlight ne gère pas du tout (SL 2.0) ou très mal (SL 1.0) cette application. On peut néanmoins en déduire que le plugin Moonlight n'est pas encore au point.


Liens utiles


Sources

  • http://www.slideshare.net/rajeshlal/introduction-to-silverlight/
  • http://blogs.codes-sources.com/guillaume/
  • http://bloggiver.blogspot.com/2008/02/monodevelop-debs-para-ubuntu-gutsy.html
  • http://pvergain.wordpress.com/2007/11/04/rich-internet-application-javafxadobeflexsilevrlightmoonlight/
  • http://blogs.msdn.com/canux/archive/2008/03/26/silverlight-2-resource.aspx
  • http://labs.prizee.com/dotclear/?post/2007/07/05/Silverlight-%3A-comparaison-avec-flash
  • http://www.mono-project.com/Moonlight
  • http://www.learn-silverlight-tutorial.com/TheSilverlightFramework.php
  • magazine Programmez! de novembre 2007, article « RIA, la révolution de l'interface Web »
  • http://msdn2.microsoft.com/en-us/magazine/cc163404.aspx


A compléter :

  • Tests graphique à effectuer sous Windows
  • Tester le développement pour Silverlight avec Notepad sous Windows


Topic attachments
I Attachment Action Size Date Who Comment
PDFpdf HowTo-dev_SL_avec_NotePad.pdf manage 277.4 K 2008-04-10 - 12:43 UnknownUser SL2.0 avec Notepad
PDFpdf HowTo-installer_Moonlight.pdf manage 5.1 K 2008-04-10 - 12:39 UnknownUser Comment installer Moonlight
PDFpdf test_comp_SL_vs_Flash.pdf manage 141.4 K 2008-04-10 - 12:48 UnknownUser Test comparatif entre SL2 et Flash
PDFpdf test_performances.pdf manage 106.4 K 2008-04-10 - 12:56 UnknownUser Test des performances graphiques de SL
Topic revision: r4 - 2008-04-18 - CedricCapoulun
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback