Bagikan melalui


Pindah dari Windows Runtime 8.x ke UWP

Jika Anda memiliki aplikasi Universal 8.1—baik itu menargetkan Windows 8.1, Windows Phone 8.1, atau keduanya—maka Anda akan menemukan bahwa kode sumber dan keterampilan Anda akan di-port dengan lancar ke Windows 10. Dengan Windows 10, Anda dapat membuat aplikasi Platform Windows Universal (UWP), yang merupakan paket aplikasi tunggal yang dapat diinstal pelanggan Anda ke setiap jenis perangkat. Untuk latar belakang lebih lanjut tentang Windows 10, aplikasi UWP, dan konsep kode adaptif dan antarmuka pengguna adaptif yang akan kami sebutkan dalam panduan porting ini, lihat Panduan untuk aplikasi UWP.

Saat porting, Anda akan menemukan bahwa Windows 10 berbagi sebagian besar API dengan platform sebelumnya, serta markup XAML, kerangka kerja UI, dan alat, dan Anda akan menemukan semuanya sangat akrab. Sama seperti sebelumnya, Anda masih dapat memilih antara C++, C#, dan Visual Basic untuk bahasa pemrograman yang akan digunakan bersama dengan kerangka kerja UI XAML. Langkah pertama Anda dalam merencanakan dengan tepat apa yang harus dilakukan dengan aplikasi atau aplikasi Anda saat ini akan bergantung pada jenis aplikasi dan proyek yang Anda miliki. Itu dijelaskan di bagian berikut.

Jika Anda memiliki aplikasi Universal 8.1

Aplikasi Universal 8.1 dibangun dari proyek Aplikasi Universal 8.1. Katakanlah nama proyek adalah AppName_81. Ini berisi sub-proyek ini.

  • AppName_81.Windows. Ini adalah proyek yang membangun paket aplikasi untuk Windows 8.1.
  • AppName_81.WindowsPhone. Ini adalah proyek yang membangun paket aplikasi untuk Windows Phone 8.1.
  • AppName_81.Shared. Ini adalah proyek yang berisi kode sumber, file markup, dan aset dan sumber daya lain yang digunakan oleh kedua proyek lainnya.

Seringkali, aplikasi Universal Windows 8.1 menawarkan fitur yang sama—dan melakukannya menggunakan kode dan markup yang sama—dalam bentuk Windows 8.1 dan Windows Phone 8.1. Aplikasi seperti itu adalah kandidat ideal untuk porting ke satu aplikasi Windows 10 yang menargetkan keluarga perangkat Universal (dan yang dapat Anda instal ke berbagai perangkat terluas). Anda pada dasarnya akan memindahkan konten proyek Bersama dan Anda harus menggunakan sedikit atau tidak sama sekali dari dua proyek lainnya karena akan ada sedikit atau tidak sama sekali di dalamnya.

Di lain waktu, aplikasi Windows 8.1 dan/atau Windows Phone 8.1 berisi fitur unik. Atau berisi fitur yang sama tetapi menerapkan fitur tersebut menggunakan teknik yang berbeda atau teknologi yang berbeda. Dengan aplikasi seperti itu, Anda dapat memilih untuk memindahkannya ke satu aplikasi yang menargetkan keluarga perangkat Universal (dalam hal ini Anda akan ingin aplikasi beradaptasi dengan perangkat yang berbeda), atau Anda dapat memilih untuk memindahkannya sebagai lebih dari satu aplikasi, mungkin satu menargetkan keluarga perangkat Desktop dan yang lain yang menargetkan keluarga perangkat Seluler. Sifat aplikasi Universal 8.1 akan menentukan opsi mana yang terbaik untuk kasus Anda.

  1. Port konten proyek Bersama ke aplikasi yang menargetkan keluarga perangkat Universal. Jika berlaku, selamatkan konten lain dari proyek Windows dan WindowsPhone, dan gunakan konten tersebut secara tanpa syarat di aplikasi atau kondisional pada perangkat tempat aplikasi Anda berjalan pada saat itu (perilaku terakhir dikenal sebagai adaptif).
  2. Port konten proyek WindowsPhone ke aplikasi yang menargetkan keluarga perangkat Universal. Jika berlaku, selamatkan konten lain dari proyek Windows, menggunakannya secara tanpa syarat atau adaptif.
  3. Port konten proyek Windows ke aplikasi yang menargetkan keluarga perangkat Universal. Jika berlaku, selamatkan konten lain dari proyek WindowsPhone, menggunakannya secara tanpa syarat atau adaptif.
  4. Port konten proyek Windows ke aplikasi yang menargetkan keluarga perangkat Universal atau Desktop dan juga memindahkan konten proyek WindowsPhone ke aplikasi yang menargetkan keluarga perangkat Universal atau Seluler. Anda dapat membuat solusi dengan proyek Bersama, dan terus berbagi kode sumber, file markup, serta aset dan sumber daya lainnya di antara kedua proyek. Atau, Anda dapat membuat solusi yang berbeda dan masih berbagi item yang sama menggunakan tautan.

