Developpez.com - Rubrique .NET

Le Club des Développeurs et IT Pro

Les prochaines étapes du processus visant à rendre WPF entièrement open source se précisent :

On y est presque

Le 2020-02-13 09:22:34, par Christian Olivier, Expert éminent sénior
En décembre 2018, après avoir annoncé que .NET Core 3.0 va prendre en charge le développement d’applications de bureau, Microsoft a marqué sa volonté de s’impliquer davantage dans l’univers de l’open source et d’ouvrir .NET Core en rendant ses frameworks de GUI WPF, Windows Forms et WinUI open source. Selon Microsoft, cette initiative devait permettre d’assurer plus de transparence entre l’équipe produit et la communauté et favoriser plus d’engagements de la part de la communauté.

Windows Presentation Foundation (WPF) est la spécification graphique de Microsoft .NET 3.0, une sorte de framework de GUI utilisé avec le .NET Framework. Il intègre le langage descriptif XAML qui permet de l’utiliser d’une manière proche d’une page HTML pour les développeurs. WPF ne sert pas uniquement à afficher l’interface graphique de logiciels de traitement de texte, de jeux ou autres, il fournit également un environnement d’exécution évolué pour la création d’applications Web. Cette interface graphique se présente sous la forme d’un programme d’installation indépendant ou d’une applet Silverlight (un fichier – pour XBAPs XAML Browser Applications – qui s’exécute sur la CLR de Silverlight).

WPF peut être vu comme une surcouche logicielle de DirectX utilisée pour la fabrication d’interfaces utilisateurs en dehors d’applications ludiques. Il peut remplacer Windows Forms (USER et GDI) et est entièrement vectoriel (2D et 3D), pour le dessin comme pour le texte. Il supporte aussi l’affichage de nombreux formats d’images ou vidéo (MPEG, AVI, et bien sûr WMV de Microsoft) et l’intégration de diverses autres fonctionnalités multimédias. Tous ces éléments font de WPF une plateforme unifiée dédiée à la création d’interfaces riches pour les applications de bureau et pouvant être utilisée pour le développement à la fois des applications locales et des applications Web (à travers Silverlight).

Même si Micorsoft a annoncé l’open sourcing de WPF en décembre 2018, cette procédure n’était pas encore achevée parce que certains éléments du runtime de WPF étaient encore verrouillés. L’équipe en charge du développement de WPF/dotnet chez l’éditeur de Windows a récemment confirmé que WPF est désormais entièrement open source, après la fin du traitement des deux composants natifs du runtime de WPF (wpfgfx_cor3.dll et penimc_cor3.dll) qui manquaient encore à l’appel. D’après les ingénieurs de Microsoft, cette ultime étape a également permis de compléter le portage de WPF sur .NET Core – le « ;reboot ;» complet, entièrement open source et multiplateforme de l’environnement .NET distribué via NuGet.


Les développeurs ont cependant précisé que PresentationNative_cor3.dll et bilinearspan.lib, une petite bibliothèque utilisée par wpfgfx_cor3.dll, contiennent encore du contenu propriétaire et ne sont pas open source. « ;Ces éléments ont toutefois fait l’objet d’un travail préparatoire approfondi afin notamment de les assainir en supprimant, par exemple, le contenu qui ne convient pas à l’open-sourcing ;», ont-ils déclaré. L’équipe en charge du développement de WPF/dotNET a en outre évoqué l’arrivée de nouvelles améliorations dans la prochaine mise à jour de .NET Core 3.1 qui est attendue au courant de ce mois.

Source : Microsoft

Et vous ?

Que pensez-vous de cette annonce ?
Utilisez-vous encore WPF ? Quel est votre avis sur ce framework ?

Voir aussi

.NET Core 3.1 est disponible, il s'agit d'une version prise en charge à long terme (LTS) qui apporte des corrections et des améliorations à .NET Core 3.0
Microsoft annonce que .Net Core 3.0 met un terme au projet de portage de l'API .Net Framework sur la plateforme de développement open source et multiplateforme
  Discussion forum
