Dev

Surprise… WinForms et WPF sont désormais open source !

Par Laurent Delattre, publié le 05 décembre 2018

Lors de Connect() 2018, Microsoft a annoncé verser WinForms et WPF en open source offrant au passage de nouveaux horizons au framework cross-plateformes .NET Core 3.0 et aux nombreux développeurs .NET en entreprises.

C’est l’histoire d’un framework créé pour moderniser le développement sous Windows et concurrencé Java. L’histoire d’un framework qui avait tout pour être universel, mais ne l’était pas parce que Microsoft considérait à l’époque Linux comme un cancer, l’open source comme un danger vital et Windows comme une poule aux œufs d’or. L’histoire d’un framework qui par sa conception « monothéiste » a raté son rendez-vous avec l’Histoire. Car « .NET » (prononcez Dot Net) avait toutes les qualités du framework Java (et bien plus) sans en avoir l’universalité « cross plateforme », mais en acceptant pléthore de langages (là où le framework Java se limitait au langage Java).

Une ère nouvelle…

C’est désormais l’histoire d’un framework qui connaît une seconde chance en corrigeant le tir parce que le Microsoft d’aujourd’hui n’est plus du tout le Microsoft d’hier. Microsoft est Platinum Member de la Linux Foundation et l’un de ses principaux contributeurs. L’éditeur contribue à Node.js Foundation, OpenDaylight, Open Container Initiative, R Consortium, Open API Initiative… Microsoft utilise les outils open source dès que l’opportunité se présente, offre l’un des clouds (si ce n’est le cloud) les plus ouverts aux technologies et plateformes open source, et propose une quantité indénombrable de technologies et produits en open source (Visual Studio Code, PowerShell, CNAB, ONNX, C#, TypeScript, Azure Functions, ML.NET, CNTK, Napa.js, Babylon.js, Roslyn, ChakraCore, Xamarin.Forms, F#, Q#, etc.). Certes, l’entreprise traine encore une mauvaise image auprès des communautés historiques. Et ses principaux produits commerciaux restent « closed source » (Office, Windows, Dynamics, etc.). Mais en matière d’outils de développement et de frameworks, l’entreprise joue désormais l’ouverture et le multiplateforme.

L’avènement de .NET Core

Et cette ouverture a justement débuté avec l’introduction d’ASP.NET « vNext » (l’un des premiers projets Microsoft développés sur GitHub en totale ouverture) et de .NET Core. Ce dernier est une réécriture en open source du « .NET Framework » destinée à corriger les deux plus gros défauts du framework d’origine : sa trop grande compacité (.NET Core adopte une approche très modulaire) et son attachement à Windows (.NET Core est multi-plateforme avec un support natif de Mac OS et Linux en plus de Windows).
Jusqu’ici, toute la stratégie open source de Microsoft autour de « .NET Core » tournait autour des développements Web et serveur. Ce n’est plus vrai aujourd’hui, le tout nouveau « .NET Core 3.0 » supportant désormais le développement d’applications « Desktop ».

WinForms et WPF en open source !

Ce 4 décembre, lors de sa conférence « Connect(); », Microsoft a franchi un nouveau palier en annonçant verser en open source ses technologies WPF, WinForms, Entity Framework et WinUI. L’annonce n’est pas neutre. Elle confirme l’objectif d’ouvrir « .NET Core » aux postes de travail et constitue aussi un nouveau pas vers une plus grande ouverture de Windows (le support de Linux via WSL et le Windows Store en était l’un des premiers).  Car ces technologies sont au cœur des logiciels Windows « Desktop ».
L’objectif pour Microsoft, à travers cette annonce, sonne comme un « mea culpa » et une volonté de se rabibocher avec des développeurs davantage attirés par les développements Android et iOS que par la création d’applications UWP pour Windows 10. L’éditeur ne s’en cache pas : « nous cherchons à offrir davantage de transparence entre les équipes Windows et la communauté, à démocratiser le développement Windows et à encourager les développeurs à créer pour Windows ».
L’objectif n’est donc pas pour l’instant de permettre aux développeurs de créer des applications bureau à la fois compatibles Windows, Linux et Mac. En théorie, rien n’empêche la communauté de porter WPF et WinForms sous ces systèmes mais la tâche sera longue et complexe. Pour Microsoft, le développement « desktop » cross-plateforme se fera en effet de préférence avec « Xamarin.Forms 4.0 » également introduit lors de Connect() 2018. Ce framework open source est spécialement conçu pour la création d’interfaces utilisateur UI cross plateformes au-dessus de .NET Core 3.0, même si sa vocation est davantage la création d’applications mobiles que PC/Mac.
Dernier point, le support des applications « desktop » sous « .NET Core 3.0 » sonne l’alarme pour toutes les entreprises qui ont basé leurs développements d’applications métier sur le « .NET Framework » : il est désormais temps d’abandonner le framework historique Windows au profit de sa nouvelle émanation open source. Elles ont tout à y gagner en matière de performance, de simplicité de déploiement et de visibilité à long terme.

Une fondation supportée par Google et Pivotal

Si l’annonce du versement en open source de WinForms et WPF est assez spectaculaire en soi, ce n’est pourtant pas la plus essentielle. Car Microsoft considère aujourd’hui le framework « .NET Core 3.0 » et sa communauté suffisamment matures pour en laisser les reines à d’autres. L’éditeur vient donc d’annoncer que la .NET Foundation (qui veille à l’évolution de .NET Core) serait désormais dirigée par 7 directeurs (au lieu de trois actuellement), Microsoft n’occupant qu’un seul des 7 sièges disponibles.
Au passage, on notera que Red Hat, JetBrains, Google, Unity, Samsung, Pivotal, Progress Telerik et Insight ont désormais rejoint la .NET Foundation comme 1700 autres entreprises.

Dans l'actualité