Est-ce la fin pour WPF ?
La technologie a-t-elle encore une place dans la stratégie de Microsoft ?

Le , par Pragmateek, Expert confirmé
Comme beaucoup le savent la stratégie de Microsoft pour les clients Windows a changé, mettant notamment l'accent sur le mobile, secteur dans lequel Microsoft essaye difficilement de se faire une place.
Or la plateforme de développement choisie par Microsoft pour la mise en oeuvre de cette stratégie est WinRT.

Se pose alors la question de la place de WPF (Windows Presentation Foundation) dans cette stratégie, de sa survie éventuelle et de son avenir le cas échéant. Pour rappel, WPF est une spécification graphique qui avait été lancée avec Microsoft .NET 3.0

Beaucoup de choses ont été dites et écrites sur le sujet mais le plus souvent chacun se contente d'un argumentaire tenant sur un post-it allant dans le sens qu'il souhaite : "WPF c'est top, WinRT c'est caca" pour les développeurs WPF, "WPF est mort et n'a jamais été vivant" pour les détracteurs de WPF.

Etant moi-même partie prenante WPF en tant que développeur et formateur, je suis directement concerné et préoccupé par cette question, et j'ai souhaité en avoir une vision plus complète et objective.

A cette fin j'ai compilé tous les faits importants pouvant nous en dire un peu plus sur le présent et l'avenir de WPF.

La version française de l'article est ici : Est-ce la fin de WPF: présent et futur de WPF

Je vous laisse en découvrir la teneur et partager vos propres faits et conclusions sur le fil de discussion.

Petit résumé :

  • les faits inquiétants : blog de l’équipe WPF inactif, toolkit officiel plus développé, plus de certification, pas d’intégration Windows 8, pas de support Windows RT, nouvelle stratégie de Microsoft, le Windows Store, la mobilité, les coûts de maintenance, la portabilité, le syndrome Silverlight ;
  • les faits rassurants : une équipe active, nouvelles version des outils, changements de management, inertie du marché des OS, inertie de l’ALM, maturité, niche du LOB, intégration de Windows Forms, courbe d'apprentissage, richesse de WPF ;
  • les "stratégies" à adopter pour les entreprises et les développeurs ;
  • TLDR; ce n'est pas tout noir ni tout rose, WPF a encore de beaux jours devant lui, mais il faut commencer à penser à la suite.


A vous lire.


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de youtpout978 youtpout978 - Membre expert https://www.developpez.com
le 22/09/2014 à 16:19
Tu peux développer une appli WinRT en XAML/C#, ce qui a été introduit avec WPF, le changement n'est pas si troublant que ça, en tout cas c'est moins violant que de passer de WinForms à WPF, le seul truc qui peut être troublant c'est le système de navigation.

Même si c'est la fin de WPF (je pense qu'il faudra attendre que Windows 9 soit bien installé pour ça, surtout dans les entreprises), je ne vois pas ce qui est gênant vu que tout ce que tu as appris n'est pas perdu vu la similarité avec la nouvelle plateforme niveau syntaxe, c'est pas comme si c'était une nouvelle technologie complètement différente et tu étais obliger de tout réapprendre (Asp WebForms/Asp MVC par exemple), et bon le métier de développeur est comme ça plein de renouvellement et tant mieux sinon on serait encore à coder en assembleur.
Avatar de Pragmateek Pragmateek - Expert confirmé https://www.developpez.com
le 22/09/2014 à 22:01
En effet la similarité technique est l'un des points que je liste comme étant positif et rassurant.

Mais après il y a comme d'habitude un fossé entre le discours officiel lénifiant "c'est tout pareil" et la réalité.
J'ai commencé à monter en compétence sur WinRT et c'est vrai qu'on se met vite dans le bain venant de WPF mais même sur les fonctionnalités déjà présentes il y a beaucoup de différences empêchant une migration naïve et rapide.
Je ne parle même pas de celles qui manquent et de celles qui sont ajoutées, ayant bien souvent trait à l'intégration Windows 8.

