Olivier Dahan

MVP Client Development 2014
MVP Silverlight 2013, 2012, 2011, 
MVP CAD 2010, MVP C# 2009


Membre du Developer Guidance Advisory Council Microsoft

Audit, Conseil, Formation, Développement
[WPF, Silverlight, WinRT, MonoDroid]

Historique

Silverlight 5 : l’attente sera difficile !

Read this article in your language IT | EN | DE | ES
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 !

Comments (8) -

P2
P2
1/3/2011 11:54:21 AM

Personnellement j'ai toujours cru en SL, mais avec les différentes annonces autour de HTML5 j'ai l'impression que SL a de moins en moins d'avenir...

SL remplacera WPF ... je veux bien le croire. Mais HTML5 ne remplacera-t-il pas SL?

Le discourt de MS est contradictoire, il dit: regardez ce que SL permet de faire dans un navigateur WEB pour ensuite annoncer que SL sera la technologie a dédier pour les applcations embarqués ET HTML 5 pour le WEB ....

Olivier
Olivier
1/3/2011 5:09:33 PM

@P2: L'interrogation est légitime.
Je n'ai bien évidemment pas de boule de cristal, je juge en fonction de mon expérience ce qui n'est pas un absolu.
Mais le fait que SL "remplace" WPF est déjà une réalité je pense. Aussi génial soit il le pauvre WPF n'a jamais décollé, là où Silverlight se revendique d'un million de développeurs dans le monde (et puis des applis SL on en voit, des applis WPF on les cherche, c'est une preuve assez flagrante).
Comme je le disais, une fois qu'une ajoute la 3D et P/Invoke à SL (en schématisant), ce qui est fait dans SL5, on a déjà l'équivalent de WPF mais en version portable Mac/PC/Téléphone. Pourquoi développer en WPF alors ? Beaucoup de produits qui devaient être développés en WPF + SL seront certainement développés uniquement en SL après la sortie de SL 5. Ce qui éloignera encore plus la perspective d'un sauvetage de WPF.
J'ai pensé un moment que le succès de SL finirait par rejaillir sur WPF, mais l'industrie n'aime pas multiplier par deux ses frais de conception de logiciel... alors avec les nouveautés de SL 4 et 5 et la possibilité de faire presque la même chose qu'en WPF, qui serait assez fou pour décider d'un double développement surtout en temps de crise ? Les niches pour WPF existeront encore, mais parler de "niches" pour un produit qui n'a pas décollé c'est comme parler de l'ombre d'un fantome... Bien peu de chose ! Et on sait que les produits qui sont devenus des ombres d'autres produits chez Microsoft, ces produits là ont disparu (VB.NET qui porte le nom de VB a été une cassure terrible sans compatibilité ascendante, comme ASP.NET a remplacé ASP, comme FoxPro a laissé la place à Access qui petit à petit laisse la sienne à SQL Server décliné en milles versions, etc). A quel moment de l'évolution de SL et de la chutte de WPF MS jugera-t-il utile de faire disparaitre WPF ? Cela reste une question ouverte... mais on s'en rapproche à grand pas.

En ce qui concerne HTML 5, que dire... C'est du HTML et aucune application sérieuse n'est aujourd'hui développée en HTML, ni sur les smartphones ni sur le Web. On a au mieux un mélange de HTML, de JavaScript, de Php ou ASP.NET.
HTML 5 ne peut en aucun cas se comparer à SL qui n'est qu'une facette d'une énorme machine à créer des applications, le Framework .NET et ses outils comme VS ou Blend, ses langages VB.NET, C#, F#...
Rien de tout cela n'existe autour de HTML 5 et je vois mal quelle société pourra un jour proposer un ensemble aussi cohérent, aussi vaste, qui puisse aussi être utilisé par les mêmes équipes de développeurs pour créer les applications de business de l'entreprise et les applis web.
HTML 5 va remplacer HTML 4 (déjà pas très suivi quand on regarde les pages web), ceux qui voient en SL uniquement un player de vidéos pourront effectivement le faire directement en HTML 5, et je dirais "bon débarras" ! Même MS m'énerve avec cette façon de toujours mettre en avant SL comme lecteur multimédia. Laissons cela à HTML 5 et Flash.
SL permet de créer des applications au vrai sens noble du terme, des applications totalement cohérentes en terme de plateforme, de langages et d'outils avec les applications créées dans l'entreprise. Des domaines où Flash est totalement absent et où HTML même 6 ou 7 ne mettront jamais les pieds.
La force de SL c'est d'être un élément de .NET, une solution solide pour les entreprises.
HTML 5 au mieux ne pourra se battre que sur le front du Web. Mais pourquoi diantre choisir HTML et JavaScript pour faire du Web alors que l'entreprise possède déjà un savoir faire .NET et que faire du SL ne réclame presque aucun effort ni investissement en formation, et permet de réutiliser le code produit pour les applications internes ?
Seules les entreprises qui n'auront aucun passé sous .NET utiliseront HTML 5, celles qui font encore du Java aujourd'hui par exemple.
Cela fait beaucoup de monde malgré tout et donc on verra certainement pas mal d'applications basées sur HTML 5 + scripting dans ces milieux là.

J'ai développé avec HTML, puis HTML+JavaScript, puis ASP.NET, puis ASP.NET+Ajax. Franchement, Silverlight a été un soulagement. HTML est lourd, JavaScript est préhistorique. Je ne vois pas l'avenir dans ces outils du passé. Ce n'est d'ailleurs pas pour rien que Adobe a fait un succès avec Flash. La preuve de l'impossibilité pour HTML d'évoluer est sous nos yeux depuis 10 ans, depuis le succès croissant de Flash ! Les gens ne sont pas fous, si Flash a eu du succès c'est bien parce qu'il simplifie la conception par rapport à ... HTML !
Et ce ne sont pas quelques balises de plus dans HTML 5 qui modifieront grandement cette vérité, j'en reste convaincu.
Bien entendu je me place dans l'idée d'applications web, pas de "pages" Web. Il est vrai que c'est un point de vue beaucoup plus exigeant et réducteur qui ne représente pas 100 % de ce qu'est le Web. Il y aura donc de la place pour des sites en HTML 5, des pages webs, avec des vidéos et plein de bandeaux de pub en Flash...

Je ne considère pas cela comme entrant dans le cadre de mon métier et cela ne me dérange donc pas. Mon métier c'est de concevoir des applications d'entreprise les plus versatiles et extensibles possibles. SL est une réponse cohérente qui s'ajoute au Framework et qui permet d'intégrer des solutions Web, extra ou intranet, à des applications autrement plus complexes que les pouet-pouet développés en Flash ou HTML sur le Web... Tous ceux qui font le même métier que moi réagiront certainement de la même façon face à HTML 5.
Ceux qui produisent du site farce-attrape bardés de pubs et de vidéos pou surfer sur des modes et qui ne sont généralement pas des informaticiens diplomés, ceux là utiliseront certainement HTML 5...

Mais ce n'est que mon avis personnel !

Jacques
Jacques
1/5/2011 10:13:53 AM

Bonjour et félicitation pour le MVP,
Personnellement, il y a une chose qui me gène avec Silverlight par rapport à WPF (à moins d'avoir raté quelque chose) : l'impossibilité d'interroger directement une base de données, il faut passer par l'intermédiaire d'un web service, de WCF, etc...
Je comprends les arguments sur la sécurité et la compacité du plugin de Silverlight, l'intérêt d'avoir une plus grande séparation du code, mais c'est vraiment une grosse restriction par rapport aux habitudes des winforms. Je me sens un peu comme un utilisateur de smartphone que l'on oblige à passer par un appstore pour télécharger quoique ce soit sur son appareil ;)
Jacques

Olivier
Olivier
1/5/2011 11:08:18 AM

@Jacques:
Ce sont effectivement les dernières "petites" différences entre SL version 4 et WPF.
Mais avec SL 5 qui pourra faire du P/Invoke, je ne vois aucune limite à l'accès à la partie cliente d'une base SQL en local... Le dernier frein aura sauté donc.
Qui plus est, Microsoft diffuse gratuitement SQL CE qui une version embarquée de SQL Server, je n'ai pas encore eu le temps d'écrire un papier là dessus, mais c'est très pratique. Une appli Web peut utiliser SQL CE au lieu d'un gros server, c'est tout en code C# visiblement et sans dépendance avec autre chose.
Il faut vérifier si cela est utilisable avec SL, et donc dès aujourd'hui ton voeu serait réalité...

Et puis la convergence je l'annonce depuis 2008 en sachant bien qu'elle prendra tout de même quelques versions de SL. 3 ou 4. Avec SL5 on y arrive.

Qu'on s'entende bien, je n'ai rien contre WPF, ce sont les développeurs et leurs patrons qui visiblement n'ont pas accrochés. WPF c'est génial. Mais parfois un produit prend la mauvaise porte d'entrée. Et quand un acteur foire son entrée sur scène, c'est souvent fatal. SL, le petit frère, lui est passé par l'entrée des artistes, celle du Web, plus "sexy" (parce que le "tout web" est à la mode) et du coup il a un plus grand capital sympathie. Ca ne serait que petite histoire et anecdote si cela n'avait pas un impact direct sur le nombre de développeurs utilisant la techno... Mais WPF les développeurs se cherchent et cherchent des produits à comparer, SL on trouve plein de choses et ce n'est pas fini. A tel point que bon nombre d'évolutions passent désormais par SL avant WPF (on se rappelera du Visual State Manager par exemple, une évolution essentielle ou même du Toolkit dont la version SL est au point et suivie alors que la version WPF est à l'arrêt depuis des mois avec des bugs ingérables...).

