Dot.Blog

C#, XAML, Xamarin, UWP/Android/iOS

WPF et Silverlight : composants orientés données dans les Toolkits

Trouver des ressources sur les technologies ou outils récents est toujours difficile. Par force, et c'est une Lapalissade, ce qui est plus connu est plus facile à connaître, et vice versa...

Le WPF Toolkit ainsi que Silverlight Toolkit sont des mines de composants ayant beaucoup de choses en commun : même base de code, évolutions rapides et donc releases fréquentes avec à chaque fois des ajouts d'importance. Suivre le ryhtme pourrait réclamer un job fulltime...

Voici un post de Delay's Blog qui résume les dernières ressources autour de la visualisation des données dans ces deux Toolkit : http://blogs.msdn.com/delay/archive/2009/07/19/my-new-home-page-enhanced-updated-collection-of-great-silverlight-wpf-data-visualization-resources.aspx .

Visualiser les données est essentiel à toute application de type gestion, et l'avalanche de nouveautés dans les Toolkits ciblant ce besoin permet désormais d'envisager sérieusement de créer de "vraies" application avec WPF et Silverlight. Par "vraies" j'entends des applications telles que nous en concevons tous régulièrement, et non des petits jeux ou des caroussels tournoyants qui font de magnifiques démos ou des sites Web publicitaires mais qui ne sont pas forcément des applications représentatives du travail habituel d'un développeur. Il est donc d'autant plus important de connaître ces extensions de WPF et de Silverlight et pour ce faire il faut trouver les bonnes explications...

A lire absolument donc, pour y piocher des articles, des astuces, ou de simples explications sur toute la partie affichage des données sous Silverlight ou WPF.

Avec ça, vous pouvez vous occuper jusqu'à la rentrée de septembre !

Mais Stay Tuned, car j'ai plein d'autres choses à vous dire d'ici là !

Silverlight 3 (+WPF) : Hatching Effect gratuit + Sources

Les pixel shaders de Silverlight 3 fournis "out of the box" ne sont que deux : le drop shadow et le blur. Mais comme cela était prévisible de nombreux programmeurs exercent leur talent en créant de nouveaux effets...

Forcément l'équipe Microsoft de la suite Expression est très bien placée pour ce genre d'exercice et elle nous propose via son blog un effet de crayonnage assez bien fait. Le tout avec install pour automatiquement voir l'effet dans les palettes de Blend 3 mais aussi avec le code source pour l'étudier et faire ses propres effets.

Le mieux est de vous rendre directement sur le blog de l'équipe Expression, et plus particulièrement sur le billet présentant le Hatching effect. Source et install sont téléchargeables depuis le billet.

A noter, l'effet fonctionne aussi avec WPF selon ce qui est dit mais je n'ai testé que sous Silverlight.

Stay Tuned !

Silverlight 3 : Les Pixel shaders (effets bitmap) et l'accélération GPU

L'une des grandes nouveautés de Silverlight 3 c'est le support de l'accélération graphique. L'application principale se trouve déchargée de certaines tâches qui sont routées vers le GPU de la carte graphique. Mais attention, l'accélération GPU de Silverlight 3 ne fait pas tout comme sa grande soeur sous WPF (qui utilise DirectX et toutes ses ficelles pour accélérer le traitement vidéo). On aurait pu croire que les effets bitmaps (pixel shaders) de WPF qui viennent d'être portés sous Silverlight 3 utilisent l'accélération GPU, en réalité il n'en est rien. Mais cela n'enlève rien à ces nouveaux effets parfaitement utilisables pour enrichir le visuel d'une application et dont je vais vous parler maintenant...

