Project Réunion

Qu’est ce que Le Projet Réunion nous apporte ?

Projet Réunion nous apporte trois nouvelles fonctionnalités dans lesquelles vos applications pourront piocher:

  1. De nouvelles API
  2. Un sous-ensembles D’API
  3. Des API convergentes

Les nouvelles API (new) : 

De nouvelles fonctionnalités Windows seront fournies dans le projet Réunion, celles-ci seront transparentes dans leurs identités, leurs packagings et leurs isolations. De plus elles partageront une interface commune ce qui vous permettra de l’utiliser peu importe le type de votre application (MSIX, MSI, Setup.exe, Desktop Bridge, AppContainer).

New APIs

Ces API sont autonomes et ont pour but de répondre à des problèmes spécifiques que vos applications peuvent rencontrer, elles vous aideront aussi à mettre en place des fonctionnalités supplémentaires.

Voici une liste potentielle des différents types d’API qui ne seront pas forcément pressent le premier jour :

  • Stockage et gestion des données dans un seul endroit pour garder en ordre le système de l’utilisateur
  • Cloud app support pour la gestion de l’identité ainsi que de la connectivité afin d’utiliser Azure
  • Packaging et système intégration pour que Windows comprenne ce que fait votre application
  • Aide de communication entre différentes applications (app-To-app) pour que vos applications fonctionnent ensemble.
  •  API d’accès aux ressources pour les caméras, les microphones et la localisation qui respectent la vie privée.

Comment utiliser ces nouvelles API ?

Pour utiliser ces API il vous suffit d’ajouter dans un premier temps le package NuGet « Project Reunion » et dans un second temps d’en faire appelle dans votre code. Les API seront disponibles dans toutes les versions de Windows ainsi que pour toutes les applications. Si certaines API se comportent autrement (du a son identité, d’un isolement particulier ou d’un cycle de vie différents) vos applications sont en mesures de le détecter grâce aux contrôles du type « TheType.IsSupported ».

Les API convergentes (converged):

Projet Réunion propose des Api de surface qui permettent de faire la liaisons entre Win32 et les fonctionnalités UWP/AppContainer déjà présentes dans la plate-forme. Les auteurs de comme partagé (Frameworks ou autre) peuvent avoir recours a une seule méthode afin d’éviter leurs propres verifications  » if (AppContainer) { x } else { y } ». Projet Reunion fournit des implémentations « polyfill » des API lorsque c’est nécessaire pour que votre application puisse fonctionner sur d’autres versions de Windows sans vérification supplémentaires.

Converged APIs

Voici quelque exemple d’API convergentes :

  • Window Content Frame abstraction entre WIn32 et UWP
  • Application lifecycle behaviors pour le démarrage, la déconnexion , ‘intégration du gestionnaire de redémarrage, le redémarrage pour la mise à jour
  • Assistance au démarrage et aux tâches de fond pour réduire la puissance et les performances de votre
  • Gestion des ressources d’application pour les chaîne de caractères(strings), les images, les résolution d’affichages et localisation

Une fois que vous avez ajouté les références a Projet Réunion l’application pourras commencer à migrer des blocs de fonctionnalités vers L’utilisation de ces API convergentes  entièrement prises en charge. Vous pouvez donc migrer autant de fonctionnalités que nécessaire, en conservant le style ainsi que le comportement de votre application. Ces API seront similaires a celles du SDK ce qui facilitera la transition. En ce qui concerne les API Win32 « Flat C » existantes, une API convergente sera ajoutée puis envoyer dans votre langage et votre runtime.

Lorsque les applications aurons migré pour Projet Réunion il sera plus facile d’alterner entre déploiement et isolation. En effet Projet Réunion gère l’accès au ressources à partir d’un processus avec un faible niveau d’intégrité (LOWIL) ou AppContainer pour que votre application puisse référencer les ressources tout en respectant le choix de l’utilisateur ainsi que les contrôles de confidentialité.

