Dot.Blog

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

WPF : Plus vivant que jamais !

WPF est une technologie absolument incroyable, son invention la plus géniale étant XAML. C’est une technologie fiable, stable, riche de plus de 6000 projets sur GitHub. Mieux, c’est une technologie à jour qui inspire de nouveaux projets pour des UI toujours plus actuelles…

Je suis ton père !

De Silverlight, éphémère sur PC mais encore présent sous Windows Phone 8, à Universal Windows Platform en passant par WinRT, WPF peut sans conteste asséner la célèbre réplique culte “Je suis ton père !” dont préciser la référence serait d’ailleurs une insulte à la culture SF la plus basique.

Créé comme moteur graphique des applications de Vista, Avalon qui deviendra WPF, propose un langage de création d’UI qui dépasse de très loin tout ce qui peut se faire, tout OS confondu même aujourd’hui et certainement demain. Son invention géniale est XAML. La puissance de XAML a permis le développement d’un esprit nouveau, celui des applications “lookées”.

Ni Apple ni Google n’auront été capables d’un tel élan créateur. Rappelons juste que iOS comme Android sont sortis en 2008 soit deux ans après WPF et que lorsqu’on regarde l’aspect visuel hideux de ces deux produits dans leur version 1 ont peut réellement évaluer leur retard technologique congénital. Le succès auprès du public ne changeant rien à cette vérité, tout comme Xerox fut le créateur des fenêtres et de la souris bien avant Windows de Microsoft ou Lisa de Apple.

Père d’une lignée prestigieuse WPF ne reste pas moins le pilier central de XAML, là où ce langage est le plus finement développé, le plus puissant. WPF est LA référence pour XAML.

WPF 4.6.1 qui a été releasé en fin d’année 2015 montre à quel point Microsoft tient à cette technologie qui est actualisée pour tirer parti des OS les plus récents. Les errances de l’ère Sinofsky qui voulait la peau de XAML est heureusement révolue. Le faux génie a retrouvé l’anonymat qu’il mérite mais WPF est toujours debout !

Je vous invite à consulter le blog de l’équipe WPF ou ce billet d’Infragistics pour plus de précision sur la version 4.6.1 et sur l’avenir de WPF dont “WPF Local” qui sera un grand pas en avant.

Si je vous parle d’innovation, d’actualisation et de puissance de XAML c’est parce que je veux vous présenter quelques projets open source qui tirent profit de cette souplesse pour vous aider à créer des logiciels eux aussi conforment à l’attente des utilisateurs.

Material Design

Depuis l’affreuse version 1 Android a su évoluer au moins visuellement. Même si langage et plateforme sont toujours aussi moches, les guidelines graphiques dénommées “material design” sont assez pertinentes. Là encore pas de quoi casser trois pates à un canard puisque tout cela ressemble farouchement au look “flat” introduit par Windows Phone et son célèbre look “Metro” sous XAML quelques années auparavant.

Mais soyons bon prince, visuellement c’est assez réussi et bien plus joli qu’iOS.

Du coup pourquoi ne pas réutiliser sous WPF cet look dont il a été finalement là aussi le père au moins spirituel ? !

C’est ce que propose la librairie “Material Design in XAML Toolkit”.

Disponible sous la forme de package Nuget, ce toolkit est open source sur GitHub (https://github.com/ButchersBoy/MaterialDesignInXamlToolkit).

Dragablz

Cette librairie se spécialise dans la gestion des fenêtres dockables, de la simulation de MDI tout comme la gestion de tabs. Totalement compatible avec les autres librairies présentées aujourd’hui il s’agit aussi d’un projet open source sur GitHub (https://github.com/ButchersBoy/Dragablz).

Alt text

Mahapps.Metro

Le père et le fils unis dans un même (saint) esprit, ,n’est-ce pas là la définition du Dieu chrétiens ? C’est aussi celle de Mahapps.Metro !

En effet WPF tire ici profit du look Metro de Silverlight pour Windows Phone 7 dont le côté flat a séduit tout le monde pour s’imposer même chez les concurrents.

Toolkit intelligemment réalisé et assez riche, Mahapps peut être mixé avec Dragablz et même Material Design Toolkit pour créer des UI très sophistiquées et très contemporaines.

Mahapps c’est plus de 300.000 téléchargements sur Nuget tout de même ! Une référence qui devient incontournable et dont j’ai déjà parlé ici il y a longtemps.

Open source sur GitHub (https://github.com/MahApps/MahApps.Metro) ce toolkit fera probablement partie de ceux que vous utiliserez dans vos prochains développements tout comme l’ont fait de nombreuses applications existantes (Espera, Simple Music Player , myEcho, Papercut, Carnac, Markdown Edit, ChocolateyGUI…)

before

Universal WPF

WPF est le père, le dieu des environnements, et il est même universel (qui est le sens du mot “catholique”, pour comprendre la subtilité de cette introduction !).

WPF est l’environnement aux milles visages. Pouvant apparaitre sous le masque de Material Design, celui de Metro, celui que vous inventerez ou bien entendu sous l’aspect des applications UWP de Windows 10.

Pour atteindre cet objectif graphique il est plus aisé de disposer de contrôles mimant ceux de UWP.

C’est ce que propose ce toolkit notamment au travers d’une reproduction du RelativePanel qui est à la base de l’Adaptive Design sous UWP (déjà présenté sous différent aspects ici il y a un moment).

C’est aussi un projet open source sur GitHub (https://github.com/dotMorten/UniversalWPF).

Conclusion

WPF est une technologie vivante et actualisée qui dispose d’un écosystème tout aussi actif.

La puissance et la versatilité de XAML permettent au développeur de produire des UI de grande qualité suivant les modes graphiques de l’instant tout comme les standards d’UX de plus en plus exigeants.

Faut-il développer sous WPF ou sous UWP ?

La question mérite d’être posée mais en réalité la réponse est évidente : si vous visez la portabilité cross-form-factor de Windows 10 (PC, tablettes, phones,XBox …) c’est UWP qui s’impose, si vos applications sont destinées au PC c’est WPF qui gagne le match par la puissance et la liberté qu’il offre.

Il n’y a donc pas de concurrence entre ces deux plateformes, juste un choix à faire selon le marché et les utilisateurs que l’on cible mais aussi en fonction des impératifs techniques (certaines applications ne pouvant se contenter du mode sandboxé de UWP ni des concessions faites à la portabilité par cette plateforme).

Bon développement,

Stay Tuned !

blog comments powered by Disqus