Quelques mots sur l'accélération GPU : Même si ce n'est pas le sujet du présent billet, il s'agit d'une nouvelle feature très intéressante de SL3. On a tendance hélas (et j'ai été le premier à me faire "avoir") à trop vite faire le parallèle avec WPF et à transposer ce que fait l'accélération sous ce dernier. En fait, le support de l'accélération GPU de SL3 est pour l'instant assez limité et ne se met en route que de façon volontaire. Elle ne s'applique pas aux effets bitmaps ni aux nouveaux Codecs vidéos qui restent traités par le CPU. Malgré tout le système d'accélération graphique peut rendre d'immense service, dans certains de mes tests sur l'animation d'images assez grandes j'ai pu voir mon PC de test passer de 88% d'utilisation CPU (double coeur Asus plutôt rapide) à moins de 4% ! Ce qui est énorme. Mais pour profiter de l'accélération il faut aboslument en connaître le fonctionnement et les limitations. Je vous invite ainsi à lire l'excellent billet de Andras Verlvart sur la question. Il est assorti d'une application exemple qui permet de bien voir l'effet des différentes possibilités d'accélération et leur impact sur le CPU et le GPU. Cet article est en anglais, pour ceux qui préfère la lecture en français, David Rousset a écrit un billet qui fait le point sur cette même question.

Les Pixel Shaders 

Par défaut Silverlight 3 est fourni avec deux effets : le blur (flou) et le drop shadow (ombre portée). Mais on trouve sur CodePlex un très beau projet offrant toute une série de nouveaux effets comme le swirl ou l'emboss (WPF Effects Library pour WPF et Silverlight). Grâce au SDK Directx et au langage HSL il possible de développer ses propres effets.

L'exemple ci-dessous illustre mon propos : la fenêtre principale est décorée d'une magnifique photo d'éclair (copyrigthée par moi-même) sur laquelle un flou peut être appliqué grâce à un slider se trouvant dans une petite fenêtre semi transparente sur laquelle est appliqué un drop-shadow.

Vous remarquerez que la petite fenêtre en question peut être déplacée par drag-drop grâce à une autre nouveauté de Silverlight 3 : les behaviors (comportements), sorte de petits bouts de code compilés qu'on peut "jeter" sur n'importe quel contrôle pour lui offrir le dit comportement, ici un déplacement par drag-drop. Le tout sans une ligne de C#. Le slider a été templaté "à l'arrache" mais il a été templaté tout de même :-). Autre nouveauté de Silverlight 3 qui est ici démontrée : le databinding entre éléments d'interface, ainsi le texte indiquant la quantité de flou appliquée est directement lié à la propriété Value du Slider. Pour formater cette valeur un convertisseur a été ajouté.

Bref, une petite application vite fait pour montrer les Pixel Shaders, mais pas seulement...

Le mieux étant maintenant de jouer avec et de télécharger le projet (VS2008 + SL3 toolkit ou Blend 3 de préférence) : PixelShader.zip (168,29 kb)

[silverlight:source=/SLSamples/PixelShader/PixelShader.xap;width=550;height=480]

Et Stay Tuned !

nota: cet article du 28 juillet 2009 a été mis à jour le  3 août à propos de l'accélération GPU.

Silverlight 3 Releasé !

Ca y est, Silverlight 3 est releasé ! Avec Blend 3 RC (la finale dans 1 mois) et son nouveau système Sketchflow et des tonnes de nouveautés.

Silverlight 3 est une release d'importance qui pousse un cran plus loin encore le niveau des performances et de services rendus. On trouve parmi les nouveautés (sans ordre de préférence et avec des oublis) :

  • La vidéo HD avec accélérateur GPU d'une fluidité à couper le souffle ! Surtout cela permet de libérer le CPU et de tirer parti de la puissance de la carte graphique, donc d'avoir une qualité plus grande sur des PC moins puissants. Bien entendu, sur les plus puissants le gain est nettement visible aussi. De nouveaux Codec viennent s'ajouter avec le support H.264, l'audio AAC et le MPEG-4. Une API permet de créer de nouveaux Codec dans tout langage .NET ! Microsoft propose dans le même temps IIS Media Service, une application de streaming gratuite à installer sous IIS pour offrir un service de diffusion fluide et efficace.
  • L'accélération vidéo via le matériel (GPU) profite aussi et bien entendu à tous les logiciels développés en Silverlight pour une plus grande fluidité graphique. Ce qui permet au passage d'ajouter à Silverlight 3 le support des effets bitmap tant attendus comme le drop shadow ou le blur. Une interface ouverte permettant de créer soi-même de nouveaux effets.
  • De Nouveaux composants arrivent aussi. Avec Silverlight 3 et son SDK ce sont plus de 100 contrôles qui sont livrés pour concevoir des applications innovantes et fonctionnelles. L'accès aux données est largement amélioré avec la présence de la DataForm qui complète la DataGrid en fournissant une vision fiche de saisie plus orientée business.
  • Silverlight 3 améliore aussi la navigation en permettant l'exploitation des touches avance/recul du navigateur. La nouvelle fonction des bookmarks internes permet aussi de créer des liens mémorisables par les navigateurs qui peuvent alors plonger à l'intérieur d'une application Sliverlight.
  • Les styles deviennent héritables, on retrouve ainsi tout l'intérêt du cascading de CSS appliqué non pas à quelques styles HTML mais à des graphiques, des templates et des animations !
  • Les applications Silverlight peuvent désormais vivre en dehors du navigateur et être installées "sans installation" dans les menus de Windows. Les applications sont exécutables directement sans même plus avoir conscience qu'il s'agit, au départ, d'une application internet. Le tout en un clic...
  • En matière de communication la partie WCF est aussi améliorée avec une meilleure propagation des erreurs, la possibilité d'utiliser du XML binaire, c'est à dire compressé pour diminuer la taille des paquets échangés entre l'application et le serveur WCF.
  • Les Services .NET RIA permettent d'écrire du code de validation plus efficacement agissant à la fois sur la couche de présentation et celle du code métier, le tout sans avoir besoin de réécrire les mêmes régles dans plusieurs codes différents.
  • Visual Studio 2010 supportera bien entendu toutes les nouveautés mais il est déjà possible de bénéficier de tous les avantages cités depuis VS 2008.
  • Blend 3, évoqué en introduction est fourni en RC avant sa sortie officielle dans 1 mois. On y trouve de très nombreuses améliorations sur lesquelles je reviendrai prochainement dont le Sketchflow qui méritera à lui seul tout un article tellement le concept est génial pour faciliter le maquettage tant sous Silverlight que WPF.
  • Blend 3 introduit aussi des notions nouvelles comme les comportements (behaviors), sortes d'automates logiciels qu'on peut poser par drag-and-drop sur tout contrôle ou graphique pour lui permettre d'agir sans aucune programmation en code behind. Par exemple il existe un comportement de changement de propriété : déposez-le sur un cercle, et vous pourrez régler quel événement sera la source (le mouse enter par exemple), et quel autre objet sera la cible (couple objet / propriété). Fixer la nouvelle valeur (par exemple changer la couleur d'un autre contrôle). Le tout peut se faire immédiatement ou avec une timelime automatique pour un effet visuel plus "smooth" (on entre la durée voulue) !
  • Silverlight 3 supporte la 3D perspective, c'est à dire qu'on n'est pas encore arrivé au niveau de WPF qui sait manipuler des scènes 3D (objets 3D, lumières, caméras...) mais qu'il est possible de donner un effet de perspective à tout objet en application des rotations sur les 3 axes de l'espace. Cela ouvre de nouvelles ... perspectives pour créer par exemple des effets de transition novateurs sans une ligne de code.
  • Que dire aussi des Ease-in/out complexes qui permettent facilement de changer une animation un peu trop rigide en quelque chose de plus "organique", comme l'impression de rebond ou celle du comportement d'un elastique...
  • Blend 3 supporte aussi Intellisense dans le code XAML ce qui manquait cruellement.
  • Il permet aussi d'importer des graphiques PhotoShop ou Illustrator en conservant les layers, avec sélection des parties à importer.
  • Le templating inversé est aussi une nouveauté fantastique : vous partez d'un dessin fait par le graphiste et vous expliquez à Blend qu'il va devenir un bouton, un slider.. et Blend vous guide pour indiquer quel bout du dessin joue le rôle de piste, de curseur, etc. Réellement bluffant !
  • Les données manquent souvent lors de la conception d'un écran, et il est parfois difficile de templater une listbox ou une grille sans voir des exemples réalistes de contenu (un nom, une adresse mail, un numéro de téléphone etc). Blend 3 propose un mini générateur de données aléatoire typées (dans l'esprit de DataGen, le générateur de données que j'ai conçu, mais la fonction de Blend est de loin moins puissante). En tout cas cela permet d'immédiatement disposer de données assez réalistes pour mettre au point les écrans. On peut aussi charger des données de test depuis un fichier XML externe (généré par DataGen par exemple ? !).
  • Blend supporte l'intégration des projets au système de versionning. Cette évolution tombe sous le sens puisque Blend et VS sont conçus pour travailler de concert sur les mêmes projets et que dans ce cadre les deux produits doivent pouvoir gérer les changements dans un repository centralisé. Cette option s'entend pour le travail en équipe principalement.
  • Media Encoder 3 est lui aussi releasé dans la même vague, avec Design 3. Encoder permet de supporter les nouveaux modes videos de streaming HD de Silverlight 3.

