Silverlight
Un article de Wikipédia, l'encyclopédie libre.
|
Cet article est une ébauche concernant l’informatique.
Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants.
|
|
|
Cet article ou cette section contient des informations sur des événements prévus ou attendus.
Il se peut que ces informations soient de nature spéculative et que leur teneur change considérablement alors que les événements approchent.
|
![]() Logo de Silverlight |
|
| Développeur | Microsoft |
|---|---|
| Dernière version | 2.0.40115.0 (le 15 janvier 2009) [+/−] |
| Version avancée | 3.0 beta (le 2009) [+/−] |
| Environnement | Microsoft Windows Mac OS X |
| Type | Application Web |
| Licence | MS-EULA, avec des composants sous licence MS-PL |
| Site Web | silverlight.net |
Silverlight est une machine virtuelle ou plugin pour navigateur internet, qui permet de développer des applications web riches dans un moteur de rendu vectoriel. Silverlight est l'équivalent de la CLR de Microsoft mais pour les navigateurs web compatibles. La version 2.0 apporte plus d’interactivité et permet aux développeurs d’utiliser des outils de développement et les langages Microsoft .NET lors de la création d’applications Silverlight. Une version 3 est prévue en juillet 2009. Elle permettra l'exécution de davantage d'instructions, l'interprétation de formats vidéos supplémentaire, de la 3D.
Silverlight a comme concurrents Adobe Flash, Flex, JavaFX et le Quicktime d’Apple.
La technologie est utilisable dans de nombreux navigateurs via l'utilisation d'un plugin dans les systèmes d’exploitation Microsoft Windows et Mac OS X. Une version pour la communauté du libre appelée Moonlight est en cours de développement. Elle est compatible avec les environnements GNU/Linux. Les téléphones portables sous Windows Mobile 6 et les mobiles Symbian OS (Version 40 et 60) seront aussi supportés.
« SilverLight (code-name WPF / e ou encore Windows Presentation Foundation everywhere) est le nom de code d’une solution navigateur cross-plateforme basée sur XAML qui améliore les présentations à base de contenu riches (2D, animation, dessin vectoriel, vidéo et audio) en complément du code HTML »
Sommaire |
[modifier] Animation, vidéo, interactivité
Silverlight fournit un système graphique en retained mode (seules les données internes sont modifiées) similaire à WPF. Il intègre le multimédia, les graphiques, les animations et l’interactivité en une seule exécution.
Il a été conçu pour travailler de concert avec XAML pour la description de l'interface graphique, et JavaScript pour le comportement (partie code). Ainsi, le contenu textuel créé en Silverlight serait plus indexable que celui créé en Flash, puisqu’il n’est pas compilé, mais bien représenté en texte (XAML), ce qui devient faux en Silverlight 2. Silverlight peut aussi être utilisé pour créer de nouveaux gadgets pour le Sidebar de Windows Vista. Silverlight supporte les formats WMV, WMA et MP3 en lecture sur tous les navigateurs, sans avoir besoin d’une installation préalable du Windows Media Player ou des autres plugins habituellement nécessaires. Et vu que WMV9 est une implémentation du standard SMPTE VC-1, Silverlight supporte aussi les vidéos VC-1, mais uniquement en format ASF. La licence précise par ailleurs que le VC-1 est destiné à un usage personnel et non commercial.
Silverlight rend possible le chargement dynamique du contenu XML, qui pourra être manipulé à travers une interface DOM, une technique qui est cohérente avec les techniques AJAX usuelles. Silverlight expose un outil de téléchargement qui peut être utilisé pour télécharger du contenu comme des scripts, du contenu média ou d’autres données selon les besoins de l’application. Avec la version 2.0, la logique de programmation peut être écrite en n’importe quel langage Microsoft .NET, inclus aussi de nombreux langages dynamiques de programmation comme Ruby et Python.
[modifier] Infrastructure Silverlight
voir applet Silverlight
[modifier] Compatibilité vidéo
| Format | Statut |
|---|---|
| MPEG1 | N/D |
| MPEG2 | N/D |
| MP3 | Oui |
| MPEG4 | Non |
| FlashVideo | Non |
| H263 | Non |
| H264 | Oui |
| QuickTime | Non |
| RealMedia | Non |
| VC1 | Oui |
| WindowsMedia | Oui |
[modifier] Navigateurs compatibles
Il est disponible pour Windows XP, Windows Vista et MacOSX, à l’aide de plugins disponibles pour Internet Explorer 6, Internet Explorer 7, Internet Explorer 8, Safari d’Apple et Firefox de la Fondation Mozilla. Cependant, il n’est pas encore officiellement disponible sous Linux, et Microsoft n’a pas encore pris de décision à ce sujet[1]. Les utilisateurs de la famille Unix pourront prochainement utiliser un clone de Silverlight 2.0 pour Mono nommé Moonlight[2].
Récapitulatif :
| Systèmes d’exploitation/Navigateurs | IE 6 SP1 | IE 6 SP2 | IE 7 | IE 8 | Firefox/SeaMonkey/Mozilla | Safari | Konqueror | Opera |
|---|---|---|---|---|---|---|---|---|
| Windows Vista | N/D | N/D | 1.0, 2.0 | A compléter | 1.0, 2.0 | 1.0, 2.0; | N/D | Non officiel |
| Windows Server 2003 | N/D | 1.0, 2.0 | 1.0, 2.0 | A compléter | 1.0, 2.0 | 1.0, 2.0; | N/D | Non officiel |
| Windows XP | N/D | 1.0, 2.0 | 1.0, 2.0 | A compléter | 1.0, 2.0 | 1.0, 2.0; | N/D | Non officiel |
| Windows 2000 | Prévu 2.0 | N/D | N/D | N/D | prévu dans la 2.0 | N/D | N/D | Prévu |
| Mac OS X 10.4.8+ PPC | N/D | N/D | N/D | N/D | 1.0 | 1.0 | N/D | Prévu |
| Mac OS X 10.4.8+ Intel | N/D | N/D | N/D | N/D | 1.0, 2.0 | 1.0, 2.0 | N/D | Prévu |
| Linux x86(Moonlight) | N/D | N/D | N/D | N/D | 1.0.1 | N/D | Prévu | Prévu |
| Linux x86-64(Moonlight) | N/D | N/D | N/D | N/D | 1.0.1 | N/D | Prévu | Prévu |
N/D : Non disponible
Remarques:
- Opera sera supporté officiellement dans les futurs implémentations. Il est déjà supporté non officiellement par bidouillage
- Sur Linux, la compatibilité sera effective avec le runtime Moonlight. Moonlight sera disponible pour toutes les distributions majeures de Linux, supportant les navigateurs Firefox, Konqueror et Opera.
- Silverlight pour mobiles sera utilisé pour exécuter du contenu Silverlight sur des appareils mobiles. Une brève démonstration a été faite à l'occasion des TechDays 2009 mais la CTP pour Windows Mobile 6 n'est toujours pas disponible à ce jour. Nokia a annoncé comme projet de rendre Silverlight pour mobiles disponible pour le S60 sous Symbian, ainsi que pour les appareils Série 40 et les Tablettes Nokia Internet. Silverlight pour mobile supportera initialement le contenu Silverlight 2.0.
- De nouvelles plates-formes sont encore en étude.
[modifier] Différentes versions
[modifier] Silverlight 1.0
Silverlight 1.0 est le framework de présentation du noyau, qui est responsable de l’UI (interface utilisateur), de l’interactivité et des entrées utilisateur, des contrôles basiques de l’interface utilisateur, de l’animation et des graphiques, de la lecture des médias, avec support DRM et intégration DOM. Il est constitué des composants suivants :
- Entrée : prise en charge des entrées des périphériques comme la souris, le clavier, le stylet, etc…
- Noyau de l’interface Utilisateur : gestion de l’interprétation des images bitmap, des tracés de vecteur, du texte et des animations
- Médias : lecture des flux MP3, WMA Standard, WMV7, WMV8, WMV9/VC-1
- XAML : permettant de créer les interfaces utilisateurs en utilisant le langage à balises XAML.
Une application Silverlight commence par l’invocation du contrôle Silverlight à partir d’une page HTML, qui chargera alors un fichier XAML. Le fichier XAML contient un objet Canevas, qui sera le support pour d’autres éléments.
Silverlight fournit de nombreuses primitives géométriques comme des lignes, des ellipses, et d’autres formes, mais aussi du texte, des images, et du média, etc… Les éléments sont disposés de manière à donner la mise en page voulue. N’importe quelle forme aléatoire peut être créée. Tous ces éléments seront animés en utilisant des déclencheurs d’évènements. Certains effets d’animation sont prédéfinis, d’autres peuvent être créés, en composant ceux existants. Des évènements provenant des actions du clavier ou de la souris peuvent aussi être considérés comme évènements, pris en charge par des scripts.
La manipulation « programmatique » de l’interface utilisateur est accomplie en utilisant des langages de script pour modifier le DOM de l’objet canevas de Silverlight. Pour faciliter ceci, Silverlight expose une API, accessible depuis n’importe quel langage de script supporté par Silverlight, qui dans sa version 1.0 est limité uniquement au JavaScript tournant sur le navigateur. Par ailleurs, il n’y a pas de widgets embarqués pour l’interface utilisateur. Les widgets natifs du navigateur devront être placés au-dessus de l’objet canevas pour les entrées utilisateurs. Les formats de données sont limités à POX (Plain Old Xml) et JSON uniquement.
[modifier] Silverlight 2.0 beta 1 (anciennement Silverlight 1.1)
Silverlight 2.0 inclut une version du Framework Microsoft .NET implémentant entièrement le même CLR que le Framework .NET 3.0. Ainsi, il peut exécuter n’importe quel langage .NET incluant VB.NET, C#. Au contraire du CLR inclus dans le Framework .NET, de multiples instances du CoreCLR inclus dans Silverlight peuvent être contenues dans un seul processus. Ceci permet au fichier de mise en page XAML de pouvoir être étendu avec du code derrière le code, écrit en n’importe quel langage .NET contenant la logique de programmation. Il peut-être utilisé pour manipuler au même moment l’application Silverlight et la page HTML qui contient le contrôle Silverlight. Le XAML, ainsi que le code est compilé en fichiers exécutables .NET qui seront ensuite zippés, puis enregistrés dans un fichier xap.
Silverlight tourne avec une librairie légère, possédant de nombreuses fonctionnalités contenant entre autres des contrôles extensibles, des Web Services XML, des composants réseaux ou des API LINQ pour les bases de données. Cette librairie est un sous-ensemble et est considérablement plus petite que la librairie de base du Framework .NET.
Le code Silverlight tourne dans une sorte de bac à sable qui empêche d’invoquer les API de la plate-forme.
Silverlight 2.0 apporte aussi du support pour les médias DRM.
La version du Framework .NET dans Silverlight comprend en plus un sous-ensemble du modèle de programmation WPF de l’UI, incluant un support pour les formes, les documents, les médias et les animations de WPF. Cependant, le groupe de contrôles de l’UI de la version alpha sont vraiment limités, sans prise en charge du databinding. Cependant, la version beta 1 ajoutera plus de 20 contrôles à l’UI (incluant les zones de texte, les Checkbox, les contrôles pour calendrier, entre autres), la prise en charge du databinding, une gestion automatique de la mise en page et des contrôles pour la manipulation des données. Les contrôles de l’UI sont habillables, en utilisant des modèles prédéfinis.
La librairie de base fournit des classes pour les collections, la réflexion, des expressions régulières, les chaines de caractères et l’accès aux données. Elle supporte aussi LINQ, avec un support total de LINQ to Objects et des arbres d’expression. Presque tous les espaces de noms System.LINQ et System.LINQ.Expression sont exposés. Cependant, LINQ to XML n’était pas disponible dans la version alpha, avant d’être présent dans la version bêta. La librairie de base (BCL) supporte aussi la sérialisation d’objets pour la persistance des données. Silverlight peut aussi supporter les données RSS, POX et JSON, en plus du XML. La BCL fournit un support avancé pour travailler sur des données XML, incluant les classes XMLReader et XMLWriter.
Silverlight inclus aussi des classes pour l’accès aux données à travers des Web Services basés sur du XML (POX), REST et les services WCF. Le support réseau inclus dans Silverlight peut être utilisé par les applications Silverlight pour communiquer à travers le protocole HTTP. Alors que dans la version alpha de Silverlight 2 la communication inter-domaines n’est pas permise, elle est supportée dans la version bêta 1.
Silverlight utilise un format basé sur du XML pour contrôler l’accès aux ressources par domaines interposés. En plus, Silverlight supporte aussi le format Adobe Flash régissant les accès inter-domaines. Silverlight 2 à partir de la bêta 1 ajoute aussi un support pour les communications réseaux, utilisant les sockets à travers IPv4 et IPv6. Silverlight 2.0 supporte aussi la programmation asynchrone, par l’utilisation des librairies de « threading ». Cependant, les sockets Silverlight sont plus restrictives. Elles peuvent communiquer uniquement avec l’hôte qui a lancé l’application au départ, et les numéros de port sont restreints du numéro 4502 à 4532. Les prochaines versions pallieront ce problème. Les sockets Silverlight peuvent uniquement initier une connexion, elles ne peuvent être en attente.
Silverlight 2 supporte le DLR, qui permet la compilation dynamique et l’exécution des langages dynamiques. Cependant, le DLR n’est pas inclus initialement dans la distribution Silverlight, une extension supplémentaire appelée Dynamic Silverlight a besoin d’être installée. Les modules spécifiques au langage peuvent être empaquetés avec le DSL dans le package .xap. Le SDK DSL inclus un serveur Web appelé Chiron, qui empaquette automatiquement toutes les dépendances pour l’application DSL avant de la lancer dans le navigateur.
Les premiers langages écrits pour le DLR sont JScript, IronPython 2.0 et IronRuby. Microsoft envisage aussi d’embarquer Visual Basic .NET sur le DLR. Tous les 4 langages partagent la même infrastructure, pour permettre à Silverlight de compiler et d’exécuter la source. Inversement, d’autres langages .NET doivent être compilés avant, et transmis à Silverlight comme des assemblies .NET. L’implémentation du JScript managé est conforme à la spécification ECMAScript 3.0, et Microsoft clame qu’il est 250 fois plus rapide que le JScript interprété.
Avec l’intégration du Framework .NET, Silverlight permet aussi une interaction avec le code HTML managé, qui permet aussi bien la manipulation des éléments HTML du DOM du code implémenté, que l’appel aux objets instanciés par le code implémenté à travers JavaScript. Silverlight encapsule les objets JavaScript et les éléments DOM pour les rendre disponibles dans le code géré. Une application Silverlight n’a pas besoin d’avoir des composants de l’UI pour pouvoir manipuler le DOM du HTML du code géré. Ceci est fait en créant un canevas XAML dont la largeur et la hauteur sont initialisés à 0. Ce code derrière le code permet de modifier le DOM de la page HTML via les API dans l’espace de nom du navigateur.
Silverlight 2 inclus Deep Zoom, une technologie dérivée de Microsoft Live Labs Photosynth. Il permet aux utilisateurs de zoomer sur des images ou un regroupement d’images avec des transitions en douceur, en utilisant le curseur de la souris. Les images peuvent mesurer de 2 à 3 Megapixels au Gigapixel, mais l’utilisateur n’a pas besoin d’attendre que l’image soit chargée entièrement, car Silverlight charge uniquement les parties étant visionnées, optimisées selon le niveau de zoom. Silverlight 2 permet aussi de définir un accès restreint aux données systèmes pour les applications Silverlight. La technologie peut utiliser la boite de dialogue native Ouvrir un fichier du système d’exploitation (OS) pour rechercher un fichier. Le fichier sera exempt des informations sur le chemin pour empêcher l’application d’accéder aux informations comme le nom d’utilisateur. Il sera ouvert en lecture seule.
Pour le stockage local des données, Silverlight fournit un stockage local isolé (Isolated Storage) en dehors du cache du navigateur, dans un dossier caché dans le dossier privé de l’utilisateur. Dans les versions actuelles, l’isostockage est limité à 1 Mo par URL. Cette limite sera sans doute configurable dans les prochaines versions. Les données enregistrées par une application Silverlight, identifiées par l’URL d’où elles ont été chargées peuvent être accessibles par cette application seulement. Toutes les instances de Silverlight partagent le même isostockage, permettant à toutes les instances de l’application de partager les mêmes données, même si elles tournent sur de navigateurs différents.
Le CoreCLR Silverlight utilise un modèle de sécurité axé sur l’attribut, par opposition au modèle Code Access Security (CAS) de la version bureau du Framework .NET. Tous les assemblies sont marqués avec un attribut de sécurité, qui peut être transparent (SecurityTransparentAttribute), ou critique sûr (SecuritySafeCriticalAttribute) ou critique (SecurityCriticalAttribute). Les méthodes dans les assemblies transparents tournent avec une confiance partielle et de tels assemblies ne peuvent appeler des méthodes critiques. Ils ne peuvent pas non plus contenir du code non vérifié (utiliser le mot clé C# ou utiliser des pointeurs) ou invoquer des fonctions systèmes. Le code avec les assemblies critique sûr et critique ont une confiance totale et ne sont pas sujettes aux limitations.
Néanmoins, les méthodes critiques ne peuvent être appelées que dans des méthodes critiques sûres et non dans les méthodes transparentes. Ainsi, les méthodes transparentes n’ont pas le droit d’utiliser des méthodes pouvant causer de grands changements au système entier. À la place, elles doivent appeler les méthodes critiques sûres qui vérifieront que le code est sûr, selon les droits de l’utilisateur, avant de les rediriger vers les méthodes critiques. En fait, les API de l’Isostockage sont exposées comme des méthodes critiques sûres. Un assembly (exécutable portable en .NET) qui n’a pas d’attribut est exécuté comme une méthode transparente. Les limitations s’appliquent aussi bien pour les héritages de type, les appels de méthode virtuelle que les appels de méthode interface. Les assemblies Silverlight peuvent contenir des membres qui ne sont pas utilisables par le CoreCLR, mais qui peuvent l’être par le CLR du Framework .NET. Ces méthodes ne seront pas chargées quand l’assembly sera exécuté par le CoreCLR.
Il faut remarquer que seul le code de la plate-forme peut être défini comme critique ou critique sûr. Le Runtime Silverlight assure que les assemblies(exécutables portables en .NET) de la plate-forme sont chargés uniquement à partir du répertoire d’installation de Silverlight et sont signés Microsoft. Ceci signifie que tous les assemblies de l’utilisateur de l’application peuvent uniquement être exécutés en tant que code transparent et avec une confiance partielle et des droits limités.
Les méthodes de la librairie de base du Framework .NET qui ont l’attribut internet défini leur permettant d’être appelés d’un code non vérifié venant d’internet sont exposés dans la librairie de base Silverlight en tant que méthodes transparentes.
[modifier] Silverlight 2.0 beta 2 (2.030523.8)
[modifier] Silverlight 3.0 beta
La version 3 beta a été présentée aux développeurs par Scott Guthrie le 18 mars 2009, lors de la conférence Mix09 à Las Vegas .
Les fonctionnalités sont :
- l'accélération GPU sur l'interface
- le mode "hors du navigateur"
- le support du mode déconnecté comme Adobe AIR ou Gears.
- l'indexation de Silverlight comme une page html
- la prise en charge du H264, de l'AAC et du 720p
- le support de la 3D
- l'apparition d'une version mobile ( Windows Mobile,Symbian OS,BlackBerry ? )
[modifier] Outils de développement
Les applications Silverlight peuvent être écrites dans n’importe quel langage de programmation Microsoft .NET. De même, n’importe quel outil de développement qui peut être utilisé avec les langages .NET peut fonctionner avec Silverlight, dû au fait qu’il pourra cibler directement le noyau CLR de Silverlight, à la place du CLR .NET.
Les versions 2.0 et 2.5 de Microsoft Expression Blend ont été pensées pour la conception des UI des applications Silverlight 1.0 et 2.0 respectivement. Visual Studio 2008 peut être utilisé pour développer et déboguer les applications Silverlight. Mais il faudra pour cela installer préalablement « The Silverlight tools for Visual Studio ».
Un projet Silverlight contient les fichiers Silverlight.js et CreateSilverlight.js qui initialisent le plugin Silverlight pour l’utilisation dans des pages HTML, un fichier XAML pour l’interface utilisateur (UI), et des fichiers de code pour les codes de l’application. Les applications Silverlight sont déboguées de la même manière que les applications ASP.NET. Le « Remote Cross Plattform Debugging » du CLR de Visual Studio peut être utilisé pour déboguer les applications Silverlight tournant sur différentes plates-formes.
[modifier] Licence
Une annonce affirmait que Microsoft pourrait donner libre accès à certains composants du code source Silverlight dans une version open source, mais Sam Ramji, directeur de la stratégie technologique chez Microsoft a démenti l’information. Néanmoins, le DLR inclus avec Silverlight est disponible sur le site CodePlex de Microsoft sous la licence Microsoft Public License. La collection de contrôles incluse dans Silverlight 2 sera aussi disponible sous la même licence.
[modifier] Alternatives
L’équipe Mono développe actuellement une implémentation Open source du runtime Silverlight, appelée Moonlight. Le projet est officiellement supporté par Microsoft, qui après un accord avec Novell a rendu disponible à Mono des spécifications supplémentaires, en plus de celles déjà rendues publiques, ainsi que des tests. Mono a également un accès exclusif à l’API de la bibliothèque de base. Moonlight vise les 2 versions de Silverlight.
[modifier] Critiques
Silverlight a été critiquée comme technologie parce qu’elle n’inclut ni Linux ni BSD dans son offre officielle. Même si Microsoft collabore sur le projet Moonlight, Bruce Chizen, ancien PDG d’Adobe Systems a rappelé l’obligation de Microsoft de garder la plate-forme Silverlight compatible avec les autres OS en plus de Windows. Ses craintes se basent sur des exemples passés : Microsoft a promis plusieurs fois de développer des produits compatibles avec de nombreuses plates-formes, sans jamais le faire en réalité.
Le Comité Européen pour les systèmes interopérables (regroupant les plus grands concurrents de Microsoft) craint qu’avec Silverlight, Microsoft cherche à introduire sur le web du contenu qui serait uniquement accessible sur la plate-forme Windows. Ils précisent que l’utilisation du XAML dans Silverlight est positionné pour remplacer la plate-forme croisée HTML standard. Effectivement, si l’usage de Silverlight s’étend assez, les utilisateurs risquent d’avoir à acheter des produits Microsoft pour accéder à du contenu web. La Californie et plusieurs autres États des États-Unis ont aussi demandé à un juge d’étendre la plupart des ordonnances antitrust infligées à Microsoft à 5 ans[3].
Microsoft a également été critiqué (comme Adobe) pour ne pas avoir utilisé le standard Scalable Vector Graphics (SVG) dans Silverlight, ce qui, selon Ryan Paul d’Ars Technica, relève du refus de Microsoft d’utiliser des standards Open Source dans ses produits.
Cependant, selon David Betz, un spécialiste indépendant des technologies .NET, Microsoft aurait eu besoin de modifier la spécification SVG pour intégrer le .NET et les constructions de l’UI au-dessus de la couche SVG pour la rendre appropriée pour les scénarios que Silverlight utilise à travers les balises. Par conséquent, l’utilisation du XAML aurait servi à préserver le standard SVG de l’ajout d’une technologie propriétaire pour l’étendre. Il a ajouté que Silverlight peut être vu comme une extension de WPF, une technologie .NET 3.0, et non seulement comme une nouvelle technologie web[4].
[modifier] Notes et références
- ↑ (en) Une discussion sur le forum de Microsoft consacré à Silverlight.
- ↑ (en) Moonlight - Mono
- ↑ (en)Todd Bishop, « Antitrust filing cites Microsoft Silverlight concern », October 17, 2007, Seattle Post-Intelligencer. Consulté le 2007-12-06
- ↑ (en)David Betz, « Silverlight's Adoption as Public De-Facto Standard ». Consulté le 2007-06-20