En disant ce que je dis, je ne joue pas le gourou ni la madame Irma, je prends juste un peu de recul et je constate les faits.

Et je m'en fiche un peu, si WPF disparait un jour, ce n'est qu'un nom marketing, WPF est au contraire vigoureux et en pleine forme, ... sous le nom de SIlverlight Smile

Pascal Cabanel
Pascal Cabanel
1/9/2011 12:39:15 AM

Bonsoir Olivier,
Avant tout je te souhaite une très bonne année et te félicite pour le titre d’MVP Silverlight.

Je te rejoins dans ton analyse sur le fait de Silverlight gagne du terrain sur WPF. Mais je ne suis pas certain qu’il puisse le remplacer sans considérablement évoluer sur le plan du déploiement.
Je m’explique,

Avec WPF tout comme WinForm, il est possible de faire des applications autonomes pouvant être installées sur le système ou encore sur un CD ou clé USB. Je sais cela peut sembler ringard de parler encore de CD mais il ne faut pas oublier que le monde ne change pas à la même vitesse que les technologies informatiques !

De devoir passer par le navigateur pour installer une application en local c'est assez moyen. Il manque donc une fonctionnalité toute simple. La possibilité de faire d’une application SL une application autonome pouvant s’installer là où on le désire sur le système et pas dans des répertoires à coucher dehors.