Bref, je m'arrête là, c'est une moisson extraordinaire. Des outils de plus en plus puissants, de plus en plus agréables à utiliser, une gamme cohérente.

J'ai forcément oublié plein de choses, mais j'aurai forcément l'occasion de revenir sur toutes ces nouveautés dans des papiers à venir.

Entre temps, vous pouvez télécharger tout le nécessaire en vous rendant sur http://www.silverlight.net/ (téléchargements, tutors...), http://expression.microsoft.com/en-us/default.aspx (le site de la communauté Expression), ou encore http://www.microsoft.com/silverlight (le site de base de Silverligth avec des démos des nouveautés de la V3)

Amusez-vous bien !

Et Stay tuned, car des nouveaux papiers, il va forcément y en avoir d'ici quelques temps !

 

 

Les propriétés de dépendance et les propriétés jointes sous WPF (article à télécharger)

En voilà un beau sujet ! Vous allez me dire qui irait investir deux jours à taper 25 pages sur ce sujet, il faut être totalement givré ! Et bien vous en avez un devant vous (par blog interposé) ... donc pas de remarques désobligeantes sur ma santé mentale, hein !

Certes les propriétés de dépendance et les propriétés jointes de WPF et Silverlight ne semblent pas être un sujet aussi exitant que quelques astuces LINQ ou la meilleure façon d'intégrer de la 3D dans Silverlight 3 (miam!)... Je vous le concède. Mais en revanche c'est un sujet capital car derrière ces propriétés bien particulières se cache l'un des piliers de la puissance de WPF, un mécanisme qui autorise la gestion des styles, des animations, du Data Binding et de bien d'autres choses sans lesquelles WPF ne serait pas ce qu'il est.

