Dot.Blog

Windows, UWP, C#, XAML, Xamarin

Silverlight 5 : l’attente sera difficile !

[new:20/01/2010]Microsoft a commencé la diffusé sur Channel 9 d’une première conférence annonçant la road map de Silverlight ainsi que les nouveautés principales de cette release. Ca va (encore) faire mal...

 

La source d’information

Tout ce qu’on peut lire actuellement sur les newsgroups, les forums ou les blogs n’a qu’une seule source, une vidéo présentée par Scott Guthrie (Corporate Vice President of Microsoft's .NET Developer Platform) sur Channel 9.

Si vous comprenez l’anglais vous aurez aussi vite fait de vous rendre sur le site Microsoft suivant pour visualiser la conférence (pour des codeurs, je vous préviens c’est plus d’une heure et demi de blabla pour quelques passage de code...) :

La vidéo: http://www.microsoft.com/silverlight/future/
Le blog: http://weblogs.asp.net/scottgu/archive/2010/12/02/announcing-silverlight-5.aspx

On peu aussi lire ce billet de Tim Heuer : http://timheuer.com/blog/archive/2010/12/02/silverlight-5-revealed-at-firestarter.aspx

La source décodée

Pour les pressés ou les “monoglotte” ne pratiquant que le français , voici, en gros et avec assez peu de détail hélas, les principales features annoncées pour SL 5 ainsi que sa road map.

Les dates

C’est souvent ce qu’on veut savoir en premier, et cela vient à la fin de la vidéo. Je vous évite 90 minutes d’attente : Silverlight 5 Beta sera normalement disponible en juin. La version finale en fin d’année (2011). SL 5 est donc un produit utilisable en test dans quelques mois mais pour de la mise en production en 2012 (entre janvier et le 21 décembre puisque là, ça sera la fin du monde il parait Smile).

Les nouveautés

Le support des média

Les présentations de Silverlight mettent toujours l’accent sur ce que je trouve personnellement le plus secondaire, mais après tout cela semble passionner les foules : le support des médias, entendez les vidéos. Car le son (faire des boucles sans “blanc” par exemple), on n’en parle même pas.

SL5 améliore donc le décodage des vidéos H.264 notamment par l’accès matériel ce qui rendra plus fluide le visionnage sur les machines moins puissantes tout en conservant un rendu haute résolution. Je suis content pour ceux qui regardent du foot sur leur téléphone dans le métro...

Le TrickPlay est un ajout permettant de moduler la vitesse de lecture d’une vidéo. La fonction se double d’un audio pitch c’est à dire de la conservation des fréquences. Si vous passez une vidéo plus vite, le speaker n’aura pas la voix de Mickey Mouse ou de Daisy... Certainement pour voir les matchs de foot super nuls en accéléré jusqu’au seul but unique de la partie sans perdre 2 fois 45 minutes... Une avancée technologique majeure donc.
(Sans plaisanter je ne sais pas à quoi ils pensent en faisant bosser l’équipe de SL sur des trucs pareils).

Amélioration de la gestion de l’alimentation et des screens savers pour éviter qu’ils prennent la main sur une vidéo en cours.

Meilleure gestion des DRM (mais franchement, les médias avec DRM je vous conseille d’éviter, choix politique délibéré de ma part qu’on peut ne pas suivre, bien évidemment).

Amélioration de la gestion du texte

On arrive aux vraies améliorations utiles.

La première chose qu’on réclamait à SL c’était d’avoir un meilleur moteur de rendu pour le texte. La lisibilité n’étant pas toujours parfaite. SL5 intègre ainsi un nouveau moteur de rendu qui rend le texte bien plus lisible.

En haut le texte SL4, en bas le même avec le moteur de SL5, la différence est notable.

SL5 supporte aussi la répartition multi colonne du texte.

SL5 supporte de nouveaux paramètres pour les fontes comme le tracking et le leadind. En clair, pour ceux qui ne connaissent pas la typographie, le tracking est l’espacement horizontal entre les caractères :

Le leading concerne l’espace vertical entre les lignes. Le nom vient de la ligne de plomb (lead) qui était manuellement insérée entre les lignes pour les séparer sur les vieilles presses (et non pas de lead dans le sens de leader).

La vitesse et le rendu du texte sont aussi améliorés.

SL5 assurera le support des fontes OpenType plus efficace.

PostScript Vector Printing

C’est l’une des options qui m’intéresse le plus car elle semble ouvrir la porte à de la génération de reports bien plus sophistiquée que l’embryon consommateur de mémoire et de bitmaps de SL4. Hélas, difficile d’en savoir plus à l’heure actuelle, mais Postcript vector cela fait penser inévitablement aux formats PS, PDF, SVG... On peut rêver tant qu’on n’en saura pas plus...

Amélioration de l’interaction utilisateur / programme

On notera la prise en charge naturelle du double clic, très attendue. Tout comme le support du type-ahead dans les combobox (aide à la saisie par une sorte d’auto complétion).

MVVM à l’honneur

Je ne vous en parle pas depuis des mois, presque des années maintenant (!) pour rien... MVVM n’est pas oublié dans SL5 puisque de nouvelles features viennent assurer un meilleur fonctionnement des applications avec cette pattern “out of the box”, c’est à dire sans avoir à utiliser de librairies externes. De ce que j’ai vu ce n’est pas encore parfait mais la prise en charge se complète avec le temps et de façon encourageante.

Par exemple on appréciera énormément la possibilité de faire du debug en plaçant un point d’arrêt dans le code XAML d’un databinding pour inspecter ce dernier et trouver les éventuelles failles. Le debug du databinding est une avancée importante techniquement parlant.

SL5 offrira des DataTemplates implicites, une façon de fournir des templates par défaut pour certains type d’objets visuels et ce pour toute l’application et sans se soucier des détails. Une vraie bonne idée.

Plus fort, SL5 autorise le binding à l’intérieur des définitions de styles. Plutôt que de réinventer les Dynamic Resources de WPF, et pour rester sur la vague MVVM qui exploite plutôt le binding, cette nouvelle possibilité sera à bien étudier pour en tirer toute sa richesse (personnalisation des couleurs, des fontes, etc, automatiquement depuis des variables du DataContext – du ViewModel; le tout sans code).

Network

Les attentes seront réduites pour les opérations réseau qui exploiteront automatiquement un thread d’arrière plan non bloquant pour l’IU.

Le support WS-Trust, une gestion de la sécurité via des token. A creuser l’info est trop floue pour le moment. En tout cas cela semble permettre de faire sauter certains verrous, que cela soit en mode Web ou en mode Out-Of-Browser.

Performances

Les performances sont améliorées globalement mais principalement :

  • Pour les communications réseau (voir ci-dessus)
  • Dans le Parser de XAML qui accélère le lancement d’une application ainsi que son exécution
  • Le support d’une version 64 bit du plugin

Graphiques

Enfin, la 3D fait apparition sous SL ! Incroyable ! J’attends ça depuis des années ! Un truc à ouvrir la dernière bouteille de champagne oubliée dans le frigo le soir du réveillon !
La démo qu’on peut voir dans la vidéo indiquée en introduction semble démontrer des capacités tout à fait respectables : mouvements de caméra, opacité des layers 3D, gestion de la lumière, et bon rendu global.

Le cœur ci-dessus est issu d’une application de gestion de patient, on y voit un corps humain en plusieurs couches (des habits jusqu’à l’intérieur du corps), et le cœur bat, ce qui démontre que les animations sont aussi supportées en 3D.

Bien entendu la 3D exploite l’accélération matériel et utilise le rendu du GPU.

Autre amélioration, l’accélération matériel est disponible  dans les Windowless (sans fenêtre) mais apparemment uniquement sous IE 9.

Convergence WPF

Je vous en ai parlé souvent, l’annonçant à une époque ou je me souviens avoir pris quelques commentaires acerbes de certains lecteurs très dubitatifs sur ce qui est aujourd’hui avéré à 99%. Déjà SL 4 et le mode OOB et le support COM commençaient à grignoter l’herbe du pré-carré de WPF... Avec SL5 et l’arrivée d’une nouvelle gestion de la sécurité ce n’est plus seulement des objets COM qui peuvent être utilisés en OOB, mais aussi du P/Invoke ! Et en mode In-Browser la vidéo démontre même l’accès à un périphérique USB !

Si on prend en compte le support de la 3D, un moteur de rendu du texte enfin à la hauteur, l’API vectoriel Postscript et aussi la possibilité en OOB d’ouvrir plusieurs fenêtres sur le bureau, on arrive au final à une application WPF. Allez, je vous l’accorde, on pourra toujours chipoter et trouver encore jusqu’à SL5 ou 6 quelques petites différences de ci de là.

Mais très honnêtement, tout ce que fait WPF est faisable en Silverlight, avec juste une différence de taille : Silverlight créé des applications qui marchent sur Mac et PC, et même sur téléphones WP7 et même sur IPad (!), là où WPF est scotché à Windows et DirectX.

En tant que développeur, pour le même investissement temps, et les mêmes connaissances, choisirez-vous WPF 100% Windows ou Silverlight ouvert à de multiples machines et OS ?

Bien plus qu’une simple convergence, quand SL 5 ou peut être 6 seront sortis, quel intérêt Microsoft aura-t-il à maintenir deux produits tellement proches, dont l’un est un succès (SL) et l’autre, il faut l’avouer, un semi-échec (WPF) ? En tout cas à chaque fois que cette situation s’est présentée dans le passé, Microsoft à toujours choisi de supprimer l’un des deux produits. A méditer pour les projets qui seront lancés dans les mois à venir donc ! Choisissez la bonne plateforme !

Le reste

Dans sa conférence, Scott indique que 70% des demandes qui été formulées sur le site de vote des nouvelles features de SL 5 ont été implémentées dans SL 5 ou sont en cours de l’être. Il est vrai que la 3D qui arrive en 2eme ou 3eme position fait partie de la livraison, ainsi que le texte, un meilleur binding, etc..

Il est vrai que d’autres améliorations sont annoncées comme le profiling des applications SL 5 depuis Visual Studio. Un système d’enregistrement de sessions de test qui traduit automatiquement les manipulations de l’utilisateur en code de test est aussi montré et semble plutôt bluffant.

Conclusion

SL 4 marquait un pallier dans la maturité du produit. SL 5 va démontrer sa supériorité définitive sur toutes les autres solutions se réclamant de près ou de loin de la même philosophie. 

Flash avait ouvert la voie. Mais ce n’était qu’une mode fragile car il était seul à faire ce qu’il faisait. L’arrivée de Silverlight signifia clairement qu’il ne s’agissait pas d’une mode mais d’un nouveau mode de développement. HTML 5 entérine que c’est la seule façon de programmer le Web dans les années à venir, voire même le desktop (via le Cloud ?). Mais parmi ces trois solutions, Silverlight me semble honnêtement être la mieux dotée, parce qu’elle se repose sur un Framework qu’aucune société en dehors de Microsoft n’a été capable d’inventer à ce jour, et ne sera capable d’égaler dans un avenir proche...

Silverlight et sa version 5 va devenir Inéluctable car si ma grosse concierge qui a du poil au menton possède un IPhone (ce qui paradoxalement à l’image de la Pomme en fait donc un outil vulgaire et sans classe dont je ne voudrais pas même si on m’en faisait cadeau !), si même elle, sans instruction, sans amour de la technologie et donc très loin du geek, possède un outil avec une interface aussi sophistiquée, qui voudra encore demain d’une application Web conçue avec de vieux outils ? Qui même voudra d’une application desktop au look XP dans 6 mois ?

Personne.

Il est donc grand temps de vous mettre à Silverlight si ce n’est pas encore fait. Dans deux ou trois ans vous me remercierez de vous avoir guidé sur la bonne voie Smile.

Une raison supplémentaire de : Stay Tuned !

blog comments powered by Disqus