Dernière mise à jour le

WPF/E est séduisant, surtout dans une démo

WPF/E porte encore un nom qui ressemble à un raccourci de clavier, mais j’ai déjà envie d’en faire un prototype. Microsoft veut amener la vidéo, le dessin vectoriel et des interfaces animées dans le navigateur avec un module léger. Pour comprendre le pari, il faut séparer la page hôte du runtime.

Le navigateur charge d’abord HTML et instancie le plugin dans une zone de la page. Le plugin télécharge ensuite une description XAML de la scène : rectangles, texte, images, transformations et animations. Dans les aperçus actuels, JavaScript dans la page peut recevoir les événements et manipuler ces objets. Le moteur du plugin dessine le résultat sans demander au navigateur d’interpréter chaque forme.

navigateur
  |-- page HTML et JavaScript
  `-- plugin WPF/E
        |-- XAML -> arbre visuel
        |-- moteur vectoriel / média
        `-- requêtes HTTP -> services du serveur

Cette séparation donne un rendu plus constant entre les fureteurs, mais elle crée deux modèles d’interface dans la même page. Le bouton Précédent, les favoris, le focus clavier, le lecteur d’écran et l’impression appartiennent au navigateur; le plugin doit coopérer explicitement s’il veut respecter ces comportements.

Un prototype qui mesure autre chose que l’animation

Je prendrais une visionneuse de dossiers plutôt qu’une application complète. La page HTML reste capable d’afficher la liste et un lien de téléchargement. Si le plugin existe, il ajoute une prévisualisation fluide.

1. détecter la présence et la version du plugin;
2. charger le XAML et afficher un écran d'attente;
3. demander les métadonnées au serveur;
4. valider le XML reçu avant de créer les objets visuels;
5. sur timeout, garder la liste HTML et proposer de reprendre.

Le service doit rester la frontière de sécurité. Cacher un bouton dans XAML n’empêche pas un appel HTTP direct. Le serveur vérifie encore l’identité, l’autorisation et les paramètres. Les appels entre domaines sont limités par le runtime; il faut comprendre la politique permise plutôt que contourner la protection avec un proxy improvisé.

Le déploiement est probablement le risque principal en 2007. Quelle version du plugin est installée? L’utilisateur possède-t-il les droits pour la mettre à jour? La technologie fonctionne-t-elle dans les navigateurs et systèmes visés? Dans un parc contrôlé, on peut publier une version, vérifier l’inventaire et revenir en arrière. Sur le Web public, la première expérience risque d’être un dialogue d’installation.

Je garderais une matrice réelle plutôt qu’une mention « multiplateforme » dans la présentation : navigateur, système, version du runtime, compte administrateur ou limité, puis résultat du scénario. Une combinaison non soutenue reçoit la liste HTML et un message utile. Cette solution de rechange sert aussi pendant une mise à jour ratée du plugin ou une panne de son téléchargement.

Flash possède déjà une diffusion et des outils solides. JavaScript et Ajax évitent le plugin, mais demandent encore beaucoup de tests entre navigateurs. Je comparerais donc quatre mesures : portée réelle, accessibilité, poids initial et capacité de revenir à une expérience HTML. La meilleure animation ne compense pas une page essentielle inaccessible sur 20 % des postes.

Je vais probablement jouer avec WPF/E parce que le lien entre XAML, designers et développeurs .NET est franchement intéressant. Je garderais toutefois le prototype derrière une interface de service stable et une solution de rechange HTML. Une plateforme Web doit survivre au navigateur sans plugin, à la mauvaise version et au calendrier du fournisseur avant de devenir une fondation.

Mise à jour de 2026

Un mois et demi après ce billet, le 15 avril 2007, Microsoft a donné à WPF/E son nom officiel : Silverlight. La plateforme a ensuite vécu plusieurs versions avant de quitter le support le 12 octobre 2021.

WPF/E et Silverlight appartiennent donc à l’histoire du Web, pas à la liste des choix actuels pour démarrer une application. Microsoft conserve l’annonce du passage de WPF/E à Silverlight ainsi que l’avis de fin de support. L’adoption et la durée de vie étaient bel et bien des risques du choix.