Savoir ce qu'est une propriété de dépendance ou une propriété jointe, savoir en déclarer et savoir les utiliser représente une base impossible à zapper.

Alors, pour tout savoir sur le sujet, téléchargez mon dernier article "Propriétés de dépendance et propriétés jointes (WPF/Silverlight)" !

L'article est fourni en PDF avec les sources du projet exemple (utilisable sous VS 2008 ou Blend 2).

NB: Pour mieux comprendre cet article si vous n'êtes pas encore un expert de WPF, je vous conseille la lecture de mon précédent article "10 bonnes raisons de préférer WPF".

Bonne lecture,

... Et Stay Tuned !

Prism v2 (guidance and patterns for WPF and Silverlight)

Construire des applications modulaires offre de nombreux avantages : maintenabilité et évolutivité sont les premières qui viennent à l'esprit mais il en existe d'autres comme la meilleure séparation des tâches (travail parallèle d'équipes de développement sur des modules différents) par exemple.

Créer une architecture assurant la modularité d'une application n'est pas chose aisée. Bricoler "sa" solution dans "son" coin donne l'impression de gagner du temps (pas besoin d'apprendre un framework existant) mais montre souvent ses limites et ce, au pire moment, c'est à dire trop tard...

Microsoft ne fait pas que du soft pour micro... Depuis l'avènement de .NET il faut saluer les efforts importants qui sont fournis par MS pour fournir aussi de la matière grise. Labos de recherche, groupes de travail très indépendants, cette nouvelle orientation du management des équipes à permis l'éclosion d'un tas de bonnes idées. Tout ce travail est gracieusement délivré aux communautés de développeurs qui se donnent la peine de s'y intéresser...

Qui plus est, il ne s'agit pas d'élucubrations fumeuses. Les guides de bonnes pratiques, les conseils méthodologiques sont malgré tout le fruit d'un énorme travail collaboratif "au sommet" avec aux commandes des gens comme JD Meier, qui ne sont pas petites pointures !

Pour en revenir aux applications modulaires, il est essentiel de prendre connaissance de la V2 de PRISM, un recueil de codes, de documentations et de bonnes pratiques d'une qualité exceptionnelle.

Prism V2 c'est :

  • Une librairie pour la création d'applications composites
  • Une application de référence comme modèle d'implémentation (gestion de porte feuille boursier)
  • 9 "quick start" pour entrer dans le vif du sujet rapidement
  • 26 "how-to's" pour se former efficacement
  • Une documentation à la fois claire et riche

Prism supporte les applications WPF et Silverlight dans une même logique permettant de partager encore plus de code entre les deux types d'application.