Après pour ta dernière comparaison, de ce que j'ai vu WinRT n'apporte quasiment rien fonctionnellement, la seule chose que j'ai vu de neuf sont les transitions, et c'est plutôt anecdotique comme fonctionnalité.
Et au contraire sur de nombreux points on a même régressé.
Ça rejoint les rumeurs affirmant que si WinRT est aussi limité c'est parce que par haine de .Net le management de l'équipe Windows n'a pas voulu réutiliser WPF et recréer une roue décagonale dans son coin.
Donc ça roule à peu près mais c'est encore loin de WPF, dommage. :/
WinRT 8 c'était l'alpha, WinRT 8.1 c'est déjà plus utilisable donc sans doute la bêta et WinRT 9 sera peut être la version stable...

Pour moi le point le plus positif de toute cette entropie c'est que pour nous partie prenante IT ça fait du taf, donc transfert de richesse d'autres acteurs de l'économie vers nous.
Après à chacun d'essayer d'apporter de la valeur ajoutée à ses clients/employeurs...
Avatar de DonQuiche DonQuiche - Expert confirmé https://www.developpez.com
le 22/09/2014 à 22:25
J'ai envie de dire que de toute façon il y aura toujours une techno XAML orientée desktop. Si demain WPF devait disparaître c'est que WinRT aura été adapté pour prendre le relais. De toute façon vu l'importance des applis LOB pour l'univers Windows (d'autant plus grande que les positions grand public s'effritent) il n'y a absolument aucun souci à se faire pour la comptabilité du parc existant.

Cela étant dit à terme j'espère que les deux achèveront de se rapprocher. Je préférerais de loin un runtime unifié avec éventuellement des fonctionnalités absentes sur certains supports.
Avatar de Pragmateek Pragmateek - Expert confirmé https://www.developpez.com
le 22/09/2014 à 23:55
En effet les applications LOB sont un autre point rassurant que j'évoque dans l'article.
WinRT n'est pas encore crédible sur ce marché où WPF est toujours roi.

Et WinRT c'est justement ce runtime unifié sur tous les supports Windows : x86, ARM, mobile...

Malheureusement ça manque d'ambition par rapport à Xamarin qui lui promet l'accès cross-plateforme à Windows/iOS/Android.
A mon avis il ne lui manque qu'un peu de maturité pour balayer la concurrence.
Avatar de youtpout978 youtpout978 - Membre expert https://www.developpez.com
le 23/09/2014 à 13:07
Citation Envoyé par Pragmateek  Voir le message
En effet la similarité technique est l'un des points que je liste comme étant positif et rassurant.

Mais après il y a comme d'habitude un fossé entre le discours officiel lénifiant "c'est tout pareil" et la réalité.
J'ai commencé à monter en compétence sur WinRT et c'est vrai qu'on se met vite dans le bain venant de WPF mais même sur les fonctionnalités déjà présentes il y a beaucoup de différences empêchant une migration naïve et rapide.
Je ne parle même pas de celles qui manquent et de celles qui sont ajoutées, ayant bien souvent trait à l'intégration Windows 8.

Après pour ta dernière comparaison, de ce que j'ai vu WinRT n'apporte quasiment rien fonctionnellement, la seule chose que j'ai vu de neuf sont les transitions, et c'est plutôt anecdotique comme fonctionnalité.
Et au contraire sur de nombreux points on a même régressé.
Ça rejoint les rumeurs affirmant que si WinRT est aussi limité c'est parce que par haine de .Net le management de l'équipe Windows n'a pas voulu réutiliser WPF et recréer une roue décagonale dans son coin.
Donc ça roule à peu près mais c'est encore loin de WPF, dommage. :/
WinRT 8 c'était l'alpha, WinRT 8.1 c'est déjà plus utilisable donc sans doute la bêta et WinRT 9 sera peut être la version stable...

Pour moi le point le plus positif de toute cette entropie c'est que pour nous partie prenante IT ça fait du taf, donc transfert de richesse d'autres acteurs de l'économie vers nous.
Après à chacun d'essayer d'apporter de la valeur ajoutée à ses clients/employeurs...

