Aplikasi versi adaptif

Setiap rilis SDK Windows menambahkan fungsionalitas baru yang mungkin ingin Anda manfaatkan. Namun, tidak semua pelanggan Anda memperbarui perangkat mereka ke versi terbaru Windows secara bersamaan. Anda ingin aplikasi Anda bekerja pada berbagai perangkat seluas mungkin sambil juga memanfaatkan fitur baru saat tersedia.

Prasyarat

  • SDK Aplikasi Windows 1.0 atau yang lebih baru
  • Visual Studio 2022 atau yang lebih baru dengan beban kerja pengembangan aplikasi Windows

Overview

Ikuti tiga langkah berikut untuk mendukung berbagai perangkat Windows terluas:

  1. Konfigurasikan proyek Visual Studio Anda untuk menargetkan API terbaru. Ini memengaruhi apa yang dapat diakses kompilator pada waktu build.
  2. Lakukan pemeriksaan runtime untuk memastikan Anda hanya memanggil API yang ada di perangkat tempat aplikasi Anda berjalan.
  3. Uji aplikasi Anda pada versi minimum dan versi target Windows.

Mengonfigurasi proyek Visual Studio Anda

Langkah pertama dalam mendukung beberapa versi Windows adalah menentukan versi OS/SDK yang didukung Target dan Minimum dalam proyek Visual Studio Anda.

  • Target — versi SDK yang Visual Studio mengkompilasi kode aplikasi Anda. Semua API dan sumber daya dalam versi SDK ini tersedia di kode aplikasi Anda pada waktu kompilasi.
  • Minimum — versi SDK yang mendukung versi OS paling awal yang dapat dijalankan aplikasi Anda.

Selama runtime, aplikasi Anda berjalan terhadap versi OS tempat aplikasi disebarkan. Aplikasi Anda melemparkan pengecualian jika Anda menggunakan API yang tidak tersedia dalam versi tersebut. Gunakan pemeriksaan runtime untuk memanggil API yang benar, seperti yang dijelaskan nanti di artikel ini.

Tip

Visual Studio tidak memperingatkan Anda tentang kompatibilitas API. Anda bertanggung jawab untuk menguji dan memverifikasi bahwa aplikasi Anda berfungsi dengan benar pada semua versi OS antara dan termasuk Minimum dan Target.

Saat Anda membuat proyek baru di Visual Studio, atur versi Target dan Minimum yang didukung aplikasi Anda. Secara default, Versi Target adalah versi SDK terpasang tertinggi, dan Versi Minimum adalah SDK terendah yang diinstal.

Untuk mengubah versi Minimum dan Target untuk project yang ada, buka Project>Properties>Application>Targeting.

Melakukan pemeriksaan API

Kunci untuk aplikasi adaptif versi adalah kombinasi kontrak API dan kelas ApiInformation . Kelas ini memungkinkan Anda mendeteksi apakah ada kontrak, jenis, atau anggota API tertentu sehingga Anda dapat melakukan panggilan API dengan aman di berbagai perangkat dan versi OS.

Kontrak API

Kumpulan API dalam keluarga perangkat dipecah menjadi subdivisi yang dikenal sebagai kontrak API. ApiInformation.IsApiContractPresent Gunakan metode untuk menguji keberadaan kontrak API. Ini berguna ketika Anda ingin menguji banyak API yang semuanya ada dalam versi kontrak API yang sama.

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

Kontrak API mewakili fitur — sekumpulan API terkait yang bersama-sama memberikan kemampuan tertentu. Platform yang mengimplementasikan API apa pun dalam kontrak API harus menerapkan setiap API dalam kontrak tersebut. Uji kontrak sekali, lalu panggil salah satu API-nya dengan aman.

Kontrak terbesar dan paling umum digunakan adalah Windows.Foundation.UniversalApiContract, yang berisi sebagian besar API Windows Runtime. Untuk daftar kontrak yang tersedia, lihat SDK ekstensi keluarga perangkat dan kontrak API.

Kode adaptif terhadap versi dan XAML bersyarat

ApiInformation Gunakan kelas dalam kondisi dalam kode Anda untuk menguji keberadaan API sebelum memanggilnya. Metode seperti IsTypePresent, , IsEventPresentIsMethodPresent, dan IsPropertyPresent memungkinkan Anda menguji granularitas yang Anda butuhkan.

Untuk informasi dan contoh selengkapnya, lihat Kode adaptif versi.

Jika Versi Minimum aplikasi Anda adalah build 17763 (versi 1809) atau yang lebih baru, Anda dapat menggunakan XAML kondisional untuk mengatur properti dan membuat objek dalam markup tanpa kode di belakang. XAML kondisional menyediakan cara untuk menggunakan ApiInformation.IsApiContractPresent secara langsung dalam markup.

Untuk informasi dan contoh selengkapnya, lihat XAML Bersyarah.

Menguji aplikasi adaptif versi Anda

Saat Anda menggunakan kode adaptif versi atau XAML kondisional, uji aplikasi Anda di perangkat yang menjalankan Versi Minimum dan pada perangkat yang menjalankan Versi Target Windows.

Anda tidak dapat menguji semua jalur kode kondisional pada satu perangkat. Sebarkan dan uji aplikasi Anda pada perangkat jarak jauh (atau komputer virtual) yang menjalankan versi OS minimum yang didukung untuk memastikan semua jalur kode berfungsi dengan benar.