Bref, je vous invite à vous pencher très sérieusement sur Prism si vous ne connaissez pas, pour tout projet d'une certaine envergure cela vous fera gagner beaucoup de temps, de productivité et le tout dans un cadre validé ne risquant pas de vous envoyer au mur.

Télécharger les éléments de Prism v2

Le site de Prism sur CodePlex

Bonne lecture !

Les guides de bonnes pratiques

Silverlight enfin sur Linux ! (Moonlight 1.0)

Silverlight avance à pas tranquille pour conquérir le monde... Les bruits que fait courrir Adobe sur la "stagnation" du projet ne sont que la preuve éclatante que la peur a changé de camp ! A défaut de mettre en face de Silverlight un Flash ou un Flex aussi performant, ils en sont réduits, les pauvres, à faire de l'intox.

Comme je suis triste pour eux, avoir été les grand manitou du plugin RIA pendant si longtemps et avoir végété en ne sachant pas voir qu'un vrai environnement de RIA ce n'est pas seulement des animations ou du graphismes mais c'est surtout et peut-être avant tout un framework de développement solide. Grave erreur ! Et là, sûrs de leur "avance", ils ont pour le moins négligé cet aspect essentiel.

Silverlight arrive avec tous les atouts d'un excellent plugin pour faire du RIA, mais il ne vient pas les mains dans les poches juste avec quelques timelines à se mettre sous la dent, non, Silverlight arrive avec derrière lui une bande copains musclés : tout le Framework .NET !
Je comprends que Adobe se fasse du souci. Autant sur le plan graphique ils pouvaient lutter, autant là ils sont débordés sur l'aile la moins protégée : le langage et le Framework. Jamais Adobe ne sera en mesure d'offrir un Framework à la hauteur de .NET. C'est une évidence. Alors qu'on sait que MS sera toujours en mesure d'égaler, voire de dépasser, Adobe sur l'aspect graphique (c'est une question de moyen, d'engager les bonnes personnes et MS sait faire). Silverlight 3 qui viendra cette année ajoutera l'accélération matériel video et la 3D, et ce n'est pas fini. La preuve est donc là. A quand un Framework comme .NET côté Adobe ? Sur ce plan ils ont perdu la bataille avant même qu'elle ne commence vraiment...

Tout ça pour vous dire que Silverlight continue sa progression. Et si la version 3.0 que j'évoque plus haut apportera encore plus de richesse, tant sur PC que sur Mac, il ne faudrait pas oublier l'équipe MONO qui fait un travail ahurissant !

Franchement moi ils me bluffent les gars de MONO. Ils ont du retard sur ce que livre MS, normal, mais leur retard n'est pas si grand que ça ! Il est certes plus facile d'imiter que de créer, mais malgré tout le travail qu'ils fournissent est fantastique !

Ainsi la version 1 de MOOLIGHT est disponible pour toutes les grandes distribs : OpenSuse 11, Fedora Core 9, Suse...

Cette release est au niveau de Silverlight 1.0. Quant à Moolight 2.0, elle est prévue en alpha pour 18 mars, en bêta pour la mi mai et en finale pour septembre (voir la roadmap Moonlight).

Lien : télécharger le plugin Moonlight (Linux)

Bien entendu, Moonlight est et sera compatible avec les applications Silverlight !

Du vrai développement cross-plateforme, PC, Mac et Linux, programmable avec un vrai langage et un vrai Framework, cela fait bien 20 ou 30 ans qu'on l'espère en informatique. Aujourd'hui ce rêve se réalise. Moi qui suis malgré tout un ancien dans cette profession où tout ce qui a plus de 6 mois est "vieux" (snif!) et qui ai connu la lente évolution de notre métier depuis les premiers ordinateurs 8 bits à aujourd'hui, franchement j'en verserais une larme ! :-) Les plus jeunes ne mesureront peut-être pas l'importance de cette release 1.0 de Moonlight, pourtant, sa porté est immense, le symbole qu'elle porte c'est celui de l'unification des moyens de développement sans distinction de plateforme technique. Une révolution.

(Frrrrrrrrtttt ! merci pour le kleenex.)

Et Stay Tuned !

 

Un exemple d'application Silverlight "bien de chez nous" !

Le nombre des applications Silverlight augmente de jour en jour mais il est vrai que les exemples de réalisation en français ne sont pas encore légion. J'ai donc décidé de mettre en ligne une petite application de démonstration !