Converged APIs

Les sous-ensembles d’API (Subset Family):

Les sous-ensembles API vous permettent de commencer a utiliser les fonctionnalités de Project Reunion avec des changements minimaux de votre code déja existant. Cela fonctionne en utilisant un ensemble d’en-têtes et de mises en œuvre mis à jour et rationalisés.

Le Projet Réunion aide a rester dans l’ensemble des API que des Windows peu prendre en charge dans toutes les editions and les points de terminaison (endpoints).

Projet Reunion définit un sous-ensemble d’API prises en charge dans toutes les versions Windows. Si votre code cible ce sous-ensemble et utilise les Project reunion new API avec les Project Converged API il fonctionnera partout où Windows fonctionne sans ajout supplémentaire.

Les fonctionnalités prises en charge par le sous-ensemble de Project Reunion comprennent des sous-ensembles de :

  • Windowing, Input, Messaging, GDI, and GUI subsystem functionality
  • Filesystem and storage access
  • Networking
  • Printing
  • Process, threading, memory management, basic application services
  • DirectX, D3D, DirectML

Comment migrer vers l’ensemble d’API de Projet Reunion Subset ?

Pour migrer votre application il vous suffit de supprimer toute les références aux headers de Windows Kit (windows.h, kernel32.lib, user32.lib, winsock.h, etc) puis ajouter les références au header principal de Projet Reunion Subsete et aux lib d’importation.

Point important, malgres que de nombreuses API font parties du Kit WIndows ainsi que du sous-ensemble de Projet Réunion, il se peut que vous ayer quelques changements a effectuer dans votre code ou dans le comportement de votre application.

Composantes du Projet Réunion (Project Reunion Family Components) ?

Ce qui est disponible dès maintenant

Ces composants sont à votre disposition dès maintenant et respectent la « promesse de la famille du projet Réunion », à savoir qu’ils disposent d’une API unique pour toutes sortes d’applications.

  • WinUI 3 pour XAML vous aide à créer des UX fluides pour toutes sortes d’applications grâce à la puissance de XAML. Ce composant {lien vers repo} fait partie de la famille de fonctionnalités de Project Reunion, s’appuyant sur l’identité + le packaging + les idées transparentes de déploiement que Project Reunion prend également en charge pour votre application.
  • C++/WinRT, RUST/WinRT et C#/WinRT fournissent des projections en langage natif de Windows, de Project Reunion et de vos propres types personnalisés définis dans les métadonnées. Consommez les API du kit Windows, produisez-les pour les utiliser avec d’autres projections prises en charge et créez vos propres nouvelles projections de langage.
  • MSIX-Core vous permet de conditionner votre application pour la distribuer sur les machines Windows Desktop via le magasin ou votre propre pipeline de livraison. MSIX-Core vous permet d’utiliser les parties réutilisées de l’histoire du packaging MSIX sur les anciennes versions de Windows.

Ce qui est bientôt disponible