Oui WinRT est moins complet que WPF ( je pense qu'il est plus facile de passer de WPF à WinRT que le contraire), et je ne pense pas que la non réutilisation de WPF vient d'une quelconque haine mais plutôt d'un soucis de performance, WinRT est censé pourvoir tourner sur aussi bien des systèmes classiques à base d'X86 que sur des processeurs ARM, donc on doit se débrouiller pour que ça tourne aussi bien sur l'un que sur l'autre, surtout qu'à l'époque où ça du être développé les processeur ARM ne devait pas dépasser les 1GHz et être double coeur au max, ce qui fait de sacré contrainte technique, de plus il semble que cette version soit mieux optimisé sur les appels direct x et donc plus performante pour le même résultat.
Avatar de dfiad77pro dfiad77pro - Membre éprouvé https://www.developpez.com
le 23/09/2014 à 18:22
Citation Envoyé par youtpout978  Voir le message
Oui WinRT est moins complet que WPF ( je pense qu'il est plus facile de passer de WPF à WinRT que le contraire), et je ne pense pas que la non réutilisation de WPF vient d'une quelconque haine mais plutôt d'un soucis de performance, WinRT est censé pourvoir tourner sur aussi bien des systèmes classiques à base d'X86 que sur des processeurs ARM, donc on doit se débrouiller pour que ça tourne aussi bien sur l'un que sur l'autre, surtout qu'à l'époque où ça du être développé les processeur ARM ne devait pas dépasser les 1GHz et être double coeur au max, ce qui fait de sacré contrainte technique, de plus il semble que cette version soit mieux optimisé sur les appels direct x et donc plus performante pour le même résultat.

Pour WPF c'est surtout que les gens regardent la productivité à cours terme.
Comme ils voient que c’est plus simple de concevoir rapidement une appli en WINFORMS.
Alors ils achètent des licences infragistics ou autre pour développer rapidement et au bout d'1ans ou 2 on se rends compte qu'on perds beaucoup en maintenance et flexibilité sur l'interface graphique .

En plus les patterns genre MVVM en client lourds sont pas toujours appréciés et souvent aurevoir les test unitaires ).

Personnellement je pense que le seul moyen pour WPF d'exploser serait un portage de qualité sous Linux.Mac ( et là au revoir JavaFx).
Avatar de Nicam Nicam - Membre confirmé https://www.developpez.com
le 23/09/2014 à 18:29
Je pense que la réponse viendra le jour ou on verra des application lourdes en WinRt.
Pour le moment, c'est loin, mais alors très loin d'etre le cas.

Et on ne peut pas dire que WinRt a propulsé MS vers les sommets hein ?

Petits papiers sur un blog d'un MVP :
http://www.e-naxos.com/Blog/post/WPF...%E2%80%A6.aspx
http://www.e-naxos.com/Blog/post/WPF...e-avancee.aspx
http://www.e-naxos.com/Blog/post/WPF...usement-!.aspx
Avatar de dfiad77pro dfiad77pro - Membre éprouvé https://www.developpez.com
le 23/09/2014 à 18:32
Citation Envoyé par Nicam  Voir le message
Je pense que la réponse viendra le jour ou on verra des application lourdes en WinRt.
Pour le moment, c'est loin, mais alors très loin d'etre le cas.

Et on ne peut pas dire que WinRt a propulsé MS vers les sommets hein ?

Petits papiers sur un blog d'un MVP :
http://www.e-naxos.com/Blog/post/WPF...%E2%80%A6.aspx
http://www.e-naxos.com/Blog/post/WPF...e-avancee.aspx
http://www.e-naxos.com/Blog/post/WPF...usement-!.aspx

Oui si on assimile pas le winRT fenêtré de windows 9 a du WPF
Avatar de tomlev tomlev - Rédacteur/Modérateur https://www.developpez.com
le 23/09/2014 à 21:26
J'étais tombé sur ton article (en anglais) il y a quelques jours, et je l'avais trouvé très intéressant... je savais pas que tu étais un membre de Developpez

Même si je suis un peu frustré de l'apparente perte de vitesse de WPF, et de son abandon progressif par Microsoft, je ne suis pas vraiment inquiet, parce que je suis convaincu que le bureau aura encore longtemps sa place dans Windows ; or WPF est la techno reine pour les applis desktop. WinRT, c'est très bien pour les tablettes et les téléphones ; le fait de pouvoir faire tourner les applis WinRT en mode fenêtré les rendra certainement plus utilisables sur le bureau, mais je vois plus ça comme un "bonus" (cool, je peux continuer à jouer à Candy Crush sur mon PC ). Mais ça ne suffira pas à remplacer WPF. Pour moi le problème c'est surtout les restrictions techniques de WinRT : le fait que ça tourne dans une sandbox interdit toute interaction complexe avec le système. Il est tout bonnement impossible de faire, par exemple, un anti-virus ou un utilitaire de sauvegarde avancé en WinRT ; impossible aussi de s'intégrer avec le bureau ; on ne peut pas non plus faire une UI en WinRT pour un back-end qui tourne en tant que service local (pour contourner les limitations), car une appli WinRT ne peut pas se connecter à localhost (c'est explicitement interdit).

Et puis WPF est tellement plus riche que WinRT ! Le système de binding est plus puissant, le système de dependency properties aussi, le système de templates est plus poussé, il y a des Triggers, des custom markups extensions, etc... Et puis on a la totalité du framework .NET à disposition, alors que WinRT n'en a qu'un (petit) sous-ensemble ; certaines techniques couramment utilisées dans les applis bureau ou web sont complètement indisponibles dans WinRT, par exemple la génération dynamique de code (dynamic proxies, etc).

Peut-être que WPF finira par mourir un jour, mais certainement pas avant que WinRT comble ses manques. Il faudra donc, principalement :
  • qu'il permette une intégration plus poussée avec le bureau et le système en général (peut-être un mode non sandboxé)
  • que son framework UI soit enrichi pour être plus proche de WPF
  • mieux masquer la couche COM sous-jacente quand on utilise WinRT via la projection .NET ; je vois souvent des crash liés à des erreurs HRESULT dans un composant bas niveau, et ça ne devrait jamais arriver dans du code purement managé


Bref, WPF a encore de beaux jours devant lui à mon avis...

En ce qui concerne l'exécution sur Windows RT, ça ne me préoccupe pas vraiment ; le problème n'est pas spécifique à WPF, mais concerne toutes les applications de bureau : seules les applications WinRT, et quelques applications bureau créées et signées par Microsoft, peuvent s'exécuter sur cette plateforme. On ne peut même pas exécuter un script Powershell qui ne soit pas signé... A mon avis, Microsoft ne souhaite pas que les tablettes Windows RT deviennent de vrais PC ; je pense même que le bureau est voué à disparaitre sur ces plateformes, et que la seule raison pour laquelle il est encore là est qu'il y a encore beaucoup de choses qu'on ne peut pas faire dans l'interface Modern UI.
Avatar de Pragmateek Pragmateek - Expert confirmé https://www.developpez.com
le 23/09/2014 à 22:49
Oui WinRT est moins complet que WPF ( je pense qu'il est plus facile de passer de WPF à WinRT que le contraire), et je ne pense pas que la non réutilisation de WPF vient d'une quelconque haine mais plutôt d'un soucis de performance, WinRT est censé pourvoir tourner sur aussi bien des systèmes classiques à base d'X86 que sur des processeurs ARM, donc on doit se débrouiller pour que ça tourne aussi bien sur l'un que sur l'autre, surtout qu'à l'époque où ça du être développé les processeur ARM ne devait pas dépasser les 1GHz et être double coeur au max, ce qui fait de sacré contrainte technique, de plus il semble que cette version soit mieux optimisé sur les appels direct x et donc plus performante pour le même résultat.

Rien n'empêche de désactiver les fonctionnalités les plus "kikoo" comme la 3D (même si certains en font sans doute un usage pertinent).
Et quand tu vois la philosophie des applications Windows 8 avec le minimum de données à l'écran et de la sobriété, WPF faisait déjà tourner ça très bien sur des P4 en 2006.
Là où ça coinçait c'était quand on lui envoyait dans la gueule 10K lignes dans une DataGrid, ou 36 anims en même temps, donc le bon gros LOB des familles.

Donc oui il y a forcément de vraies raisons techniques qui expliquent certaines limitations et une réinvention partielle de la roue, mais pas l'"indigence" de la version WinRT 8 et le grand bond avec la version 8.1.
Je suis persuadé qu'une meilleure collaboration interne, dans un esprit de corps entrepreneurial, aurait permis d'aller plus vite et donc plus loin.
Mais bon ça c'est tout le problème des grosses structures, la seule dont j'ai eu connaissance où ce n'est à priori pas le cas c'est la GS. :/
Offres d'emploi IT
Ingénieur traitement d'image vision par ordinateur h/f
PARROT SA - Ile de France - Paris (75000)
Création d'un outil de référencement
Solutec - Rhône Alpes - Lyon (69000)
Développeur backend H/F
Flipr - Midi Pyrénées - Toulouse (31000)

Voir plus d'offres Voir la carte des offres IT
Contacter le responsable de la rubrique Accueil