Comme c'est avec les vieux pots, parait-il, qu'on fait les meilleurs soupes, je pense que celle-ci va être délicieuse ! En effet, je suis reparti de l'idée d'un ancien exemple réalisé à cette époque lointaine sous Delphi Win32, un Web Service des codes postaux français qui avait eu un très grand succès (Microsoft l'avait d'ailleurs utilisé pour des Techdays afin de montrer la compatibilité entre un Web Service Delphi et le framework .NET qui venait tout juste d'émerger...).

Il était donc finalement naturel de reprendre cette bonne idée mais en la modernisant radicalement. C'est ainsi que j'ai le plaisir de vous annoncer que la démonstration "Les Codes Postaux Français" est ligne aujourd'hui. Bien entendu il ne s'agit plus seulement d'un Web Service (aujourd'hui réalisé avec WCF), mais aussi d'un frontal réalisé avec Silverlight 2.

Pour jouer avec l'application suivant ce lien : les Codes Postaux Français sous Silverlight.

Vous pouvez aussi consulter ce petit PDF de présentation (dont le texte se retrouve dans la about box de l'application): Codes Postaux Français.pdf (482,07 kb)

Amusez-vous bien !

[EDIT] Le titre de ce billet doit s'entendre dans le sens "enfin une démo en français sur un thème français" ce qui était rarissime au moment de l'écriture de celui-ci, et certainement pas comme une quelconque exaltation de sentiments nationalistes ou franchouillards. Personne ne me l'a dit, mais c'est moi qui, en ce jour de janvier 2010, en relisant le post hors de son contexte me fait la réflexion à moi-même... Citoyen du monde plus que français, ayant en horreur le nationalisme et les débats sur l'identité nationale, qui ne signifie rien en tant que terrien, je tenais à apporter cette petite précision pour lever toute forme d'ambiguité ! [/EDIT]

9 raisons de plus d'utiliser WPF !

Dans mon dernier article paru en décembre, 10 bonnes raisons de choisir WPF (téléchargement ici), je vous proposais sous la forme d'une introduction à WPF ce qui me semblait de bonnes raisons de choisir cet environnement pour vos nouvelles applications. Dario Airoldi de Microsoft Italie nous propose aujourd'hui ses 9 raisons de préférer WPF et ce ne sont pas forcément les mêmes que les miennes, ce qui allonge significativement la liste et vaut un petit détour.

Je ne vais ni traduire cet article (suivez le lien juste au-dessus) ni réviser le mien en ajoutant ces nouvelles raisons, mais voici un résumé des raisons de Dario, elles sont intéressantes :

Raison 1

L'analyste fonctionnel et le graphiste peuvent définir l'interface d'un logiciel par le biais d'un langage commun, XAML, et non plus par des bitmaps et des documents écrits que le développeur devait traduire en code. Avec WPF, développeur et designer peuvent travailler sur une base commune et des documents directement utilisables par les uns et les autres sans "traduction", ce qui diminue grandement les risques de confusion.
[OD]WPF n'impose pas systématiquement le travail d'un graphiste, mais pour obtenir une interface de grande qualité graphique une telle présence s'avère indispensable. Il ne s'agit donc pas d'une obligation de WPF mais bien d'une exigence de qualité de l'expérience utilisateur. Vous avez le droit de faire des choses très laides de type Win32 en WPF si cela vous chante ou vous passer d'un infographiste si vous êtes aussi doué au pinceau qu'en C# ![/OD]

Raison 2

La quantité de code C# ou VB est grandement réduite grâce à WPF. Toute l'interface est gérée soit par du XAML soit par du Data Binding.

Raison 3

La séparation entre l'interface utilisateur et la logique métier est nette et franche.

Raison 4

Le système de routage des commandes de WPF permet de découpler l'implémentation d'une action de l'objet émettant la commande.
[OD] Je n'ai pas développé cet aspect de WPF dans mon article, c'est un tort ! [OD]

Raison 5

Le chargement dynamique de code XAML rend possible l'adaptation à la volée de l'interface utilisateur, par exemple selon le rôle de l'utilisateur, son groupe de travail, son profil...

Raison 6

Les validations côté client et côté serveur sont largement simplifiées par l'architecture de validation du Data Binding et par le système de routage des événements.

Raison 7

Les applications WPF sont plus faciles à maintenir et plus flexibles.
[OD] Cela découle en partie des raisons précédentes et de la nature même de WPF et des outils qui gravitent autour comme Expression Blend par exemple.[/OD]

Raison 8

Le templating des contrôles et les styles permettent de créer des interfaces sophistiquées tout en restant humainement maintenables.
[OD] WPF a été créé en intégrant le graphisme, le multimédia, les animations, la 3D, etc... Avec WPF on personnalise l'interface à l'extrême si besoin tout en utilisant des composants standard et sans nécessité d'acquérir des bibliothèques tierces, impossibles à maintenir, chères et incompatibles entres elles. [/OD]

Raison 9

WPF fonctionne sur la base d'un système de coordonnées déconnecté de la résolution des écrans ce qui rend l'adaptation au matériel bien plus simple.
[OD] Il fut un temps où tout le monde fonctionnait avec "la" norme de l'instant, comme VGA par exemple. Aujourd'hui l'utilisateur a un choix énorme d'écrans aux proportions, tailles et résolutions différentes, sans parler des unités mobiles et autres smartphones ! WPF apporte une solution simple à ce problème. [/OD]

Conclusion

WPF facilite le développement d'applications plus sophistiquées et plus ergonomiques en écrivant moins de code.
[OD] Tout cela est vrai. Mais n'oublions pas que WPF impose aussi une solide formation car la façon de travailler sous cet environnement est très différente de ce qu'on connaissait. Nier cet aspect des choses ne serait pas honnête et c'est ce qui explique que beaucoup de développeurs n'ont pas encore sauté le pas. [/OD]

Pour les détails de l'exposé (sans mes commentaires) je vous conseille la lecture du billet original.

Encore une fois bonne année à tous... et Stay Tuned !

10 bonnes raisons de choisir WPF (nouvel article à télécharger)

WPF cet inconnu... Alors que cette technologie est disponible depuis deux ans elle semble peiner à s'imposer parmi les développeurs. Je me suis demandé pourquoi et je crois que WPF paye un peu son image du "tout graphique hyper looké de la mort", des démos où l'on voit des vidéos danser en l'air sous forme de carrousel, de pages qui se plient comme un livre pour passer d'une fiche à l'autre et autres débauches d'effets spéciaux.

En réalité le développeur "moyen" ne s'y retrouve pas. L'image renvoyée ressemble plus à celle du jeu vidéo qu'à de l'informatique de gestion qui fait le gros des applications "de tous les jours".

Je ne blâme pas ceux qui, par trop enthousiastes, ont pêché par excès en créant et en montrant de telles démonstrations. Après tout lorsqu'une nouvelle technologie vient de sortir on a par force envie de faire voir ce qu'elle sait faire de mieux, c'est naturel. Non, je pense plutôt que c'est sur le plan psychologique que l'erreur a été commise, la même que pour Vista d'ailleurs. Un décalage trop fort, trop rapide, avec une devanture trop graphique qui a fait oublier que derrière tout cela il y a une vraie révolution technique, de vraies avancées.

J'ai donc eu envie d'écrire un article qui montre les grands points forts de WPF et surtout pourquoi cette technologie est de loin supérieure à toutes les autres, dont les Windows Forms encore trop utilisées alors qu'elles se fondent sur des mécanismes interactifs dépassés déjà en place du temps de Delphi 1 Win32 ! Il y a presque 15 ans...

Choisir 10 bonnes raisons d'utiliser WPF a quelque chose d'arbitaire. Mais ce n'est pas grave, cet article se destine à tous ceux qui ne savent pas encore que WPF est parfaitement taillé pour faire des applications "normales", à tous ceux qui pensent que ce n'est "pas fait pour eux" ou pour le style de programme qu'ils écrivent. Il s'adresse aussi à tous ceux qui ont envie de savoir quels sont les points forts de WPF, les nouveaux mécanismes et la nouvelle façon de penser les interfaces.

En un peu plus de 40 pages, ce qui est beaucoup pour un simple article, inutile d'attendre un tour d'horizon complet et ultra technique de WPF, le moindre livre sur la question compte 20 fois plus de pages... Mais si vous voulez rapidement faire un point sérieux sur WPF qui ne soit pas qu'un simple survol, si vous voulez voir du code mais trop, alors cet article est fait pour vous.

Pour le téléchargement (PDF + code source), suivez le lien : 10 bonnes raisons de choisir WPF.

A lire aussi un billet plus récent "9 raisons de plus de choisir WPF"

A voir : Une application exemple sous Silverlight 2.0 

Bonne lecture

Et Stay Tuned !