Bien que nous pensions qu’elles soient intéressantes pour les candidatures, c’est à vous de nous le dire ! Le travail au grand jour consiste en partie à apprendre ensemble les besoins des développeurs d’applications. Vous trouverez ci-dessous un ensemble de fonctionnalités qu’il semble intéressant de mettre à disposition dans le cadre d’un modèle convergent ou nouveau, mais c’est à vous de nous le dire ! Certaines sont liées à un fil de discussion proposant la fonctionnalité. +1 celles que vous aimez, commentez la conception détaillée et la direction, et aidez-nous à déterminer où nous allons.

  • WebView2, qui s’appuie sur Edge/Chromium, vous permet de créer facilement votre application en HTML+JS une fois et de la réutiliser sur toutes les plateformes. L’utilisation par WebView2 de technologies du Projet Réunion comme WinUI3 comme cadre d’hébergement vous permet d’exécuter un UX moderne basé sur le web sur toutes les éditions de Windows.
  • Modern Lifecycle helpers permettent à votre application d’être sensible à la consommation d’énergie et de réagir aux changements dans la gestion de l’énergie du système d’exécution et dans l’état de l’utilisateur. Elles aident également votre application à redémarrer après le redémarrage de l’utilisateur, enregistrent votre application pour qu’elle puisse être redémarrée et réduisent les redémarrages liés aux mises à jour.
  • Startup tasks donnent vie à votre application lorsque l’utilisateur se connecte pour se reconnecter, commencer à travailler sans surutiliser les ressources ou être prêt à une utilisation rapide. Les fonctions de choix de l’utilisateur et de gestion de l’énergie vous permettent de réduire votre impact sur le chemin critique de la connexion.
  • Update Scan Integration permet de maintenir votre application à jour automatiquement pendant son exécution, en même temps que d’autres tâches de maintenance du système.
  • Accès aux ressources utilisateur même à partir d’AppContainer et d’applications isolées. Vos applications AppContainer peuvent accéder à de puissantes technologies Win32 comme le presse-papiers, la communication entre processus et l’espace de nommage Windows Shell avec le consentement de l’utilisateur par le biais d’un courtage.
  • Modern Resource Tooling pour que vous puissiez utiliser la puissance de ResX/ResW dans vos applications Win32 au lieu de MUI.

Orientation future

Nous avons pour objectif de développer le Projet Réunion afin de fournir une version moderne, simple et accessible d’une grande partie de la puissance de la plate-forme d’application Windows. Le fait de travailler au grand jour avec notre communauté de développement garantit que nous faisons d’abord les bonnes choses pour résoudre les problèmes auxquels vos applications sont confrontées sur les versions actuelles et futures de Windows.

Certaines fonctionnalités seront d’abord livrées en tant que composants du projet Reunion. Lorsque nous pensons à faire évoluer la plate-forme, il est important de s’assurer que les nouvelles fonctionnalités et caractéristiques sont disponibles pour notre communauté de développeurs dès qu’elles sont prêtes à être utilisées. Les nouvelles fonctionnalités de la plate-forme vous aideront à les adopter dès qu’elles seront disponibles, sans que vous ayez à les cibler ou à les réécrire.

À mesure que votre application utilisera davantage de fonctionnalités de Project Reunion, elle sera prête pour des cibles supplémentaires telles que le packaging, l’identité, l’AppContainer et d’autres futures éditions Windows. Dépendre des API de Project Reunion signifie que nous prenons en charge le travail pour que ces API continuent à fonctionner au fur et à mesure de l’évolution de Windows. En restant dans la surface de l’API du Projet Réunion, vous vous assurez que votre application peut répondre à la plus large gamme d’éditions et de versions de Windows tout en utilisant des fonctionnalités à jour.

Comment nous procédons

Travailler au grand jour

Le Projet Réunion s’appuie sur la puissance de l’open-source et les fonctionnalités de GitHub pour vous livrer du code aussi vite que nous pouvons l’imaginer. Vous devez vous sentir libre de bifurquer, de créer des demandes de retrait, d’ouvrir des problèmes, de proposer des résolutions aux problèmes. Vous pouvez voir et influencer toutes nos fonctionnalités via le « issue tracker ». Vous devez vous attendre à ce que nous vous écoutions et que nous vous fournissions un retour d’information constructif.

Constructions et artifacts

Le code dans le cadre du projet Réunion GitHub repo s’appuie sur une boucle CI/CD et produit des DLL et des métadonnées fraîchement construites sur chaque demande de retrait. Le résultat comprend un paquet NuGet contenant les métadonnées pour le projet Reunion et un MSIX prêt à être livré pour être inclus dans votre demande comme redistribuable ou comme référence de paquet. Ajoutez une référence au paquet de Project Reunion et commencez à construire. Pour vous aider à déployer vos applications, nous inclurons un MSIX Framework Package ainsi que des instructions sur la façon de déployer ce MSIX à partir de votre installateur existant.

