Tech Days 2010 : Les nouveautés de Silverlight 4

Executive summary : Session très impressionnante, comme l’est le rythme de développement de Silverlight depuis la version 2. Les fonctionnalités ajoutées sur la version 4 sont vraiment très nombreuses. Certaines sont purement orientées grand public (webcam, etc.) mais d’autres (mode Out Of Browser, gestion des crédentiels, Drag & Drop, impression, gestion du clic droit, MVVM, etc.) vont permettre de créer de manière sérieuse des applications pour l’entreprise. Avec la version 3, Flex avait déjà du souci à se faire, mais vu tout ce que la version 4 amène, Adobe va devoir frapper un grand coup si ils veulent améliorer leur place dans le développement RIA.

Merci à mon chef qui a bien voulu échanger avec moi sa session Silverlight 4, et aller prendre des notes sur la mise en place d’un bus de services d’entreprise. Ca va me permettre de voir cette session un peu spéciale, dans le sens où elle est présentée par Julien, de la communauté DotNet-France, qui m’a récemment accueilli.

20 minutes avant le début de la session, la file d’attente s’étendait plus loin que celle de la salle suivante. Bref, il va falloir refuser du monde. C’est même étonnant de la part de Microsoft d’avoir mis cette session sur une aussi petite salle : c’est pourtant typiquement le genre de session qui draine beaucoup de monde…

Introduction

Comme vous le savez certainement, Microsoft a récemment mis les bouchées double sur Silverlight, avec, la version 3 à peine sortie, la version 4 qui pointe le bout de son nez avec encore de nombreuses évolutions. C’est le but de cette session de montrer ces améliorations.

Aurélien Norie, de Microsoft Services, et Julien Dollon, donc, de la communauté DotNet-France, présentent cette session.

Roadmap

Silverlight 1 est paru en 2007, avec du XAML et du JavaScript, pour traiter de la vidéo et de l’animation. La première vraie version est la 2, sortie en 2008. On pouvait désormais faire du .NET dans Silverlight. Ensuite, Silverlight 3 a apporté en 2009 de nombreux contrôles supplémentaires et des améliorations importantes (Pixel Shader, accélération GPU).

Trois chiffres :

  • 45% d’adoption du plugin sur les machines (bien aidé par Roland Garros, diffusé en streaming sur du Silverlight).
  • 2x : Silverlight 4 promet une exécution deux fois plus rapide que la version précédente.
  • 10 secondes pour charger le plugin.

Les demandes de la communauté ont été satisfaites :

  • Drag & Drop sur le bureau.
  • Impression.
  • Gestion plus aboutie du clic droit.

Démonstration

Visual Studio 2010 Beta 2 pour le développement de Silverlight 4. Visual Studio permet de cibler la runtime Silverlight ciblée.

Drag & Drop

Aujourd’hui, si on droppe une image sur le navigateur, on sort du coup de l’application Silverlight pour afficher l’image à la place.

Sur un Canvas, on active le AllowDrop et on s’abonne à l’évènement Drop. Dans le delegate, on récupère le tableau de FileInfo qui contient les fichiers qui ont été droppés sur le contrôle.

Clic droit

Pour l’instant, on voit le menu contextuel de Silverlight. On peut se brancher sur l’évènement contextuel pour afficher un menu qui est en XAML.

Impression

On crée un objet de type PrintDocument. Sur l’évènement PrintPage, on place sur la propriété PageVisual le contrôle à imprimer, puis on fixe le HasMorePages à false. On peut ensuite appeler simplement Print() sur le PrintDocument à partir du code.

Le fond d’écran n’est pas pris en compte au niveau de l’impression si il n’est pas sur le contrôle à imprimer, logiquement. Ce qui est pratique car on veut souvent avoir un fond de couleur sur une application, mais imprimer sur un fond blanc.

Médias et Silverlight 4

Vidéo

Les DRM sont supportés sur les vidéos même en mode déconnecté.

SmootStreaming permet, depuis Windows Server 2008R2 et IIS7 de générer des flux avec différentes qualité, et de les faire afficher dans Silverlight, avec une lecture en continue, car le problème de bande passante est réglé en diminuant la qualité et pas en suspendant de temps en temps la lecture.

Webcam & microphone

Les flux audio et vidéo sont accessibles dans le code, ainsi que le choix du périphérique. Il y a bien sûr une autorisation préalable de l’utilisateur.

Interfaces fluides