Jika Anda memiliki aplikasi Windows 8.1

Port proyek ke aplikasi yang menargetkan keluarga perangkat Universal atau Desktop. Jika Anda memilih keluarga perangkat Universal, dan aplikasi Anda memanggil API yang hanya diimplementasikan dalam keluarga perangkat Desktop, maka Anda dapat menjaga panggilan tersebut dengan kode adaptif.

Jika Anda memiliki aplikasi Windows Phone 8.1

Port proyek ke aplikasi yang menargetkan keluarga perangkat Universal atau Seluler. Jika Anda memilih keluarga perangkat Universal, dan aplikasi Anda memanggil API yang hanya diimplementasikan dalam keluarga perangkat Seluler, maka Anda dapat menjaga panggilan tersebut dengan kode adaptif.

Mengadaptasi aplikasi Anda dengan beberapa faktor formulir

Opsi yang Anda pilih dari bagian sebelumnya akan menentukan rentang perangkat yang akan dijalankan aplikasi atau aplikasi Anda, dan mungkin merupakan berbagai perangkat yang sangat luas. Bahkan membatasi aplikasi Anda ke keluarga perangkat Seluler masih membuat Anda dengan berbagai ukuran layar untuk didukung. Jadi, jika aplikasi Anda akan berjalan pada faktor formulir yang sebelumnya tidak didukung, maka uji UI Anda pada faktor formulir tersebut dan buat perubahan apa pun yang diperlukan, sehingga UI Anda beradaptasi dengan tepat pada masing-masing. Anda dapat menganggap ini adalah tugas pasca-porting, atau tujuan peregangan porting, dan ada beberapa contohnya dalam praktiknya di studi kasus Bookstore2 dan QuizGame .

Mendekati porting layer-by-layer

Saat memindahkan aplikasi Universal 8.1 ke model untuk aplikasi UWP, hampir semua pengetahuan dan pengalaman Anda akan ditransfer, seperti halnya sebagian besar kode dan markup sumber Anda serta pola perangkat lunak yang Anda gunakan.

  • Lihat. Tampilan (bersama dengan model tampilan) membentuk UI aplikasi Anda. Idealnya, tampilan terdiri dari markup yang terikat pada properti model tampilan yang dapat diamati. Pola lain (umum dan nyaman, tetapi hanya dalam jangka pendek) adalah untuk kode imperatif dalam file code-behind untuk memanipulasi elemen UI secara langsung. Dalam kedua kasus, markup dan desain UI Anda—dan bahkan kode imperatif yang memanipulasi elemen UI—akan mudah untuk port.
  • Lihat model dan model data. Bahkan jika Anda tidak secara resmi merangkul pola pemisahan kekhawatiran (seperti MVVM), ada kode yang pasti ada di aplikasi Anda yang melakukan fungsi model tampilan dan model data. Lihat kode model menggunakan jenis di namespace kerangka kerja UI. Kode model tampilan dan model data juga menggunakan sistem operasi non-visual dan API .NET Framework (termasuk API untuk akses data). Dan API tersebut juga tersedia untuk aplikasi UWP, jadi sebagian besar jika tidak semua kode ini akan di-port tanpa perubahan.
  • Layanan cloud. Kemungkinan beberapa aplikasi Anda (mungkin banyak) berjalan di cloud dalam bentuk layanan. Bagian dari aplikasi yang berjalan pada perangkat klien terhubung ke aplikasi tersebut. Ini adalah bagian dari aplikasi terdistribusi yang kemungkinan besar tidak berubah saat memindahkan bagian klien. Jika Anda belum memilikinya, opsi layanan cloud yang baik untuk aplikasi UWP Anda adalah Microsoft Azure Mobile Services, yang menyediakan komponen back-end yang kuat yang dapat dipanggil aplikasi Anda untuk layanan mulai dari pemberitahuan sederhana untuk pembaruan petak peta langsung hingga jenis skalabilitas angkat berat yang dapat disediakan farm server.

