Modifier

FAQ pour les développeurs Windows

Cet article est destiné à promouvoir une compréhension commune de l’expérience de développement Windows et de l’orientation des produits. Les réponses à ces questions s’appliquent au SDK d’application Windows version 1.0.

Prise en main

Que dois-je utiliser pour créer des applications Windows ?

Pour le développement d’applications de bureau Windows, l’utilisation de la combinaison SDK d’application Windows / WinUI 3 peut être un excellent choix. Cette combinaison de technologies succède à UWP / WinUI 2 pour les applications de bureau.

D’autres options peuvent être plus appropriées selon ce que vous créez et la façon dont vous le créez :

  • Si le SDK d'application Windows / WinUI 3 ne répondent pas à vos besoins, UWP / WinUI 2 le peut.
  • Si vous souhaitez créer des applications multiplateformes : utilisez React Native et .NET MAUI. .NET MAUI est un excellent choix pour les développeurs C#. Quant à React Native, il conviendra davantage aux développeurs JavaScript/TypeScript.
  • Si vous êtes un développeur web : vous pouvez utiliser WebView2 comme hôte d’application. La technologie web vous permettra de créer des applications de bureau qui auront accès aux API du SDK Windows et du SDK d’application Windows. Vous pouvez également utiliser React Native pour Windows.
  • Si vous êtes un développeur C++ : pour les applications de bureau, la combinaison SDK d’application Windows / WinUI 3 est un excellent choix. Si vous créez un jeu, envisagez d’utiliser DirectX.
  • Si vous êtes un développeur Rust : renseignez-vous sur Rust pour Windows.

D’autres technologies de développement vous conviendront peut-être davantage selon vos besoins et préférences technologiques. Découvrez-en plus sur le choix d’une technologie de développement.

Où puis-je trouver un comparatif simple des technologies de développement Windows ?

SDK d’application Windows / WinUI 3

Qu’est-ce que le kit SDK d’application Windows ?

Le SDK d’application Windows est une plateforme de développement d’applications Windows qui vous permet de créer de belles applications de bureau modernes et rétrocompatibles (jusqu’à Windows 10 1809). WinUI 3 est l’infrastructure d’interface utilisateur fournie avec le SDK d’application Windows.

Quelle est la différence entre le SDK d’application Windows et le SDK Windows ?

Les deux sont des kits de développement logiciel (SDK) qui vous permettent de créer des applications Windows.

Le SDK d’application Windows est une nouvelle plateforme de développement qui vous permet de créer des applications de bureau modernes compatibles avec toutes les versions de Windows (jusqu’à Windows 10 1809). Quand vous utilisez le SDK d’application Windows pour créer une application, vous avez accès aux fonctionnalités les plus récentes de la plateforme de développement Windows. WinUI 3 est inclus dans le SDK d’application Windows.

Le SDK Windows est une plateforme de développement qui vous permet de créer des applications UWP et des applications Win32/de bureau. Il est conçu autour d’API Windows couplées à des versions particulières du système d’exploitation.

Le SDK d’application Windows ne remplace pas le SDK Windows. Le SDK d’application Windows est un complément du SDK Windows. Il fournit une abstraction pratique, découplée du système d’exploitation, autour du catalogue d’API enrichi du système d’exploitation Windows auquel vous avez déjà accès à l’aide du SDK Windows. Lorsque vous créez des applications avec le SDK d’application Windows, vous pouvez être amené à utiliser certaines API du SDK Windows selon les fonctionnalités dont vous avez besoin. Progressivement, les fonctionnalités du SDK Windows seront transférées vers le SDK d’application Windows.

Puis-je utiliser la combinaison SDK d’application Windows / WinUI 3 dans mon application Windows existante ?

Notez que WinUI 3 (infrastructure d’interface utilisateur) est fourni avec le SDK d’application Windows (infrastructure de développement de plateforme Windows).

D’une manière générale, vous ne pouvez pas utiliser WinUI 3 si vous n’êtes pas prêt à migrer entièrement votre infrastructure d’interface utilisateur. Nous travaillons sur une fonctionnalité appelée XAML Islands qui vous permet d’héberger du contenu WinUI 3 dans d’autres infrastructures d’interface utilisateur (WPF, Win32).

