Applications adaptatives de version

Chaque version du KIT de développement logiciel (SDK) Windows ajoute de nouvelles fonctionnalités dont vous souhaiterez peut-être tirer parti. Toutefois, tous vos clients ne mettent pas à jour leurs appareils vers la dernière version de Windows en même temps. Vous souhaitez que votre application fonctionne sur la plus grande gamme possible d’appareils tout en tirant parti des nouvelles fonctionnalités lorsqu’elles sont disponibles.

Logiciels requis

  • SDK d'application Windows 1.0 ou version ultérieure
  • Visual Studio 2022 ou version ultérieure avec la charge de travail de développement d’applications Windows

Overview

Suivez ces trois étapes pour prendre en charge la plus grande gamme d’appareils Windows :

  1. Configurez votre projet Visual Studio pour cibler les dernières API. Cela affecte ce à quoi le compilateur a accès lors de la compilation.
  2. Effectuez des vérifications d’exécution pour vous assurer que vous appelez uniquement les API présentes sur l’appareil sur lequel votre application s’exécute.
  3. Testez votre application sur la version minimale et la version cible de Windows.

Configurer votre projet de Visual Studio

La première étape de la prise en charge de plusieurs versions Windows consiste à spécifier les versions de système d’exploitation/SDK prises en charge cible et minimale dans votre projet de Visual Studio.

  • Cible — la version du kit de développement logiciel (SDK) par rapport à laquelle Visual Studio compile le code de votre application. Toutes les API et ressources de cette version du Kit de développement logiciel (SDK) sont disponibles dans le code de votre application au moment de la compilation.
  • Minimum : la version du Kit de développement logiciel (SDK) qui prend en charge la version la plus ancienne du système d’exploitation sur laquelle votre application peut s’exécuter.

Pendant l’exécution, votre application s’exécute sur la version du système d’exploitation sur laquelle elle est déployée. Votre application lève des exceptions si vous utilisez des API qui ne sont pas disponibles dans cette version. Utilisez les vérifications d’exécution pour appeler les API appropriées, comme décrit plus loin dans cet article.

Tip

Visual Studio ne vous avertit pas de la compatibilité des API. Il vous incombe de tester et de vérifier que votre application fonctionne correctement sur toutes les versions du système d’exploitation comprises entre la version minimale et la version cible, incluses.

Lorsque vous créez un projet dans Visual Studio, définissez les versions cibles et minimales prises en charge par votre application. Par défaut, la version cible est la version du SDK installée la plus élevée, et la version minimale est le SDK installé le plus bas.

Pour modifier la version minimale et cible d’un project existant, accédez à Project>Properties>Application>Targeting.

Effectuer des vérifications d’API

La clé des applications adaptatives de version est la combinaison de contrats API et de la classe ApiInformation . Cette classe vous permet de détecter si un contrat d’API, un type ou un membre spécifié est présent afin de pouvoir effectuer en toute sécurité des appels d’API sur différents appareils et versions du système d’exploitation.

Contrats d’API

L’ensemble d’API au sein d’une famille d’appareils est divisé en sous-divisions appelées contrats d’API. Utilisez la ApiInformation.IsApiContractPresent méthode pour tester la présence d’un contrat d’API. Cela est utile lorsque vous souhaitez tester de nombreuses API qui existent toutes dans la même version d’un contrat d’API.

bool isScannerContractPresent =
    Windows.Foundation.Metadata.ApiInformation.IsApiContractPresent(
        "Windows.Devices.Scanners.ScannerDeviceContract", 1);

Un contrat d’API représente une fonctionnalité , un ensemble d’API associées qui fournissent ensemble une fonctionnalité particulière. Une plateforme qui implémente une API dans un contrat d’API doit implémenter chaque API dans ce contrat. Testez le contrat une seule fois, puis appelez en toute sécurité l’une de ses API.

Le contrat le plus important et le plus couramment utilisé est Windows.Foundation.UniversalApiContract, qui contient la majorité des API Windows Runtime. Pour obtenir la liste des contrats disponibles, consultez Kits de développement logiciel (SDK) d’extension de famille d’appareils et contrats d’API.

Code adaptatif de version et XAML conditionnel

Utilisez la ApiInformation classe dans une condition dans votre code pour tester la présence d’une API avant de l’appeler. Les méthodes telles que IsTypePresent, , IsEventPresentIsMethodPresentet IsPropertyPresent vous permettent de tester la granularité dont vous avez besoin.

Pour plus d’informations et d’exemples, consultez Code adaptatif de version.

Si la version minimale de votre application est la build 17763 (version 1809) ou ultérieure, vous pouvez utiliser le XAML conditionnel pour définir des propriétés et instancier des objets dans le balisage sans code d’arrière-plan. Le code XAML conditionnel offre un moyen d’utiliser ApiInformation.IsApiContractPresent directement dans le balisage.

Pour plus d’informations et d’exemples, consultez XAML conditionnel.

Testez votre application qui s'adapte aux versions

Lorsque vous utilisez du code adaptatif de version ou du code XAML conditionnel, testez votre application sur un appareil exécutant la version minimale et sur un appareil exécutant la version cible de Windows.

Vous ne pouvez pas tester tous les chemins de code conditionnel sur un seul appareil. Déployez et testez votre application sur un appareil distant (ou une machine virtuelle) exécutant la version minimale prise en charge du système d’exploitation pour vous assurer que tous les chemins de code fonctionnent correctement.