Bagikan melalui


Pindah dari Windows Phone Silverlight ke UWP

Jika Anda adalah pengembang dengan aplikasi Windows Phone Silverlight, maka Anda dapat memanfaatkan set keterampilan dan kode sumber Anda dengan baik saat pindah 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 Platform Windows Universal (UWP).

Saat Anda memindahkan aplikasi Windows Phone Silverlight ke aplikasi Windows 10, Anda akan dapat mengejar fitur seluler yang diperkenalkan di Windows Phone 8.1, dan melampauinya untuk menggunakan Platform Windows Universal (UWP) yang model aplikasi dan kerangka kerja antarmuka penggunanya bersifat universal di semua perangkat Windows 10. Itu memungkinkan untuk mendukung PC, tablet, ponsel, dan sejumlah besar jenis perangkat lainnya, dari satu basis kode dan dengan satu paket aplikasi. Dan itu akan mengalikan audiens potensial aplikasi Anda dan membuat kemungkinan baru dengan data bersama, membeli bahan habis pakai, dan sebagainya. Untuk informasi selengkapnya tentang fitur baru, lihat Apa yang baru untuk pengembang di Windows 10.

Jika Anda memilih untuk, versi Windows Phone Silverlight aplikasi Anda dan versi Windows 10 keduanya dapat tersedia untuk pelanggan secara bersamaan.

Catatan Panduan ini dirancang untuk membantu Anda memindahkan aplikasi Windows Phone Silverlight ke Windows 10 secara manual. Selain menggunakan informasi dalam panduan ini untuk memindahkan aplikasi, Anda dapat mencoba pratinjau pengembang Silverlight Bridge Mobilize.NET untuk membantu mengotomatiskan proses porting. Alat ini menganalisis kode sumber aplikasi Anda dan mengonversi referensi ke kontrol dan API Windows Phone Silverlight ke mitra UWP mereka. Karena alat ini masih dalam pratinjau pengembang, alat ini belum menangani semua skenario konversi. Namun, sebagian besar pengembang harus dapat menghemat waktu dan upaya dengan memulai dengan alat ini. Untuk mencoba pratinjau pengembang, kunjungi situs web Mobilize.NET.

XAML dan .NET, atau HTML?

Windows Phone Silverlight memiliki kerangka kerja antarmuka pengguna XAML berdasarkan Silverlight 4.0, dan Anda memprogram versi .NET Framework dan subset kecil API Windows Runtime. Karena Anda menggunakan Extensible Application Markup Language (XAML) di aplikasi Windows Phone Silverlight Anda, kemungkinan XAML akan menjadi pilihan Anda untuk versi Windows 10 Anda karena sebagian besar pengetahuan dan pengalaman Anda akan ditransfer, seperti halnya banyak kode sumber dan pola perangkat lunak yang Anda gunakan. Bahkan markup dan desain UI Anda dapat di-port dengan mudah. Anda akan menemukan API terkelola, markup XAML, kerangka kerja UI, dan alat yang semuanya sangat akrab, dan Anda dapat menggunakan C++, C#, atau Visual Basic bersama dengan XAML dalam aplikasi UWP. Anda mungkin terkejut dengan seberapa mudah prosesnya, bahkan jika ada tantangan atau dua di sepanjang jalan.

Lihat Peta strategi untuk aplikasi Platform Windows Universal (UWP) menggunakan C# atau Visual Basic.

Catatan Windows 10 mendukung lebih banyak .NET Framework daripada aplikasi Windows Phone Store. Misalnya, Windows 10 memiliki beberapa namespace System.ServiceModel.* serta System.Net, System.Net.NetworkInformation, dan System.Net.Sockets. Jadi, sekarang adalah waktu yang tepat untuk mem-port Windows Phone Silverlight Anda dan memiliki kode .NET Anda hanya mengkompilasi dan bekerja pada platform baru. Lihat Namespace layanan dan pemetaan kelas. Alasan bagus lainnya untuk mengkompilasi ulang kode sumber .NET yang ada menjadi aplikasi Windows 10 adalah Anda akan mendapat manfaat dari .NET Native, yang merupakan teknologi kompilasi sebelumnya yang mengonversi MSIL menjadi kode mesin yang dapat dijalankan secara asli. Aplikasi .NET Native dimulai lebih cepat, gunakan lebih sedikit memori, dan gunakan lebih sedikit baterai daripada rekan-rekan MSIL mereka.

Panduan porting ini akan berfokus pada XAML tetapi, atau, Anda dapat membuat aplikasi yang setara secara fungsional—memanggil banyak API Windows Runtime yang sama—menggunakan JavaScript, Cascading Style Sheets (CSS), dan HTML5 bersama dengan Pustaka Windows untuk JavaScript. Meskipun kerangka kerja UI Windows Runtime XAML dan HTML berbeda satu sama lain, mana pun yang Anda pilih akan bekerja secara universal di berbagai perangkat Windows.

Menargetkan keluarga perangkat seluler atau universal

