Adaptív verziójú alkalmazások

A Windows SDK minden egyes kiadása új funkciókat ad hozzá, amelyeket érdemes kihasználni. Azonban nem minden ügyfél frissíti az eszközeit a Windows legújabb verziójára egyszerre. Azt szeretné, hogy az alkalmazás a lehető legszélesebb eszközskálán működjön, miközben az új funkciókat is kihasználja, ha elérhető.

A Windows eszközök legszélesebb körének támogatásához kövesse az alábbi három lépést:

  1. Konfigurálja a Visual Studio projektet a legújabb API-k megcélzásához. Ez hatással van arra, hogy a fordító milyen hozzáféréssel rendelkezik a létrehozáskor.
  2. Futásidejű ellenőrzéseket hajthat végre, hogy csak azon az eszközön található API-kat hívja meg, amelyen az alkalmazás fut.
  3. Tesztelje az alkalmazást a Windows minimális és célverzióján.

A Visual Studio projekt konfigurálása

A több Windows-verzió támogatásának első lépéseként meg kell adni a cél- és minimális támogatott operációsrendszer-/SDK-verziókat a Visual Studio projektben.

  • Cél — az az SDK-verzió, amely ellenében a Visual Studio lefordítja az alkalmazáskódot. Az SDK-verzió összes API-ja és erőforrása elérhető az alkalmazás kódjában fordításkor.
  • Minimum – az alkalmazás által futtatható legkorábbi operációsrendszer-verziót támogató SDK-verzió.

A futtatókörnyezetben az alkalmazás a telepített operációsrendszer-verzión fut. Az alkalmazás kivételeket alkalmaz, ha olyan API-kat használ, amelyek nem érhetők el az adott verzióban. Futásidejű ellenőrzések használatával hívja meg a megfelelő API-kat a cikk későbbi részében leírtak szerint.

Tip

Visual Studio nem figyelmezteti az API-kompatibilitásra. Az Ön felelőssége, hogy tesztelje és ellenőrizze, hogy az alkalmazás megfelelően működik-e az operációs rendszer összes verziója között, beleértve a Minimum és a Cél verziót is.

Amikor új projektet hoz létre a Visual Studio, állítsa be az alkalmazás által támogatott Target és Minimum verziókat. Alapértelmezés szerint a célverzió a legmagasabb telepített SDK-verzió, a minimális verzió pedig a legalacsonyabb telepített SDK.

Ha módosítani szeretné egy meglévő project minimális és célverzióját, lépjen a Project>Properties>alkalmazáscélzásra>.

API-ellenőrzések végrehajtása

Az adaptív alkalmazások verziójának kulcsa az API-szerződések és az ApiInformation osztály kombinációja. Ez az osztály lehetővé teszi annak észlelését, hogy egy adott API-szerződés, típus vagy tag jelen van-e, így biztonságosan kezdeményezhet API-hívásokat különböző eszközökön és operációsrendszer-verziókon.

API-szerződések

Az eszközcsaládon belüli API-k halmaza az API-szerződéseknek nevezett alosztályokra van lebontva. Ezzel a ApiInformation.IsApiContractPresent módszerrel tesztelhet egy API-szerződés meglétét. Ez akkor hasznos, ha számos API-t szeretne tesztelni, amelyek mindegyike egy API-szerződés ugyanazon verziójában létezik.

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

Az API-szerződések egy funkciót jelölnek – a kapcsolódó API-k készletét, amelyek együttesen egy adott képességet biztosítanak. Az API-szerződésben szereplő API-t implementáló platformnak minden API-t implementálnia kell ebben a szerződésben. Tesztelje egyszer a szerződést, majd biztonságosan hívja meg bármelyik API-ját.

A legnagyobb és leggyakrabban használt szerződés a Windows.Foundation.UniversalApiContractWindows-futtatókörnyezet API-k többségét tartalmazza. Az elérhető szerződések listáját az Eszközcsalád bővítmény SDK-jai és API-szerződései című témakörben találja.

Adaptív verziókód és feltételes XAML

Az osztályt a ApiInformation kód egyik feltételében használhatja az API jelenlétének teszteléséhez, mielőtt meghívja. Az olyan módszerek, mint a IsTypePresent, IsEventPresent, IsMethodPresentés IsPropertyPresent lehetővé teszik a szükséges részletesség tesztelését.

További információkért és példákért lásd: Adaptív verziókód.

Ha az alkalmazás minimális verziója az 17763-as build (1809-es verzió) vagy újabb, a feltételes XAML használatával beállíthat tulajdonságokat, és háttérkód nélkül hozhat létre objektumpéldányokat a jelölőnyelvi kódban. A feltételes XAML lehetővé teszi a(z) ApiInformation.IsApiContractPresent közvetlen használatát a jelölőnyelvben.

További információkért és példákért lásd a feltételes XAML-t.

Tesztelje verzió-adaptív alkalmazását

Adaptív verziójú kód vagy feltételes XAML használata esetén tesztelje az alkalmazást a minimális verziót futtató eszközön és a Windows célverzióját futtató eszközön.

Egyetlen eszközön nem tesztelheti az összes feltételes kód elérési útját. Telepítse és tesztelje az alkalmazást egy olyan távoli eszközön (vagy virtuális gépen), amely a minimálisan támogatott operációsrendszer-verziót futtatja, hogy minden kódútvonal megfelelően működjön.