17 commentaires
  • CS FS
    Membre averti
    Envoyé par Christian Olivier

    Utilisez-vous encore WFP ? Quel est votre avis sur ce framework ?
    Mon avis n'est pas objectif, c'est mon outils de travail depuis plus de 10 ans maintenant (et je l'aime toujours autant).
    Si demain WPF peut être porté sur autre chose que du Windows ça fera de moi un développeur heureux (et des clients sous Mac heureux, car aujourd'hui le seul moyen qu'ils ont pour installer notre solution c'est de passer par de la virtualisation).
  • mattdef
    Membre averti
    Envoyé par CS FS
    Si demain WPF peut être porté sur autre chose que du Windows ça fera de moi un développeur heureux (et des clients sous Mac heureux, car aujourd'hui le seul moyen qu'ils ont pour installer notre solution c'est de passer par de la virtualisation).
    Envoyé par emilie77
    Ce sont deux ans que je cherche de passer a Java pour pouvoir faire des apps cross-platform desktop.
    c# et WPF pour Mac et Linux serait parfait

    Je pense qu'il va se passer beaucoup de temps (peut-être même jamais ?) avant que WPF soit totalement recodé pour OpenGL ou Vulkan afin d'être compatible Mac et Linux
  • kilroyFR
    Membre éprouvé
    Utilisez-vous encore WPF ? Quel est votre avis sur ce framework ?
    Personnellement nous avons definitivement arreté les devs avec WPF en 2012 lorsque microsoft a laché silverlight pour passer sur du tout web puisque ca correspondait aussi a ce qu'attendaient nos clients (client leger et multi plateforme).
    Les quelques applis (qui restent grosses en taille malgré tout) sont desormais la punition pour ceux qui reprennent la maintenance.
    Ca n'interesse pas les nouveaux devs qui veulent faire du angular/typescript, C# aspnet MVC Core etc.

    Nos applis client lourds se limitent desormais a des petits outils mais en aucun cas a une application d'entreprise.
    Pour faire du cross plateforme sur ces outils nous sommes passés comme beaucoup de boite en Qt+
    Pour moi M$ a loupé le coche en 2012, c'etait l'occasion d'ouvrir C# officiellement vers l'open source et mono.
    Ca a trop trainé et du coup beaucoup de devs se sont tournés comme nous vers des solutions alternatives qui ont fait leurs preuves et pour lesquelles on sent qu'il y a du support.
    A trop se diversifier ou vouloir toucher a tout M$ s'est perdu.
  • cecedu26
    Membre régulier
    Envoyé par micka132
    ,mis à part angular tu cites du Microsoft comme produit attractif et dans le même temps tu dis qu'ils se sont perdu?
    Au passage,
    :
    Je pense qu'il fait allusion a du developpement web vs client lourd (et je suis d'accord qu'a vouloir faire du web et du client lourd (qu'ils ont malgré tout delaissé) ils ont plus egarés les devs).
    Chez nous aussi on a essuyé les platres silverlight et du coup c'est a ce moment la qu'on a definitivement abandonné le client lourd M$. Trop d'errements, pas de reponse sur l'avenir de WPF.
    Nous aussi dans mon entreprise on a abandonné le client lourd sauce microsoft.
    Nos devs se focalisent sur des technos du moment (donc effectivement angular/aspnetcore en france en tout cas c'est bien la tendance).

    j'espère que tu parles pas des produits Google
    On peut toujours aussi reinventer la roue carree dans son coin mais pas certains que ce soit bien rentable. Et puis il n'y a pas que google, M$, facebook et autres, il y a malgré tout pleins de technos qui n'appartiennent pas a ces entreprises mais au libre.
  • emilie77
    Membre éprouvé
    Ce sont deux ans que je cherche de passer a Java pour pouvoir faire des apps cross-platform desktop.
    c# et WPF pour Mac et Linux serait parfait
  • CS FS
    Membre averti
    Envoyé par mattdef
    Je pense qu'il va se passer beaucoup de temps (peut-être même jamais ?) avant que WPF soit totalement recodé pour OpenGL ou Vulkan afin d'être compatible Mac et Linux
    Au fond, c'est le sentiment que j'ai. Mais si une chose est certaine, c'est qu'en l'état actuel des choses, WPF a encore moins de chance de s'orienter vers le multi-plateforme ; il n'y a réellement qu'un passage par la communauté qui peut laisser entrevoir la possibilité qu'un jour, peut-être, une réécriture de la couche graphique sera amorcée.
  • esperanto
    Membre émérite
    Envoyé par mattdef
    Je pense qu'il va se passer beaucoup de temps (peut-être même jamais ?) avant que WPF soit totalement recodé pour OpenGL ou Vulkan afin d'être compatible Mac et Linux
    Surtout qu'il semble bien que Microsoft ait encore trouvé un moyen de retarder un tel portage, à défaut de l'empêcher: refuser de l'accueillir dans son Git, ce qui fait que tout portage sera de fait un fork non géré par Microsoft. Dans le meilleur des cas, Microsoft pourra rajouter des fonctions dans l'original et le fork mettra du temps à s'adapter. Dans le pire des cas, ils pourront au moins interdire au fork d'utiliser le nom de WPF.
    Dans tous les cas, ceux qui pensent que tout ce qui est écrit en C# devient portable comme Java se sont bien fait avoir...
  • redcurve
    Membre extrêmement actif
    Envoyé par esperanto
    Surtout qu'il semble bien que Microsoft ait encore trouvé un moyen de retarder un tel portage, à défaut de l'empêcher: refuser de l'accueillir dans son Git, ce qui fait que tout portage sera de fait un fork non géré par Microsoft. Dans le meilleur des cas, Microsoft pourra rajouter des fonctions dans l'original et le fork mettra du temps à s'adapter. Dans le pire des cas, ils pourront au moins interdire au fork d'utiliser le nom de WPF.
    Dans tous les cas, ceux qui pensent que tout ce qui est écrit en C# devient portable comme Java se sont bien fait avoir...
    Microsoft ne veut pas prendre la responsabilité du code de la couche graphique sous autre chose que Windows ce qui est compréhensible ils n'ont pas non plus une infinité de dev. Par contre, ils prendront sans problème l'ajout d'une couche d'abstraction permettant de target d'autres couche graphique, mais ne s'occuperont pas de l'implémentation. De toute façon WPF est structurellement prévu pour.
  • Bundy*Al
    Membre actif
    Envoyé par emilie77
    Ce sont deux ans que je cherche de passer a Java pour pouvoir faire des apps cross-platform desktop.
    c# et WPF pour Mac et Linux serait parfait
    Pourquoi ne pas essayer Qt en C++? Ça te permettrait de faire des apps pour toutes les plateformes.
  • gabriel21
    Membre chevronné
    Envoyé par Christian Olivier

    Les développeurs ont cependant précisé que PresentationNative_cor3.dll et bilinearspan.lib, une petite bibliothèque utilisée par wpfgfx_cor3.dll, contiennent encore du contenu propriétaire et ne sont pas open source. « ;Ces éléments ont toutefois fait l’objet d’un travail préparatoire approfondi afin notamment de les assainir en supprimant, par exemple, le contenu qui ne convient pas à l’open-sourcing ;», ont-ils déclaré.
    Je serais intéressé de savoir ce que Microsoft considère comme "contenu" ne convenant pas à l'open source.