Sebelum atau selama porting, pertimbangkan apakah aplikasi Anda dapat ditingkatkan dengan merefaktornya sehingga kode dengan tujuan serupa dikumpulkan bersama-sama dalam lapisan dan tidak tersebar secara sewenang-wenang. Memperhitungkan aplikasi Anda ke dalam lapisan seperti yang dijelaskan di atas memudahkan Anda untuk membuat aplikasi Anda benar, untuk mengujinya, lalu kemudian membaca dan memeliharanya. Anda dapat membuat fungsionalitas lebih dapat digunakan kembali dengan mengikuti pola Model-View-ViewModel (MVVM). Pola ini menjaga bagian data, bisnis, dan UI aplikasi Anda terpisah satu sama lain. Bahkan dalam UI dapat menjaga status dan perilaku terpisah, dan secara terpisah dapat diuji, dari visual. Dengan MVVM, Anda dapat menulis data dan logika bisnis Sekali dan menggunakannya di semua perangkat apa pun UI- nya. Kemungkinan Anda juga dapat menggunakan kembali sebagian besar model tampilan dan melihat bagian di seluruh perangkat.

Topik Deskripsi
Porting proyek Anda memiliki dua opsi saat memulai proses porting. Salah satunya adalah mengedit salinan file proyek yang ada, termasuk manifes paket aplikasi (untuk opsi itu, lihat info tentang memperbarui file proyek Anda di Memigrasikan aplikasi ke Platform Windows Universal (UWP)). Opsi lainnya adalah membuat proyek Windows 10/11 baru di Visual Studio dan menyalin file Anda ke dalamnya.
Pemecahan Masalah Kami sangat menyarankan untuk membaca hingga akhir panduan porting ini, tetapi kami juga memahami bahwa Anda ingin menepati ke depan dan sampai ke panggung tempat proyek Anda dibangun dan dijalankan. Untuk itu, Anda dapat membuat kemajuan sementara dengan mengomentari atau mengomentari kode yang tidak penting, dan kemudian kembali untuk melunasi utang itu nanti. Tabel pemecahan masalah gejala dan solusi dalam topik ini mungkin berguna bagi Anda pada tahap ini, meskipun bukan pengganti untuk membaca beberapa topik berikutnya. Anda selalu dapat merujuk kembali ke tabel saat Anda maju melalui topik selanjutnya.
Porting XAML dan UI Praktik mendefinisikan UI dalam bentuk markup XAML deklaratif diterjemahkan dengan sangat baik dari aplikasi Universal 8.1 ke aplikasi UWP. Anda akan menemukan bahwa sebagian besar markup Kompatibel, meskipun Anda mungkin perlu membuat beberapa penyesuaian pada kunci Sumber Daya sistem atau templat kustom yang Anda gunakan.
Porting untuk I/O, perangkat, dan model aplikasi Kode yang terintegrasi dengan perangkat itu sendiri dan sensornya melibatkan input dari, dan output ke, pengguna. Ini juga dapat melibatkan pemrosesan data. Tapi, kode ini umumnya tidak dianggap sebagai lapisan UI atau lapisan data. Kode ini mencakup integrasi dengan pengontrol getaran, akselerometer, giroskop, mikrofon dan speaker (yang berpotongan dengan pengenalan ucapan dan sintesis), (geo)lokasi, dan modalitas input seperti sentuhan, mouse, keyboard, dan pena.
Studi kasus: Bookstore1 Topik ini menyajikan studi kasus tentang porting aplikasi Universal 8.1 yang sangat sederhana ke aplikasi Windows 10 dan Windows 11 UWP. Aplikasi Universal 8.1 adalah aplikasi yang membangun satu paket aplikasi untuk Windows 8.1, dan paket aplikasi yang berbeda untuk Windows Phone 8.1. Dengan Windows 10 dan Windows 11, Anda dapat membuat satu paket aplikasi yang dapat diinstal pelanggan Anda ke berbagai perangkat, dan itulah yang akan kita lakukan dalam studi kasus ini. Lihat Panduan untuk aplikasi UWP.
Studi kasus: Bookstore2 Studi kasus ini—yang dibangun berdasarkan info yang diberikan dalam kontrol SemanticZoom . Dalam model tampilan, setiap instans penulis kelas mewakili grup buku yang ditulis oleh penulis itu, dan di SemanticZoom, kita dapat melihat daftar buku yang dikelompokkan menurut penulis atau kita dapat memperkecil untuk melihat daftar lompat penulis.
Studi kasus: QuizGame Topik ini menyajikan studi kasus tentang pemindahan aplikasi sampel game kuis peer-to-peer winrt 8.1 yang berfungsi ke aplikasi Windows 10 dan Windows 11 UWP.

Dokumentasi