Pindah dari Windows Phone Silverlight ke UWP

Jika Anda seorang pengembang dengan aplikasi Windows Phone Silverlight, maka Anda dapat memanfaatkan set keterampilan dan kode sumber Anda dalam perpindahan ke Windows 10. Dengan Windows 10, Anda dapat membuat aplikasi Platform Windows Universal (UWP), yang merupakan satu paket aplikasi yang dapat diinstal pelanggan Anda ke setiap jenis perangkat. Untuk latar belakang lebih lanjut tentang Windows 10, aplikasi UWP, dan konsep kode adaptif dan UI 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 ketinggalan pada fitur seluler yang diperkenalkan di Windows Phone 8.1, dan melampauinya untuk menggunakan Platform Windows Universal (UWP) yang model aplikasi dan kerangka kerja UI-nya 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 menciptakan kemungkinan baru dengan data bersama, barang habis pakai yang dibeli, dan sebagainya. Untuk informasi selengkapnya tentang fitur baru, lihat Apa yang baru bagi 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 rekan 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 terhadap versi .NET Framework dan subset kecil API Windows Runtime. Karena Anda menggunakan Extensible Application Markup Language (XAML) di aplikasi Windows Phone Silverlight, 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 di aplikasi UWP. Anda mungkin terkejut melihat 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 saat yang tepat untuk memindahkan Windows Phone Silverlight Anda dan meminta 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, menggunakan lebih sedikit memori, dan menggunakan lebih sedikit baterai daripada rekan MSIL mereka.

Panduan port ini akan berfokus pada XAML tetapi, atau, Anda dapat membangun 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, Maka 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 bentuk

Opsi yang Anda pilih dari bagian sebelumnya akan menentukan berbagai 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 bentuk yang sebelumnya tidak didukung, uji UI Anda pada faktor bentuk 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 dengan 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 langsung memanipulasi elemen UI. 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), pasti ada kode yang ada di aplikasi Anda yang melakukan fungsi model tampilan dan model data. Lihat kode model menggunakan jenis di namespace kerangka kerja UI. Model tampilan dan kode 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 banyak 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 .NET atau Windows Runtime API. 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 di 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 canggih yang dapat dipanggil aplikasi Universal Windows untuk layanan mulai dari pemberitahuan sederhana untuk pembaruan petak peta langsung hingga jenis skalabilitas pengangkatan 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 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 membuat bagian data, bisnis, dan UI aplikasi Anda terpisah satu sama lain. Bahkan dalam UI dapat menjaga status dan perilaku tetap terpisah, dan dapat diuji secara terpisah, dari visual. Dengan MVVM, Anda dapat menulis data dan logika bisnis sekali dan menggunakannya di semua perangkat apa pun UI-nya. Kemungkinan Anda akan dapat menggunakan kembali banyak model tampilan dan melihat bagian di seluruh perangkat juga.

Satu atau dua pengecualian untuk aturan

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

Pada tingkat fitur, kabar baiknya adalah bahwa 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 tersebut
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 layanan dan kelas Topik ini menyediakan pemetaan API Windows Phone Silverlight yang komprehensif ke setara UWP mereka.
Memindahkan 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 membaca hingga akhir panduan porting ini, tetapi kami juga memahami bahwa Anda ingin menempa ke depan dan sampai ke tahap di mana 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 obat dalam topik ini mungkin berguna bagi Anda pada tahap ini, meskipun itu 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 dan sintesis ucapan), (geo)lokasi, dan modalitas input seperti sentuhan, mouse, keyboard, dan pena.
Porting lapisan bisnis dan data Di balik UI Anda adalah lapisan bisnis dan data Anda. Kode dalam lapisan ini memanggil sistem operasi dan API .NET Framework (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 banyak kode ini tanpa perubahan.
Porting untuk faktor formulir dan UX Aplikasi Windows berbagi tampilan dan nuansa umum di seluruh PC, perangkat seluler, dan berbagai jenis perangkat lainnya. Antarmuka pengguna, input, dan pola interaksi sangat mirip, dan pengguna yang bergerak di antara 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 UWP Windows 10. Dengan Windows 10, Anda dapat membuat satu paket aplikasi 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