Project Reunion : Microsoft vise l’unification des API Windows

Microsoft Project Reunion

Avec Project Reunion, Microsoft promet aux développeurs d’unifier l’accès aux fonctionnalités de la plate-forme Windows. Quelle forme prend ce chantier ?

N’existera-t-il plus, à terme, qu’un seul modèle d’application Windows ?

Microsoft s’est engagé sur cette voie avec l’initiative Project Reunion, officialisée le mois dernier.

Pour le moment, il n’est pas question d’éliminer les modèles existants. Mais d’en faire abstraction pour permettre à toute application d’exploiter l’ensemble des fonctionnalités de la plate-forme Windows.

Dans un premier temps, les fonctionnalités concernées seront celles qui disposent d’API publiques.

Ces dernières pourront aussi bien relever de l’univers Win32 (API « historiques ») que de WinRT, associé à la « plate-forme Windows universelle » (UWP).

Microsoft a déjà initié un rapprochement entre les deux mondes, sur plusieurs points, avec divers niveaux de succès. Entre autres :

  • Les îles XAML pour intégrer des composants UWP dans les applications Win32
  • Project Centennial (devenu Desktop Bridge), destiné à porter des applications Win32 sur le Windows Store
  • Le format d’empaquetage MSIX, qui apporte aux applications Win32 des fonctionnalités de gestion proches d’UWP

Trois types d’API

Project Reunion est censé aller plus loin en créant un substrat unifié. Ce dans la lignée, notamment, de ce que WinUI apporte au niveau des contrôles d’interface, pour permettre de développer des applications Win32 « modernes ».

Le projet apporte trois types d’interfaces dans lesquelles les applications peuvent piocher : les « nouvelles » API, les API « convergentes » et un « sous-ensemble » d’API.

Les nouvelles API apporteront des fonctionnalités spécifiques. Dont, potentiellement :

  • Stockage et gestion des données
  • Connectivité à des services cloud
  • Communications entre applications

Pour les utiliser, les développeurs devront ajouter le package NuGet « Project Reunion » et y faire appel dans leur code.

Les API « convergentes » font le pont entre les fonctionnalités Win32 et UWP existantes. Elles engloberont potentiellement :

  • La gestion des tâches d’arrière-plan
  • Le comportement des applications (lancement, déconnexion, redémarrage pour mise à jour…)
  • Accès avancé au presse-papiers, etc.

Une fois Project Reunion intégré dans une application, on peut commencer à migrer ses blocs fonctionnels vers les API convergées, en conservant style et comportement d’origine.

Le « sous-ensemble » inclut des API génériques qui fonctionnent sur toutes les versions de Windows. Elle couvrent des catégories comme :

  • Réseau
  • Impression
  • Gestion de la mémoire et des processus
  • Fenêtrage, interface graphique
  • Accès au système de fichiers

En l’état, Project Reunion assure une rétrocompatibilité jusqu’à Windows 10 1709. En théorie, tout langage et runtime qui gère les objets COM pourra l’exploiter.

Photo d’illustration © Thomas Hawk via Visualhunt