Il y a un élément très important qui dessert WPF c’est qu’à ce jour déployer une application implique le déploiement du Framework qui va avec. Et je suis bien placé pour le savoir, moi qui travaille pour un éditeur dont 85% des clients sont encore sous Windows XP !

Alors le top serait d’avoir la possibilité de packager des applications SL destinées au desktop ne nécessitant que l’installation du Framework SL.
Par ailleurs, P/Invoke c’est bien… c’est un plus… mais qui veux encore se taper du codage Win32 ?

Ce serait tout de même génial d’avoir la possibilité de référencer Entity Framework et d’aller taper directement dans la base. En web je comprends qu’il est nécessaire de passer par des couches de service mais pas en local.

Alors, je pense que nous allons devoir encore jouer les DJ et mixer encore quelques années entre WPF et SL.
Ce qui est déjà le bonheur absolu…
Merci pour tout ce que tu offres notamment au travers de Dot.Blog.
A très bientôt.
Pascal.

Pascal Cabanel
Pascal Cabanel
1/9/2011 12:58:03 AM

A noter toutefois une des nouveautés de SL 4.0 en matière de déploiement OOB.

http://timheuer.com/blog/archive/2010/03/25/using-sllauncher-for-silent-install-silverlight-application.aspx

Preuve que Silverlight gagne du terrain...

Olivier
Olivier
1/9/2011 9:28:47 PM

@Pascal: Bonjour Pascal (et bonne année à toi et à toute l'équipe !)
La convergence est inéluctable et se confirme de version en version. Il y a encore des points de différence, notamment le déploiement, tu as raison, mais comme ton rappel (le billet de Tim) le prouve, cela devient ténu.
D'ailleurs on rêve éveillé : on voudrait la souplesse et la puissance dans un plugin ne réclament pas l'installation du Framework. Du .NET sans le code .NET Smile
Mais finalement ce qui est fantastique c'est que SL arrive "presque" à la faire et de mieux en mieux...
SL 5 sera une grande release, mais je suis convaincu que SL 6 ou 7 seront encore plus merveilleux Smile

Sage
Sage
8/12/2011 2:53:55 PM

bonjour Oliver,
Merci pour ce post..j'aime des détailles, c'est pour cois je veut mentionne ItemsControl possibilité qui est maintenant apparu a SL..très utile pour moi.

Add comment

  Country flag


  • Comment
  • Preview
Loading