Microsoft respecte sa roadmap : Project Reunion version 0.5 a été lancé cette semaine. Une étape clé dans la réunification des frameworks Windows.

Les développements en entreprise sous Windows se sont inutilement complexifiés lorsque Microsoft a introduit WinRT (avec Windows 8) puis les UWP (avec Windows 10), obligeant les entreprises à choisir entre ces nouveaux frameworks ou l’ancien monde logiciel Win32 (et .NET Framework). Une lutte fratricide au cœur même du système qui bien a plus handicapé le développement Windows qu’il ne l’a facilité.

Lors de la conférence Build 2020 en mai 2020, Microsoft a annoncé une initiative visant à unifier les différentes philosophies de développement sous Windows : Project Reunion. L’idée consiste à combiner Win32 et UWP pour que les développeurs n’aient plus à choisir. Une unification qui passent par un découplage de ces API vis à vis du système d’exploitation, l’adoption de .NET6 (framework open source et cross platform) et l’arrivée de WinUI 3. Cette dernière brique est fondamentale. Elle s’impose comme l’API unificatrice pour créer les interfaces utilisateurs des applications Windows. Elle permet aux développeurs Win32 de progressivement, boîte de dialogue après boîte de dialogue, fenêtre après fenêtre, moderniser leurs logiciels sans réécriture du code principal.

Cette semaine, Microsoft a franchi un pas important en officialisant Project Reunion 0.5. Cette version introduit WinUI 3, WebView 2 et supporte .NET 5 (en attendant la finalisation de .NET6).
« Avec WinUI 3, vous pouvez désormais créer des applications de bureau qui peuvent être publiées sur le Microsoft Store. Il existe actuellement deux méthodes prises en charge pour créer une application WinUI 3 : Créer une toute nouvelle application de bureau WinUI 3 à partir de zéro ou alors migrer vos applications de bureau existantes vers WinUI 3 en ajoutant un nouveau projet WinUI 3 à votre solution puis en ajustant ou refactorisant votre logique » explique Andrew Clinick dans le billet de blog annonçant la disponibilité de cette étape « 0.5 ».

Cette première release officielle de Project Reunion vise à donner aux développeurs Win32 les moyens d’exploiter les technologies Windows modernes (telles que Fluent Design) jusqu’ici uniquement accessibles aux applications UWP. Elle est évidemment très limitée, mais elle peut être utilisée en production au sein des entreprises.

Les grandes limitations actuelles sont de trois ordres :
– la première est qu’elle ne s’adresse pas aux développeurs UWP et ne permet pas de produire des applications UWP.
– la seconde est que les applications produites doivent impérativement être packagées en MSIX (et donc containerisées). Les applications non packagées seront ultérieurement supportées, mais ce n’est pas le cas avec cette version.
– la troisième est que les applications multifenêtres ne sont pas vraiment supportées.

Bref, ce n’est qu’une version « 0.5 » qui permet de mettre le pied à l’étrier et de se familiariser avec les concepts, voire même de moderniser certaines applications d’entreprise monofenêtres (puisque le scénario est supporté pour un usage en production), mais un long chemin reste encore à parcourir avant une version 1.0 attendue à la fin de l’année.

Sur le fond, Project Reunion cherche surtout à retirer les complexités du développement Windows et retrouver une certaine forme de simplicité. Il ne s’agit plus de développer pour Win32 ou pour UWP mais plus simplement de développer pour Windows en Project Reunion.
Mais en attendant sa finalisation, certains développeurs jugent cette disponibilité « 0.5 » plus encombrante qu’utile. En raison des limitations actuelles, nombreux sont ceux qui considèrent désormais non plus avoir à choisir entre deux frameworks (Win32, UWP) mais entre trois (Win32, UWP, Project Reunion) alors que l’objectif est au final de n’en avoir qu’un (Project Reunion).

D’autres voix s’élèvent également pour rappeler que Project Reunion est entièrement et uniquement ciblé Windows alors que les développeurs d’entreprises aujourd’hui cherchent surtout à produire des applications cross plateformes.
Pour de telles applications multi-devices, Microsoft développe une alternative à WinUI3 dénommée .NET MAUI. Parallèlement, il existe aussi une plateforme Open Source dénommée UNO PLATFORM conçue pour permettre de créer des applications mobiles, desktop et WebAssembly en C# et qui s’intègre déjà à Project Reunion.