Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Chroniqueur Actualités

    Microsoft explique le plan du "Project Reunion", afin de réparer la confusion Win32/UWP de l'ère Windows 8
    Build 2020 : avec le Project Reunion, Microsoft tente de réduire les frictions
    entre les API Win32 et UWP

    À l’occasion de la conférence Build, Microsoft a dévoilé Project Reunion, décrit comme étant « notre vision d'unification d’évolution de la plateforme de développeur Windows pour faciliter la création de superbes applications qui fonctionnent sur toutes les versions de Windows 10 ».

    L'histoire remonte à l'introduction de Windows 8 en 2012 et de sa nouvelle plateforme d'application compatible avec les tablettes, parfois appelée « Metro », bien que Microsoft aimait dire « Moderne ». Metro n'était pas seulement une nouvelle interface utilisateur, mais aussi un sandboxing de sécurité, une vitrine et une API appelée WinRT (Windows Runtime) qui devait remplacer l'ancienne API Win32. Malgré l'échec du concept Windows 8, Microsoft n'a pas abandonné WinRT, mais l'a plutôt transformé en la plateforme Windows universelle (UWP) pour Windows 10 (« Universel », car il fonctionnait sur plusieurs plateformes Windows, y compris Windows Phone, Xbox et HoloLens).

    La division de Windows en deux plateformes a été gênante pour les développeurs, qui ont eu le choix de s'en tenir à Win32 pour une large compatibilité ou d'adopter UWP pour bénéficier des dernières fonctionnalités de Microsoft en matière de sécurité, de déploiement et de conception d'interface utilisateur. Certaines API Windows 10 sont uniquement UWP. La société essaie depuis des années de rendre la séparation plus tolérable, en ajoutant un large accès à l'API Win32 pour UWP et du côté de Win32, en proposant des choses comme les XAML Island (îles XAML), une fonctionnalité qui vous permet d'intégrer un peu d'UWP dans une application Win32.

    Plus précisément, la fonctionnalité vous permet d’héberger des contrôles UWP dans des applications de bureau non conçues pour UWP ; vous pouvez ainsi améliorer l’apparence, le comportement et les fonctionnalités de vos applications WPF, Windows Forms et Win32 C++ existantes, mais aussi bénéficier des dernières nouveautés de l’interface utilisateur Windows 10 qui sont uniquement disponibles par le biais de contrôles UWP. Cela signifie que vous pouvez utiliser des fonctionnalités UWP telles que Windows Ink et des contrôles prenant en charge le système Fluent Design dans vos applications WPF, Windows Forms et Win32 C++ existantes.

    Vient alors le Project Reunion

    Kevin Gallo, Corporate Vice President, Windows Developer Platform, explique :

    « Au cours des deux dernières années, nous avons brisé la barrière entre Win32 (également appelé API Windows) et les API de la plateforme Windows universelle (UWP). Project Reunion étend cet effort pour faciliter la création d'une excellente application Windows. Il unifiera l'accès aux API Win32 et UWP existantes et les rendra disponibles découplées du système d'exploitation, via des outils comme NuGet. Cela fournira une plateforme commune pour les nouvelles applications. De plus, il vous aidera à mettre à jour et à moderniser vos applications existantes avec les dernières fonctionnalités, qu'elles soient en C++, en .NET (y compris WPF, Windows Forms et UWP) ou en React Native. Au fur et à mesure que nous découplons les API existantes et ajoutons de nouvelles API, nous effectuons également le travail de polyfill, selon les besoins, afin que les API fonctionnent à un niveau inférieur sur les versions prises en charge de Windows ».

    Le projet repose sur plusieurs composants. L’un d’eux est WinUI 3 Preview 1, présenté comme étant « le framework d'interface utilisateur natif hautement performant et optimisé pour Fluent pour Windows. Avec WinUI, les développeurs peuvent créer d'excellentes expériences utilisateur qui s'adaptent et évoluent sur tous les appareils, qu'ils démarrent un nouveau projet ou modernisent une application existante ». WinUI 3 est important, car il s'agit à la fois de la dernière couche d'interface utilisateur pour UWP et également d'une couche d'interface utilisateur pour les applications Win32. Un outil qui vient donc contribuer à réduire la friction entre UWP et Win32.


    Microsoft a également parlé de WebView2 : « Nous savons également qu'il y a des moments où vous souhaitez intégrer du contenu Web dans votre application native afin que vous puissiez partager du code sur toutes les plateformes et avec le navigateur. Aujourd'hui, nous développons WebView2 (un autre composant dans le voyage de Project Reunion) avec un nouveau .NET Preview. Désormais, toute application Windows peut intégrer du contenu Web avec la puissance de Microsoft Edge et Chromium. WebView2 fournit des fonctionnalités Web complètes sur toute la gamme des applications Windows, et il est découplé du système d'exploitation, de sorte que vous n'êtes plus verrouillé sur une version particulière de Windows ».

    En somme, Project Reunion entend fournir aux développeurs un socle commun de développement pour Windows, aussi bien pour le développement de nouvelles applications que pour la modernisation de logiciels existants, « peu importe qu'ils soient C++, .NET (y compris WPF, Windows Forms et UWP) ou React Native ». Mais, outre le souci de Microsoft de faciliter la vie des développeurs, on peut y voir une tentative de promouvoir l’UWP, dont l’objet initial était d’enrichir le Windows Store, sans le succès escompté à ce jour.

    Toutefois, Microsoft semble voir voir plus loin que son écosystème :

    « Au fur et à mesure que les organisations évoluent pour permettre le travail à distance, Windows Virtual Desktop, construit sur Azure, a fourni la possibilité de provisionner et de mettre à l'échelle les bureaux virtuels et les applications plus rapidement que ce qui était possible auparavant. Il permet aux organisations de servir votre application existante sur un ensemble croissant d'appareils auxquels les utilisateurs peuvent accéder avec les clients Windows Virtual Desktop pour Windows, MacOS / iOS et Android.

    « Parce que l'évolutivité est si importante, nous avons introduit une fonctionnalité appelée MSIX App Attach. MSIX App Attach Preview optimisera l'expérience des utilisateurs en démêlant l'image du système d'exploitation que les organisations déploient dans le cloud des applications auxquelles les utilisateurs doivent accéder. Cela signifie qu'une fois que vous avez adopté MSIX pour le bureau Windows, le même investissement apportera bientôt encore plus d'avantages lors de l'exécution de votre application dans Windows Virtual Desktop sur Azure ».


    MAUI

    Qu'en est-il quand vous devez développer pour mobile ou Mac ainsi que pour Windows ? Microsoft a quelques suggestions, y compris le développement en JavaScript ou TypeScript pour React Native, qui semble être utilisé par l'équipe Office de l'entreprise, entre autres. Il existe également Xamarin.Forms, une boîte à outils d'interface utilisateur multiplateforme .NET acquise par Microsoft en 2016.

    À la conférence Build, Microsoft a présenté .NET Multi-platform App UI (.NET MAUI), une évolution de la boîte à outils Xamarin.Forms.

    .NET MAUI fournit une seule pile qui prend en charge toutes les charges de travail modernes : Android, iOS, macOS et Windows. Les fonctionnalités natives de chaque plateforme et le contrôle de l'interface utilisateur sont à portée de main dans une API simple et multiplateforme pour offrir des expériences utilisateur sans compromis, selon Microsoft. .NET MAUI permettra aux développeurs de créer des applications pour n'importe quel appareil à partir d'une base de code unique et d'un système de projet.

    Microsoft soutient que .NET MAUI est conçu pour la productivité des développeurs, notamment le système de projet et les outils multiplateformes dont les développeurs ont besoin. .NET MAUI simplifie la structure du projet en un seul projet pour cibler plusieurs plateformes. Cela signifie que vous pouvez facilement déployer sur n'importe quelle cible que vous souhaitez, y compris votre bureau, émulateurs, simulateurs ou appareils physiques en un seul clic. Grâce aux ressources multiplateformes intégrées, vous pourrez ajouter des images, des polices ou des fichiers de traduction dans le projet unique, et .NET MAUI configurera automatiquement les crochets natifs afin que vous puissiez simplement coder.

    L'entreprise explique que vous aurez toujours accès aux API natives du système d'exploitation sous-jacent et ce sera plus facile que jamais avec les nouvelles intégrations spécifiques aux plateformes. Sous les plateformes, vous pouvez ajouter des fichiers de code source pour un système d'exploitation spécifique et accéder aux API natives. Microsoft annonce que .NET MAUI sera disponible dans Visual Studio 2019, Visual Studio pour Mac et Visual Studio Code et prendra en charge les modèles MVVM et XAML existants ainsi que les capacités futures comme Model-View-Update (MVU) avec C#, ou même Blazor.

    Source : Microsoft (annonce, XAML Islands), Project Reunion (GitHub)

    Et vous ?

    Que pensez-vous de ce projet ?
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  2. #2
    Nouveau membre du Club
    Laissez-moi deviner, c’est encore une fois compatible Windows 10 uniquement.
    Voilà maintenant dix ans que j’ai dis que UWP est une blague. Je pense tenir mes propos pendant quelques temps

    Personnellement, toujours coincé avec WPF et .NET 4.0, à la limite 4.5, justement pour supporter Windows XP.

    Edit:
    Je suis à la fois content et déçu.

  3. #3
    Membre habitué
    Reunion toujours que pour Windows 10!
    Le but de l'UWP n'était pas de promouvoir le Windows Store mais de proposer des applications légères qui ne consomment pas d'énergie pour faire face aux IPAD qui prenaient le marché en tenant des jours sans charge.

    Ma grande question est qu'en est-il des application desktop qui utilisent par exemple WinUI, les AOI UWP, et qui tournent sur Windows server 2012/2016/2019 ou sur Windows 7? Il faut encore faire 2 applications ?
    Jean-claude

  4. #4
    Chroniqueur Actualités

    Microsoft explique le plan du « Project Reunion », afin de réparer la confusion Win32/UWP de l'ère Windows 8
    Microsoft explique le plan de « Project Reunion » et précise ce qu'il n'est pas,
    Afin de réparer la confusion Win32/UWP de l'ère Windows 8

    Lors de la conférence Build 2020, Microsoft a annoncé Project Reunion, un nouveau projet visant à faciliter le développement d'applications pour la plateforme Windows 10. Mais l'explication de Microsoft concernant le projet n'était pas claire pour de nombreux développeurs. Les développeurs se demandaient si le Project Reunion était un modèle d'application comme l'UWP ou s'il s'agissait d'un nouveau modèle d'empaquetage ou d'isolation. La semaine dernière, Microsoft a publié un nouveau document sur GitHub afin de clarifier les objectifs de ce projet et de préciser non seulement ce en quoi il consiste, mais aussi ce qu’il n’est pas.


    Project Reunion unifie l'accès aux API Win32 (ancienne API Windows) et UWP (Universal Windows Platform) existantes et les rend disponibles de manière indépendante du système d'exploitation, via des outils comme NuGet. Les applications construites à l'aide des composants de Project Reunion peuvent fonctionner sur toutes les versions de Windows 10 et sur tous les appareils. La récente mise à jour de la page GitHub de Project Reunion avec des détails clairs est une tentative de résoudre les problèmes créés par Microsoft avec des applications de style « Modern » sur Windows 8 dans sa tentative de concurrencer l'iPad d'Apple et de mettre au point une stratégie pour les applications sur les smartphones.

    Les problèmes remontent à l'introduction de Windows 8 en 2012 et de sa nouvelle plateforme d'application compatible avec les tablettes, parfois appelée « Metro ». Metro n'était pas seulement une nouvelle interface utilisateur, mais aussi un sandboxing de sécurité, une vitrine et une API appelée WinRT (Windows Runtime) qui devait remplacer l'ancienne API Win32. Malgré l'échec du concept Windows 8, Microsoft n'a pas abandonné WinRT, mais l'a plutôt transformé en la plateforme Windows universelle (UWP) pour Windows 10.

    La division de Windows en deux plateformes a été gênante pour les développeurs, qui ont eu le choix de s'en tenir à Win32 pour une large compatibilité ou d'adopter UWP pour bénéficier des dernières fonctionnalités de Microsoft en matière de sécurité, de déploiement et de conception d'interface utilisateur. Certaines API Windows 10 sont uniquement UWP. La société essaie depuis de rendre la séparation plus tolérable, en ajoutant un large accès à l'API Win32 pour UWP et du côté de Win32, en proposant des choses comme les XAML Island (îles XAML), une fonctionnalité qui vous permet d'intégrer un peu d'UWP dans une application Win32.

    Mais Project Reunion apporte la solution définitive proposée par le l’éditeur de logiciels. Bien sûr, parce que l'événement Build de cette année a eu lieu à distance, Microsoft n'a pas pu rapprocher cet outil des développeurs. De nombreux développeurs ont des points d'interrogation sur l'objectif de Project Reunion et ce qu'il peut faire. Commençons d’abord par ce que dit Microsoft que le nouveau projet n’est pas.


    Ce que vous ne devez pas attendre de Project Reunion

    Selon les explications de Microsoft, Project Reunion n'est pas un nouveau modèle d'application ou une nouvelle plateforme de Windows. Il n'y aura pas de nouveau modèle de "Project Reunion App" pour Visual Studio, VSCode ou d'autres environnements de développement », note-t-il. « Vous aurez toujours un accès complet au SDK Windows et aux kits associés. Avec le 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 possibilités supplémentaires à toutes les applications », déclare Microsoft.

    Ce n'est pas un nouveau modèle d'empaquetage ou d'isolation pour les applications, ce n'est pas un nouveau modèle de sécurité pour les applications, et ce n'est pas aux développeurs d'exécuter une application dans le nuage. « Il n'y aura pas de changements nécessaires à votre application pour accéder à la fonctionnalité Project Reunion, si ce n'est l'utilisation de la nouvelle fonctionnalité elle-même. Si les API que vous utilisez ont besoin d'une identité ou d'un empaquetage, ces exigences seront indiquées », explique Microsoft.

    Project Reunion n'est pas non plus « un moyen d'exécuter votre application dans le nuage. L'utilisation de la technologie de Project Reunion vous aidera à faire fonctionner votre application sur des familles d'API modernes qui sont prêtes pour le cloud. Des composants clés comme "Modern lifecycle" et "State Isolation" permettent de préparer votre application à fonctionner où que soient vos clients ».

    L’initiative de Project Reunion fait suite à l'abandon par Microsoft de sa propre technologie de navigation Edge pour le nouveau navigateur Chromium de Google, qui est fourni via Windows Update.

    Les composants de Project Reunion

    Parmi les composants qui son disponibles maintenant, on trouve les bibliothèques C++/WinRT, Rust/WinRT et C#/WinRT. Microsoft a annoncé la Preview publique de la bibliothèque d'exécution Rust Windows en mai afin de faciliter la tâche des développeurs qui utilisent les applications Rust pour Windows. Elle sert le même objectif que les runtimes Windows pour le code écrit en C++ et C#.

    Les autres composants que Microsoft a ajoutés sont MISX-Core, qui permet aux développeurs de distribuer des applications sur les PC Windows via la boutique ou leur propre mécanisme de livraison, et WinUI 3 pour XAML, qui aide à créer des designs UX fluides pour toutes sortes d'applications grâce à la puissance de XAML.

    Les composants à venir

    En plus des composants déjà ajoutés, Microsoft en propose d’autres qu’il soumet à l’appréciation des développeurs avant qu’ils ne soient intégrés à Project Reunion :

    • Edge/Chromium backed WebView2 : 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 des technologies du Project Reunion, telles que 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 runtime et dans l'état de l'utilisateur. Ils 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 : permettent à votre application de reprendre vie lorsque l'utilisateur s'enregistre pour se reconnecter, de commencer à travailler sans abuser des ressources ou d’être prêt à une utilisation rapide. Les fonctions au choix de l'utilisateur et de gestion de l'énergie vous permettent de réduire votre impact sur le chemin critique de connexion.

    • Update Scan Integration : vous 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.

    • Access to user resources : donne 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 noms Windows Shell avec le consentement de l'utilisateur par le biais d'une négociation.

    • Modern Resource Tooling : pour permettre aux développeurs d’utiliser la puissance de ResX/ResW dans leurs applications Win32 au lieu de MUI.

    Source : GitHub Project Reunion

    Et vous ?

    Que pensez-vous de Project Reunion après les précisions de Microsoft ?
    Étiez-vous parmi les développeurs qui étaient confus après le lancement du projet ? Les choses vous semblent-elles claires désormais ?
    Quels commentaires faites-vous des composants à venir ?

    Lire aussi

    Build 2020 : avec le Project Reunion, Microsoft tente de réduire les frictions, entre les API Win32 et UWP pour les développeurs Windows
    Microsoft promeut le framework WinUI avec un nouveau site Web, qui énumère les avantages de la plateforme
    Build 2020 jour 1 : des mises à jour importantes pour Microsoft Teams à l'unification des API Win32 et UWP sous Windows, voici un aperçu des nouveautés annoncées par Microsoft
    Microsoft annonce que UWP prendra en charge .NET Standard 2.0, et met à la disposition des développeurs plus de vingt mille API
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  5. #5
    Membre expérimenté
    Juste une question pour avoir plus de précisions : l'api UWP est une api native ? ou est-ce que c'est une api en .net ?