Selon la façon dont votre application existante a été créée, vous devriez pouvoir utiliser des éléments du SDK d’application Windows dans n’importe quelle application Win32/de bureau. Les applications UWP ne sont pas prises en charge par la combinaison SDK d’application Windows / WinUI 3.

Cela signifie que les applications WPF/MFC/WinForms peuvent utiliser les API du SDK d’application Windows qui ne sont pas liées à WinUI 3. Parmi elles, citons par exemple les API de cycle de vie des applications, de fenêtrage et de notifications Toast.

Dois-je utiliser Visual Studio pour créer des applications WinUI 3 ?

Nous vous recommandons vivement d’utiliser Visual Studio 2022 versions 17.1 et ultérieures pour développer des applications SDK d’application Windows / WinUI 3. L’utilisation de la dernière version de Visual Studio vous donnera accès à des fonctionnalités de développement enrichies telles que la fonctionnalité Rechargement à chaud.

Vous utilisez peut-être d’autres IDE et flux de travail de développement. Or, Visual Studio est actuellement le seul IDE officiellement pris en charge pour la combinaison SDK d’application Windows / WinUI 3. Notez que MSBuild est nécessaire pour compiler les projets qui utilisent XAML ou la combinaison SDK d’application Windows / WinUI 3.

Lorsque je crée une application à l’aide de la combinaison SDK d’application Windows / WinUI 3, est-ce que je crée une « application WinUI 3 » ?

Oui : « Application WinUI 3 » est le terme que nous vous recommandons d’utiliser.

Puis-je procéder à une mise à jour incrémentielle de mon application WinUI 2 vers WinUI 3 en remplaçant progressivement les composants WinUI 2 par des composants WinUI 3 ?

Faux. Le SDK d’application Windows ne peut pas être utilisé dans les applications UWP, et WinUI 2 ne peut pas être combiné à WinUI 3. Consultez À propos de la migration d’UWP vers le SDK d’application Windows.

Est-il difficile de migrer une application UWP vers la combinaison SDK d’application Windows / WinUI 3 ?