Animation de chargement et de déchargement d’éléments dans une liste, en quelques clics dans Blender.

Démonstration suivante

Webcam

C’est l’objet CaptureSource qui se charge de la capture vidéo en provenance de la webcam. Cet objet nous permet de récupérer une VideoBrush qu’on pourra appliquer dans un contrôle conteneur, du coup, de la vidéo.

On peut piloter la webcam à utiliser ainsi que le format d’enregistrement. Ceci est d’ailleurs réalisé par le code .NET, et pas extériorisé dans un panneau de configuration de Silverlight, ce qui est pratique car on peut piloter du coup plusieurs webcams les unes après les autres dans Silverlight.

Gestion des styles

On a désormais à disposition des styles implicites, comme en WPF : on peut supprimer l’association d’un contrôle à un style, et associer le style à un type, et à toutes les instances de ce type.

Easing style démontrés dans Blender : on peut appliquer des styles de mouvements fluides prédéfinis.

Pixel Shader effects depuis Silverlight 3 : on peut appliquer des effets vidéo.

Encore une démonstration : réalité augmentée dans Silverlight !

On peut se servir de l’image capturée par la webcam pour retrouver des marqueurs en papier, les passer dans une API (SLARToolkit) pour retrouver l’orientation de ce papier, puis ajouter des objets 3D dessus en utilisant la nouvelle fonctionnalité de projection 3D de Silverlight.

Démonstration vraiment impressionnante… On a vu il y a quelques mois sur internet des applications sur la réalité augmentée, et il y a eu un pic d’intérêt pour cette technologie, mais ça semblait nécessiter des puissances de traitement importantes. La voir sur un plugin de 4 Mo, c’est assez bluffant !

Communication avec les services

Support des NetworkCredentials dans la pile HTTP client : moins sexy que la démonstration précédente, bien sûr, mais de mon point de vue, très important. C’est le genre de fonctionnalité qui, pour une application industrielle, est absolument obligatoire pour l’adoption de Silverlight.

Possibilité de scénario Trusted, pour avoir un mode Out Of Browser avec plus de droits sur le client. Dans les settings OOB, on peut cocher une option pour demander à être exécuté en mode Trusted. On a alors le droit d’aller chercher des services.

UDP Multicast pour écouter des entrées socket, typiquement du chat.

Contenu riche

Le contrôle RichTextArea permet de récupérer du texte formaté depuis Word par exemple. Il y a aussi le support de l’écriture de gauche à droite. Le texte enrichi affiché à l’écran est en fait lui-même du XAML.

Architecture d’entreprise

MVVM : pattern désormais possible en Silverlight (Commanding supporté)

Compatibilité des assemblages .NET : on peut désormais utiliser les librairies externes développées pour Silverlight dans une autre application.

Gestion améliorée de la validation et de la navigation de page.

Enfin, inclusion du Managed Extension Framework, qui permet de gérer des applications composites.

Mode Out Of Browser :

  • Application sandboxée.
  • Hébergement HTML.
  • Notifications “toast”.
  • Gestion de la taille de fenêtre par défaut.
  • En mode FullTrust, accès au système de fichiers (en tout cas dans les dossiers utilisateurs), ainsi que l’interop COM (Ouvrir word, ajouter un élément dans le calendrier Outlook).

Dernière démonstration

On peut exporter de la donnée vers Excel, et réceptionner des évènements venant d’Excel sur des modifications de données. Dommage qu’on n’ait pas le temps de voir plus en détails comment ça fonctionne, parce que c’est vraiment très intéressant pour des applications en entreprise. En posant la question à la fin, il se trouve qu’on passe par un évènement COM qui est SheetModified, ou quelque chose approchant, et auquel on abonne l’application Silverlight, qui a le droit de faire ceci car on est en mode Trusted Out Of Browser.

Conclusion

Une des sessions les plus enthousiasmantes des TechDays, en particulier la démonstration de réalité augmentée. En résumé, on est bien loin de Silverlight 1 et ses codes JavaScript absolument inutilisables, et désormais à un niveau de fonctionnalité qui permet d’envisager des applications industrielles sur Silverlight.

About JP Gouigoux

Jean-Philippe Gouigoux est Architecte Logiciel, MVP Connected Systems Developer. Il intervient régulièrement à l'Université de Bretagne Sud ainsi qu'à l'Agile Tour. Plus de détails sur la page "Curriculum Vitae" de ce blog.
This entry was posted in Retours. Bookmark the permalink.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Captcha Captcha Reload