Salah satu opsi yang Anda miliki adalah memindahkan aplikasi ke aplikasi yang menargetkan keluarga perangkat universal. Dalam hal ini, aplikasi dapat diinstal ke berbagai perangkat terluas. Jika aplikasi Anda memanggil API yang hanya diimplementasikan dalam keluarga perangkat seluler, Anda dapat menjaga panggilan tersebut dengan kode adaptif. Atau, Anda dapat memilih untuk memindahkan aplikasi ke aplikasi yang menargetkan keluarga perangkat seluler dalam hal ini Anda tidak perlu menulis 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 itu 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, karena aplikasi Anda akan berjalan pada faktor formulir yang sebelumnya tidak didukung, 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 contohnya dalam praktiknya dalam studi kasus Bookstore2 .

Mendekati porting layer-by-layer

  • 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, banyak 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 (termasuk API untuk akses data). Dan sebagian besar dari mereka tersedia untuk aplikasi UWP, sehingga Anda dapat mengharapkan untuk dapat memindahkan sebagian besar kode ini tanpa perubahan. Namun, ingat: model tampilan adalah model, atau abstraksi, dari tampilan. Model tampilan menyediakan status dan perilaku UI, sementara tampilan itu sendiri menyediakan visual. Untuk alasan ini, UI apa pun yang Anda beradaptasi dengan berbagai faktor bentuk yang memungkinkan UWP untuk dijalankan kemungkinan akan memerlukan perubahan model tampilan yang sesuai. Untuk jaringan dan panggilan layanan cloud, Anda biasanya memiliki opsi antara menggunakan API .NET atau Windows Runtime. Untuk faktor-faktor yang terlibat dalam membuat keputusan tersebut, lihat Layanan cloud, jaringan, dan database.
  • 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 Universal Windows 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 UWP 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—dan menghindari beberapa masalah perbedaan API UI antar platform—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.

Satu atau dua pengecualian untuk aturan

Saat Anda membaca panduan port ini, Anda dapat merujuk ke Namespace layanan dan pemetaan kelas. Pemetaan yang cukup mudah adalah aturan umum, dan tabel pemetaan namespace dan kelas menjelaskan pengecualian apa pun.

Pada tingkat fitur, kabar baiknya adalah bahwa ada sangat sedikit yang tidak didukung di UWP. Sebagian besar set keterampilan dan kode sumber Anda diterjemahkan dengan sangat baik ke aplikasi UWP, karena Anda akan membaca di sisa panduan porting ini. Tapi, berikut adalah beberapa fitur Windows Phone Silverlight yang mungkin telah Anda gunakan yang tidak setara dengan UWP.

Fitur yang tidak setara dengan UWP Dokumentasi Windows Phone Silverlight untuk fitur ini
Microsoft XNA. Secara umum, Microsoft DirectX menggunakan C++ adalah penggantinya. Lihat Mengembangkan game dan interop DirectX dan XAML. Pustaka Kelas Kerangka Kerja XNA
Aplikasi lensa Lensa untuk Windows Phone 8

 

Topik Deskripsi
Pemetaan namespace dan kelas Topik ini menyediakan pemetaan komprehensif API Windows Phone Silverlight ke setara UWP mereka.
Porting proyek Anda memulai proses porting dengan membuat proyek Windows 10 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 Windows Phone Silverlight ke aplikasi UWP. Anda akan menemukan bahwa bagian besar markup Anda kompatibel setelah Anda memperbarui referensi kunci Sumber Daya sistem, mengubah beberapa nama jenis elemen, dan mengubah "clr-namespace" menjadi "using".
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.
Porting bisnis dan lapisan data Di balik UI Anda adalah lapisan bisnis dan data Anda. Kode dalam lapisan ini memanggil sistem operasi dan .NET Framework API (misalnya, pemrosesan latar belakang, lokasi, kamera, sistem file, jaringan, dan akses data lainnya). Sebagian besar dari mereka tersedia untuk aplikasi UWP, sehingga Anda dapat mengharapkan untuk dapat memindahkan sebagian besar kode ini tanpa perubahan.
Porting untuk faktor formulir dan UX Aplikasi Windows berbagi tampilan dan nuansa umum di seluruh PC, perangkat seluler, dan banyak jenis perangkat lainnya. Antarmuka pengguna, input, dan pola interaksi sangat mirip, dan pengguna yang berpindah antar perangkat akan menyambut pengalaman yang akrab.
Studi kasus: Bookstore1 Topik ini menyajikan studi kasus tentang porting aplikasi Windows Phone Silverlight yang sangat sederhana ke aplikasi Windows 10 UWP. Dengan Windows 10, Anda dapat membuat paket aplikasi tunggal yang dapat diinstal pelanggan Anda ke berbagai perangkat, dan itulah yang akan kami lakukan dalam studi kasus ini.
Studi kasus: Bookstore2 Studi kasus ini—yang dibangun berdasarkan info yang diberikan di Bookstore1—dimulai dengan aplikasi Windows Phone Silverlight yang menampilkan data yang dikelompokkan dalam LongListSelector. Dalam model tampilan, setiap instans penulis kelas mewakili grup buku yang ditulis oleh penulis tersebut, dan di LongListSelector, kita dapat melihat daftar buku yang dikelompokkan menurut penulis atau kita dapat memperkecil untuk melihat daftar lompat penulis.

Dokumentasi

Artikel majalah

Presentasi

  • Kisah Membawa Musik Nokia dari Windows Phone ke Windows 8