Versionnement
Le projet Reunion utilisera des définitions d’API basées sur des métadonnées fortement typées sur lesquelles vos applications peuvent prendre une dépendance à long terme suivant le cycle de vie de notre support publié. Nous utiliserons SemVer 2 pour identifier clairement les niveaux de forme des API qui permettent à ces API d’évoluer vers de nouvelles fonctionnalités sans compromettre les applications existantes. Project Reunion aide à maintenir les applications à jour grâce à des Framework Packages qui sont mis à jour avec des changements non cassants le cas échéant.

Extension des API
Une partie de ce que le Projet Réunion fournit est l’accès à des fonctionnalités qui se trouvent dans Windows, mais pour lesquelles il n’y a pas d’API publique. Nous travaillons sur les détails, mais notre plan est de fournir un paquet secondaire de code qui fournit une API publique sur ces composants précédemment non exposés. Ces composants seront mis en œuvre en tant que source fermée, mais ils seront accompagnés d’une surface d’API basée sur les métadonnées, pouvant être appelée et prise en charge par le public, et seront inclus dans les paquets du cadre du projet Reunion pour être utilisés par les applications.

Courtage
Les processus UWP (AppContainer, Low-IL) sont destinés à protéger à la fois l’utilisateur et l’application elle-même contre d’autres applications. L’accès aux ressources de l’utilisateur et du système est limité à l’ensemble des courtiers pris en charge pour ces ressources. Le projet Reunion comprend également un paquet principal qui fonctionne au niveau d’intégrité de l’utilisateur (moyen-IL, parfois appelé « full trust ») et peut fournir un accès approuvé par l’utilisateur à des ressources auparavant non disponibles pour les processus AppContainer et Low-IL.
Ce modèle est aujourd’hui disponible pour les applications AppContainer en tant que « composant de confiance totale » – le projet Reunion vise à fournir un modèle et une plate-forme communs pour ces composants personnalisés.

Ce que le Project Reunion n’est pas

Le Projet Réunion n’est pas un nouveau modèle d’application ou une nouvelle plate-forme de Windows. Il n’y aura pas de « nouvelle application Project Reunion » pour Visual Studio, VSCode ou d’autres environnements de développement.
Vous aurez toujours un accès complet au SDK Windows et aux kits associés. Au fil du temps, les fonctionnalités offertes par Project Reunion iront au-delà de la simple fusion des modèles Win32 et UWP existants et fourniront des fonctionnalités supplémentaires à toutes les applications à utiliser.

Project Reunion n’est pas un nouveau modèle d’empaquetage ou d’isolation des applications. Il n’est pas nécessaire de modifier votre application pour accéder à la fonctionnalité de Project Reunion, si ce n’est en utilisant la nouvelle fonctionnalité elle-même. Si les API que vous utilisez ont besoin d’une identité ou d’un packaging, ces exigences seront indiquées.

Le Projet Réunion n’est pas un nouveau modèle de sécurité ou de confidentialité pour les applications. Les histoires de sécurité, de confidentialité, de fiabilité et d’identité de votre application continuent de fonctionner avec Project Reunion. Il y a peut-être des endroits où le Projet Réunion aide votre application à être plus consciente des préoccupations des clients en matière de sécurité ou de confidentialité. Le Projet Réunion vous aide à utiliser des fonctionnalités modernes de sécurité et de confidentialité qui évoluent en fonction des besoins de votre application.

Le Projet Réunion n’est pas un moyen d’exécuter votre application dans le cloud. L’utilisation de la technologie de Project Reunion vous permettra d’intégrer votre application dans des familles d’API modernes qui sont prêtes pour le cloud. Des composants clés comme le cycle de vie moderne et l’isolation des états permettent de préparer votre application à fonctionner où que soient vos clients.

Votre commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l’aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l’aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s