Adaptivní aplikace pro různé verze

Každá verze sady Windows SDK přidává nové funkce, které můžete chtít využít. Ne všichni vaši zákazníci ale aktualizují svá zařízení na nejnovější verzi Windows současně. Chcete, aby vaše aplikace fungovala na nejširším možném rozsahu zařízení a zároveň využívala nové funkce, pokud jsou k dispozici.

Pokud chcete podporovat nejširší škálu zařízení Windows, postupujte takto:

  1. Nakonfigurujte projekt Visual Studio tak, aby cílil na nejnovější rozhraní API. To má vliv na to, k čemu má kompilátor v době sestavení přístup.
  2. Proveďte kontroly za běhu, abyste zajistili, že voláte pouze rozhraní API, která jsou na zařízení, na kterém běží vaše aplikace.
  3. Otestujte aplikaci na minimální verzi a cílové verzi Windows.

Konfigurace projektu Visual Studio

Prvním krokem při podpoře více verzí Windows je určení verze cílového a minimálního podporovaného operačního systému nebo sady SDK v projektu Visual Studio.

  • Cíl – verze sady SDK, vůči které Visual Studio kompiluje kód vaší aplikace. Všechna rozhraní API a prostředky v této verzi sady SDK jsou k dispozici v kódu aplikace v době kompilace.
  • Minimálně – verze sady SDK, která podporuje nejstarší verzi operačního systému, na které může vaše aplikace běžet.

Během běhu aplikace běží na verzi operačního systému, do které se nasadí. Vaše aplikace vyvolá výjimky, pokud používáte rozhraní API, která nejsou v této verzi dostupná. Pomocí kontrol za běhu volejte správná rozhraní API, jak je popsáno dále v tomto článku.

Tip

Visual Studio vás neopozoruje na kompatibilitu rozhraní API. Je vaší povinností otestovat a ověřit, že vaše aplikace funguje správně ve všech verzích operačního systému od minimální po cílovou verzi včetně.

Když v Visual Studio vytvoříte nový projekt, nastavte cílovou a minimální verzi, kterou vaše aplikace podporuje. Ve výchozím nastavení je cílová verze nejvyšší nainstalovaná verze sady SDK a minimální verze je nejnižší nainstalovaná sada SDK.

Chcete-li u existujícího projektu změnit minimální a cílovou verzi, přejděte na Projekt>Vlastnosti>Aplikace>Cílení.

Provádění kontrol rozhraní API

Klíčem k adaptivním aplikacím pro správu verzí je kombinace kontraktů rozhraní API a třídy ApiInformation . Tato třída umožňuje zjistit, jestli je k dispozici zadaný kontrakt rozhraní API, typ nebo člen, abyste mohli bezpečně volat rozhraní API napříč různými zařízeními a verzemi operačního systému.

Kontrakty rozhraní API

Sada rozhraní API v rámci řady zařízení je rozdělená do dílčích oddílů, které se označují jako kontrakty rozhraní API. Použijte metodu ApiInformation.IsApiContractPresent k otestování přítomnosti kontraktu rozhraní API. To je užitečné, když chcete otestovat mnoho rozhraní API, která existují ve stejné verzi kontraktu rozhraní API.

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

Kontrakt rozhraní API představuje funkci – sadu souvisejících rozhraní API, která společně poskytují konkrétní funkce. Platforma, která implementuje jakékoli rozhraní API ve kontraktu rozhraní API, musí implementovat každé rozhraní API v daném kontraktu. Otestujte kontrakt jednou a pak bezpečně volejte některá z jeho rozhraní API.

Největší a nejčastěji používaný kontrakt je Windows.Foundation.UniversalApiContract, který obsahuje většinu prostředí Windows Runtime rozhraní API. Seznam dostupných kontraktů najdete v tématu Sady SDK rozšíření skupin zařízení a kontrakty rozhraní API.

Adaptivní kód verze a podmíněný XAML

Použijte třídu ApiInformation v podmínce v kódu k otestování, zda je rozhraní API k dispozici, než ho zavoláte. Metody, jako například IsTypePresent, IsEventPresent, IsMethodPresent a IsPropertyPresent, vám umožňují testovat na takové úrovni podrobnosti, jakou potřebujete.

Další informace a příklady najdete v tématu Adaptivní kód verze.

Pokud je minimální verze vaší aplikace sestavení 17763 (verze 1809) nebo novější, můžete pomocí podmíněného jazyka XAML nastavovat vlastnosti a vytvářet instance objektů v kódu XAML bez pomocného kódu. Podmíněný XAML umožňuje použít ApiInformation.IsApiContractPresent přímo ve značkách.

Další informace a příklady naleznete v tématu Podmíněné XAML.

Otestujte svou aplikaci přizpůsobující se různým verzím

Pokud používáte adaptivní kód verze nebo podmíněný kód XAML, otestujte aplikaci na zařízení s minimální verzí a na zařízení s cílovou verzí Windows.

Nemůžete testovat všechny cesty podmíněného kódu na jednom zařízení. Nasaďte a otestujte aplikaci na vzdáleném zařízení (nebo virtuálním počítači) s minimální podporovanou verzí operačního systému, abyste měli jistotu, že všechny cesty kódu fungují správně.