était un pour navigateur web sur Windows et Mac OS X, qui permet de développer des applications Web riches dans un moteur de rendu vectoriel. Il fonctionne de façon similaire à Adobe Flash dont il se veut une alternative. Techniquement, Silverlight est l’équivalent du CLR de Microsoft mais pour les navigateurs Web.
Silverlight avait comme concurrents principaux Adobe Flash, Flex et, dans une moindre mesure, des solutions telles que ou QuickTime d’. Tout dépend si l’on se place du côté outil de conception de véritables applications ou de simple diffuseur de média (vidéos, musiques…).
(Internet Explorer, par exemple) dans les systèmes d’exploitation Windows et , via l’utilisation d’un , mais pas dans les dernières versions des navigateurs modernes. Silverlight n'est plus supporté dans Google Chrome depuis (version 45), ni dans Firefox depuis (version 52). Edge, le navigateur par défaut de Windows 10, ne l'a jamais supporté (même s'il provient du même éditeur).
Microsoft a annoncé la fin du développement de Silverlight 5 en 2012, sauf pour les correctifs. Il n'est plus du tout supporté depuis le .
Tout comme pour Flash, les considérations de sécurité et l'évolution des standards Web (dont HTML) sont la cause de son abandon.
Animation, vidéo, interactivité Silverlight fournit un système graphique en (seules les données internes sont modifiées) similaire à WPF. Il intègre le multimédia, les graphiques, les animations et l’interactivité avec l’utilisateur.
Il a été conçu pour travailler de concert avec XAML pour la description de l’interface graphique, et avec les langages Microsoft .NET pour le comportement (partie code). Il reste toujours possible d’utiliser JavaScript comme le permettait la mais ce mode de programmation n’a plus guère d’intérêt depuis le support des langages .NET introduit dans la . Silverlight peut aussi être utilisé pour créer de nouveaux gadgets pour le 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 ou des autres habituellement nécessaires. Vu que WMV9 est une implémentation du standard SMPTE VC-1, Silverlight supporte aussi les vidéos VC-1. De nouveaux modes vidéo sont disponibles depuis la , voir le site de l’éditeur pour plus de détails notamment le support de la TV HD.
Silverlight rend possible le chargement dynamique du contenu XML, qui pourra être manipulé à travers le DOM, une technique qui est cohérente avec les techniques AJAX usuelles. Le support de LINQ simplifie encore plus la gestion des sources XML. , technologie transformant des modèles en services Web de type REST, le transport des données se faisant dans un format standard AtomPub ou JSON.
Depuis la , la logique de programmation peut être écrite en n’importe quel langage Microsoft .NET; sont aussi inclus de nombreux langages dynamiques de programmation comme Ruby et Python, même si ces utilisations restent marginales.
Compatibilité vidéo et audio FormatStatutMPEG1N/DMPEG2N/DMP3OuiMPEG4OuiFlash VideoOuiH263NonH264OuiTheoraOui , Ars Technica, publié le 5 février 2010.QuickTimeNonRealMediaNonVC-1OuiWindows MediaOui N/D : non disponible
Compatibilité Il est disponible pour Windows XP, Windows Vista, , 8 et 10, 10.4, à l’aide d'un disponible à partir des versions , Safari 1.0 d’, Mozilla Firefox 38 et Google Chrome 41.Une version compatible avec les environnements GNU/Linux, basée sur une implémentation libre de pour Mono appelée Moonlight fut développée à partir de 2008, avant d'être abandonnée en 2011. Le support pour téléphones portables sous , et mobiles Symbian OS ( et 60) et Android avait été annoncé : « Silverlight ( WPF ou encore — pour WPF « partout ») est le nom de code d’une solution navigateur multiplate-forme basée sur XAML qui améliore les présentations à base de contenus riches (2D et 3D, animation, dessin vectoriel, vidéo et audio) en s’affranchissant totalement du code HTML. » Opera n'a jamais été supporté officiellement. Il n'a jamais été officiellement disponible sous Linux Une discussion sur le forum de Microsoft consacré à Silverlight.. Silverlight pour mobiles était prévu pour exécuter du contenu Silverlight sur des appareils mobiles. Une brève démonstration a été faite à l’occasion des mais la CTP pour n'a jamais été rendu disponible. Nokia a annoncé comme projet de rendre Silverlight pour mobiles disponible pour le S60 sous Symbian, ainsi que pour les appareils et les Tablettes Nokia Internet. Silverlight pour mobile aurait dû supporter le contenu .
Différentes versions
Silverlight 1.0 , qui est responsable de l’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 ; 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… 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 gestion 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 () et JSON uniquement.
Silverlight 2.0 beta 1 (anciennement Silverlight 1.1) La apporte plus d’interactivité et permet aux développeurs d’utiliser des outils de développement et les langages Microsoft .NET en lieu et place de JavaScript de la .
Silverlight 2.0 inclut une version du implémentant entièrement le même CLR que le .NET Framework 3.0. Ainsi, il peut exécuter n’importe quel langage .NET, incluant Visual Basic .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 dans un fichier portant l’extension xap (qui reste un fichier ZIP standard).
Silverlight tourne avec une bibliothèque légère, possédant de nombreuses fonctionnalités contenant entre autres des contrôles extensibles, des services web XML, des composants réseaux ou des API LINQ pour les bases de données. Cette bibliothèque est un sous-ensemble et est considérablement plus petite que la bibliothèque de base du .NET.
Le code Silverlight est sécurisé à plusieurs niveaux, il tourne dans un ou « bac à sable » qui empêche d’invoquer les API de la plate-forme. Une application Silverlight ne peut donc pas accéder au matériel de l’utilisateur, ni à ses fichiers.
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’interface utilisateur, incluant un support pour les formes, les documents, les médias et les animations de WPF. Les limites de la version alpha seront levées par la qui ajoutera plus de à l’interface utilisateur (incluant les zones de texte, les Checkbox, les contrôles pour calendrier, entre autres), la prise en charge du , une gestion automatique de la mise en page et des contrôles pour la manipulation des données. Les contrôles de l’interface utilisateur sont habillables, en utilisant des modèles librement définis (notion de feuille de style, ). La manipulation visuelle d’un projet Silverlight s’effectue à l’aide du logiciel , la partie programmation se faisant sous .
La bibliothèque de base fournit des classes pour les collections, la réflexion, des expressions régulières, les chaînes de caractères et l’accès aux données. Elle supporte aussi LINQ, avec un support total de et des arbres d’expression. Presque tous les espaces de noms System.LINQ et System.LINQ.Expression sont exposés. Cependant, n’était pas disponible dans la version alpha, avant d’être présent dans la version bêta. La bibliothèque 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 inclut 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.
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. à partir de la ajoute aussi un support pour les communications réseaux, utilisant les XML sockets à travers IPv4 et IPv6. supporte aussi la programmation asynchrone, par l’utilisation des bibliothèques de « ». 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 à 4532. Les prochaines versions pallieront ce problème. Les sockets Silverlight peuvent uniquement initier une connexion, elles ne peuvent être en attente.
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 inclut un serveur Web appelé Chiron, qui empaquette automatiquement toutes les dépendances pour l’application DSL avant de la lancer dans le navigateur.