La migration des composants de l’interface utilisateur est généralement simple (pour C# et C++/WinRT). Sinon, le coût de la migration d’UWP vers la combinaison SDK d’application Windows / WinUI 3 dépend principalement de ces facteurs :

  1. Fichier projet et personnalisation de MSBuild : Si vous utilisez des fonctionnalités avancées de MSBuild, des efforts supplémentaires risquent d’être nécessaires pour migrer votre projet.
  2. Migration de l’API .NET : Si votre application UWP repose sur .NET, vous devez procéder à une mise à niveau vers .NET 6. Dans la plupart des cas, l’adoption de .NET 6 est simple.
  3. Bibliothèques de composants d’interface utilisateur : Si vous utilisez des bibliothèques de composants d’interface utilisateur, vous aurez besoin de nouvelles versions de celles-ci qui ciblent WinUI 3.
  4. Si votre code source UWP est écrit dans le code C++/CX maintenant remplacé, un portage de code source sera impliqué. Consultez Passer de C++/CX à C++/WinRT.

Pour plus d’informations sur la migration d’UWP, consultez À propos de la migration d’UWP vers le SDK d’application Windows.

Si j’ai une application UWP existante dans le Microsoft Store, puis-je publier une nouvelle application WinUI 3 empaquetée à l’aide des mêmes identificateurs ?

Oui, les applications mises à niveau peuvent être publiées sans avoir à mettre à jour l’identité de votre application. Les utilisateurs disposant de l’ancienne version bénéficieront d’une mise à jour vers la nouvelle version. Ces conseils s’appliquent uniquement aux applications de bureau. Les applications Xbox, HoloLens et Surface Hub ne peuvent pas encore migrer vers WinUI 3.

Comment empaqueter/distribuer mon application WinUI 3 ?

Où puis-je trouver des conseils sur la migration du SDK d’application Windows ?

Dois-je utiliser le balisage XAML pour pouvoir utiliser WinUI 3 ?

Faux. Les contrôles d’interface utilisateur peuvent être créés dans le code. La représentation de votre interface utilisateur WinUI 3 sous la forme d’un balisage XAML déclaratif présente toutefois de nombreux avantages, comme l’amélioration de l’expérience de développement.

Si vous migrez d’UWP vers WinUI 3, vous pourrez probablement réutiliser une grande partie de votre balisage XAML et du code lié à l’interface utilisateur (mais vous devrez mettre à jour une partie de la syntaxe). Si vous migrez de WPF vers WinUI 3, vous pourrez réutiliser une grande partie des concepts, mais le jeu de contrôles et les API seront différents.

Visual Studio dispose-t-il d’une aire de conception / d’un concepteur d’interface utilisateur graphique pour WinUI 3 ?

Faux. Nous reconnaissons qu’il s’agit d’une lacune dans l’expérience de développement WinUI 3. Des outils comme Rechargement à chaud XAML peuvent souvent être utiles.

Le SDK d’application Windows inclut-il WinUI 3 ?

Oui. WinUI 3 est fourni dans le kit Windows App SDK.

Le SDK d’application Windows inclut-il WinUI 2 ?

Faux. WinUI 2 fait partie de la plateforme UWP.

WinUI 2 et WinUI 3 sont-ils basés sur la même technologie ?

Pas tout à fait. Bien que WinUI 3 ait été créé à partir de la base de code de WinUI 2, il s’agit de technologies distinctes. WinUI 2 et WinUI 3 sont des infrastructures d’interface utilisateur basées sur XAML qui fonctionnent avec .NET et C++. Notez que les infrastructures WinUI 2 et WinUI 3 ne sont pas compatibles entre elles.

Puis-je utiliser WinUI 3 sans le SDK d’application Windows ?

Faux. WinUI 3 est fourni dans le SDK d’application Windows.

Puis-je utiliser WinUI 3 dans une application non empaquetée ?

Oui. Toutes les technologies du SDK d’application Windows fonctionnent dans les applications non empaquetées, y compris WinUI 3.

Quelle est la différence entre XAML Islands et WinUI 3 ?

La technologie XAML Islands vous permet d’héberger des contrôles WinUI modernes aux côtés de l’interface utilisateur Win32 existante d’autres infrastructures, comme WinForms et WPF. Aujourd’hui, la technologie XAML Islands est prise en charge par la plupart des contrôles système XAML et WinUI 2. Pour plus d’informations, consultez cet article . La prise en charge de XAML Islands pour les contrôles WinUI 3 est en cours de développement.

Si j’utilise WinUI 3, mon application aura-t-elle un aspect moderne sous Windows 11 et Windows 10 ?

Oui, l’interface utilisateur de votre application héritera des derniers principes de conception de l’interface utilisateur Fluent sur toutes les versions prises en charge de Windows 11 et Windows 10 jusqu’à la version 1809 dans les scénarios empaquetés et non empaquetés.

Puis-je utiliser des arrière-plans Mica (Windows 11) ou Acrylic (Windows 10) dans les applications créées avec le SDK d’application Windows ?

Pas encore. Celle-ci n’est actuellement pas prise en charge.

Où puis-je trouver des exemples d’utilisation de WinUI 3 ?

Consultez Exemples d’applications pour le développement Windows. Voici quelques référentiels notables :

UWP et WinUI 2

Les applications UWP peuvent-elles être distribuées en dehors du Microsoft Store ?

Oui. Si votre package MSIX est signé, le certificat de signature doit être valide et approuvé sur l’appareil cible.

Puis-je combiner des contrôles d’interface utilisateur XAML UWP avec des contrôles d’interface utilisateur Win32, WPF ou WinForms ?

Oui - XAML Islands vous permet de le faire. Découvrez-en plus sur XAML Islands.

Développement multiplateforme

Puis-je commencer avec WinUI 3 et le SDK d’application, puis intégrer ultérieurement .NET MAUI si je souhaite finalement cibler des scénarios multiplateformes ?

Pas pour l'instant. Bien que les applications .NET MAUI utilisent la combinaison SDK d’application Windows / WinUI 3 lorsqu’elles sont exécutées sous Windows, nous vous recommandons de commencer par utiliser .NET MAUI ou React Native pour Windows si vous prévoyez de cibler plusieurs plateformes.

Que dois-je utiliser pour créer des applications à exécuter sous Windows et sur Xbox ?

Si votre application doit prendre en charge Xbox, HoloLens ou IoT, nous vous recommandons d’utiliser UWP. Le SDK d’application Windows ne prend pas en charge ces plateformes. Pour le développement de jeux, nous vous recommandons d’utiliser Microsoft Game Development Kit.

Que dois-je utiliser pour créer des applications à exécuter sous Windows et sur Surface Hub ?

Si vous ciblez à la fois Windows et Surface Hub, nous vous recommandons d’utiliser UWP.

Comment créer des applications web progressives au rendu natif sous Windows ?

Empaquetage, déploiement et mises à jour

Quelle est la différence entre les applications empaquetées, non empaquetées et empaquetées avec un emplacement externe ?

Pour connaître les définitions d’applications empaquetées, non empaquetées et empaquetées avec un emplacement externe, consultez Vue d’ensemble du déploiement. Cette rubrique décrit également les avantages et les inconvénients de chaque méthode.

Les utilisateurs finaux de mon application WinUI 3 bénéficieront-ils de mises à jour automatiques ?

Une application SDK d’application Windows / WinUI 3 peut être livrée par le biais du Microsoft Store, d’un fichier .appinstaller, ou dans votre package MSI ou setup.exe existant. Le Microsoft Store et AppInstaller prennent en charge les mises à jour automatiques pour les utilisateurs finaux qui les ont activées. En revanche, une application MSI/setup.exe doit disposer de son propre programme de mise à jour.

Puis-je utiliser le SDK d’application Windows sans MSBuild ?

D’une manière générale, non. WinUI 3 et le SDK d’application Windows ont besoin de MSBuild, c’est pourquoi Visual Studio est un prérequis pour le développement d’applications SDK d’application Windows / WinUI 3. Bien qu’il soit techniquement possible de créer des applications de SDK d’application Windows qui n’utilisent pas WinUI 3 avec d’autres chaînes d’outils, ceci n’est pas pris en charge.

Performances et optimisation

Que puis-je faire pour que mon application Windows plaise aux utilisateurs finaux ?

Compatibilité

Mes utilisateurs devront-ils mettre à jour Windows pour utiliser mon application SDK d’application Windows / WinUI 3 ?

Les utilisateurs qui disposent de Windows 10, version 1809 et au-delà, pourront installer vos applications WinUI 3 / SDK d’application Windows sans mettre à jour leur système d’exploitation.

Puis-je cibler Arm64 avec mon application WinUI 3 ?

Oui.

Désapprobations et migrations

UWP / WinUI 2 sont-ils déconseillés ?

Faux. UWP et WinUI 2 sont toujours pris en charge et vont continuer à recevoir des correctifs de bogue, de fiabilité et de sécurité. Toutefois, la plupart des nouvelles fonctionnalités, comme la prise en charge des derniers runtimes .NET, ne seront ajoutées qu’à la combinaison SDK d’application Windows / WinUI 3.

Quand dois-je migrer une application UWP / WinUI 2 vers WinUI 3 ?

Les développeurs UWP ne doivent pas se sentir obligés de migrer leurs applications vers le SDK d’application Windows s’ils sont satisfaits d’UWP et de ses fonctionnalités. Le meilleur choix pour certaines applications peut être de ne jamais effectuer de migration. Les applications qui souhaitent bénéficier des derniers investissements réalisés par Microsoft dans la plateforme Windows et .NET doivent envisager de migrer vers le SDK d’application Windows. Consultez Migrer d’UWP vers le SDK d’application Windows.

Quand ne dois-je *pas* migrer une application UWP + WinUI 2 vers WinUI 3 ?

Nous vous recommandons de continuer à utiliser UWP si vous créez des applications pour Xbox, Surface Hub ou HoloLens.

WPF est-il déconseillé ?

Faux. WPF est toujours pris en charge et continue également à recevoir des mises à jour de fonctionnalités.

WinForms est-il déconseillé ?

Faux. WinForms est toujours pris en charge et continue également à recevoir des mises à jour de fonctionnalités.

Windows Runtime (WinRT) est-il déconseillé ?

Faux. WinRT fait référence à une interface binaire d’application (ABI) qui vous permet d’interopérer entre plusieurs langages. WinRT est l’évolution de COM. Le SDK d’application Windows fournit la plupart de ses fonctionnalités par le biais des API WinRT.

Notes de publication

Où puis-je trouver les notes de publication du SDK d’application Windows ?