Porting Windows Phone Silverlight bisnis dan lapisan data ke UWP
Topik sebelumnya adalah Porting untuk I/O, perangkat, dan model aplikasi.
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 yang tersedia untuk aplikasi Platform Windows Universal (UWP), sehingga Anda dapat mengharapkan untuk dapat memindahkan sebagian besar kode ini tanpa perubahan.
Metode asinkron
Salah satu prioritas Platform Windows Universal (UWP) adalah memungkinkan Anda membangun aplikasi yang benar-benar, dan konsisten, responsif. Animasi selalu halus, dan interaksi sentuh seperti panning dan geser seketika dan bebas dari jeda, membuatnya terasa seperti UI direkatkan ke jari Anda. Untuk mencapai hal ini, API UWP apa pun yang tidak dapat menjamin untuk menyelesaikan dalam 50ms telah dibuat asinkron dan namanya diakhiri dengan Asinkron. Utas UI Anda akan segera kembali dari memanggil metode Asinkron , dan pekerjaan akan dilakukan pada utas lain. Mengkonsumsi metode Asinkron dibuat sangat mudah, secara sintetis, menggunakan operator tunggu C#, objek janji JavaScript, dan kelanjutan C++. Untuk informasi selengkapnya, lihat Pemrograman asinkron.
Pemrosesan latar belakang
Aplikasi Windows Phone Silverlight dapat menggunakan objek ScheduledTaskAgent terkelola untuk melakukan tugas saat aplikasi tidak berada di latar depan. Aplikasi UWP menggunakan kelas BackgroundTaskBuilder untuk membuat dan mendaftarkan tugas latar belakang dengan cara yang sama. Anda menentukan kelas yang mengimplementasikan pekerjaan tugas latar belakang Anda. Sistem menjalankan tugas latar belakang Anda secara berkala, memanggil metode Jalankan kelas Anda untuk menjalankan pekerjaan. Di aplikasi UWP, ingatlah untuk mengatur deklarasi Tugas Latar Belakang dalam manifes paket aplikasi. Untuk informasi selengkapnya, lihat Mendukung aplikasi Anda dengan tugas latar belakang.
Untuk mentransfer file data besar di latar belakang, aplikasi Windows Phone Silverlight menggunakan kelas BackgroundTransferService . Aplikasi UWP menggunakan API di namespace Layanan Windows.Networking.BackgroundTransfer untuk melakukan ini. Fitur menggunakan pola serupa untuk memulai transfer, tetapi API baru telah meningkatkan kemampuan dan performa. Untuk informasi selengkapnya, lihat Mentransfer data di latar belakang.
Aplikasi Windows Phone Silverlight menggunakan kelas terkelola di namespace Microsoft.Phone.BackgroundAudio untuk memutar audio saat aplikasi tidak berada di latar depan. UWP menggunakan model aplikasi Windows Phone Store, lihat Audio Latar Belakang dan sampel audio Latar Belakang.
Layanan cloud, jaringan, dan database
Menghosting data dan layanan aplikasi di cloud dimungkinkan menggunakan Azure. Lihat Memulai Layanan Seluler. Untuk solusi yang memerlukan data online dan offline, lihat: Menggunakan sinkronisasi data offline di Layanan Seluler.
UWP memiliki dukungan parsial untuk kelas System.Net.HttpWebRequest , tetapi kelas System.Net.WebClient tidak didukung. Alternatif yang disarankan dan berwawasan ke depan adalah kelas Windows.Web.Http.HttpClient (atau System.Net.Http.HttpClient jika Anda memerlukan kode Anda agar portabel ke platform lain yang mendukung .NET). API ini menggunakan System.Net.Http.HttpRequestMessage untuk mewakili permintaan HTTP.
Aplikasi UWP saat ini tidak menyertakan dukungan bawaan untuk skenario intensif data seperti skenario lini bisnis (LOB). Namun, Anda dapat menggunakan SQLite untuk layanan database transaksi lokal. Untuk informasi selengkapnya, lihat SQLite.
Teruskan URI absolut, bukan URI relatif, ke jenis Windows Runtime. Lihat Meneruskan URI ke Windows Runtime.
Peluncur dan Pemilih
Dengan Peluncur dan Pemilih (ditemukan di namespace Microsoft.Phone.Tasks ), aplikasi Windows Phone Silverlight dapat berinteraksi dengan sistem operasi untuk melakukan operasi umum seperti membuat email, memilih foto, atau berbagi jenis data tertentu dengan aplikasi lain. Cari Microsoft.Phone.Tasks dalam topik Windows Phone Silverlight ke namespace Layanan Windows 10 dan pemetaan kelas untuk menemukan jenis UWP yang setara. Ini berkisar dari mekanisme serupa, yang disebut peluncur dan pemilih, hingga menerapkan kontrak untuk berbagi data antar aplikasi.
Aplikasi Windows Phone Silverlight dapat dimasukkan ke dalam status tidak aktif atau bahkan dikubur saat menggunakan, misalnya, tugas Pemilih foto. Aplikasi UWP tetap aktif dan berjalan saat menggunakan kelas FileOpenPicker.
Monetisasi (mode uji coba dan pembelian dalam aplikasi)
Aplikasi Windows Phone Silverlight dapat menggunakan kelas UWP CurrentApp untuk sebagian besar mode uji coba dan fungsionalitas pembelian dalam aplikasi, sehingga kode tidak perlu di-port. Namun, aplikasi Windows Phone Silverlight memanggil MarketplaceDetailTask.Show untuk menawarkan aplikasi untuk dibeli:
private void Buy()
{
MarketplaceDetailTask marketplaceDetailTask = new MarketplaceDetailTask();
marketplaceDetailTask.ContentType = MarketplaceContentType.Applications;
marketplaceDetailTask.Show();
}
Port kode tersebut untuk memanggil metode UWP RequestAppPurchaseAsync :
private async void Buy()
{
await Windows.ApplicationModel.Store.CurrentApp.RequestAppPurchaseAsync(false);
}
Jika Anda memiliki kode yang mensimulasikan fitur pembelian aplikasi dan pembelian dalam aplikasi untuk tujuan pengujian, maka Anda dapat mentransfernya untuk menggunakan kelas CurrentAppSimulator sebagai gantinya.
Pemberitahuan untuk pembaruan petak atau roti panggang
Pemberitahuan adalah ekstensi model pemberitahuan push untuk aplikasi Windows Phone Silverlight. Saat Anda menerima pemberitahuan dari Windows Push Notification Service (WNS), Anda dapat menampilkan info ke UI dengan pembaruan petak peta atau dengan toast. Untuk porting sisi UI fitur pemberitahuan Anda, lihat Petak peta dan roti panggang.
Untuk detail selengkapnya tentang penggunaan pemberitahuan di aplikasi UWP, lihat Mengirim pemberitahuan toast.
Untuk info dan tutorial tentang menggunakan petak peta, toast, lencana, banner, dan pemberitahuan di aplikasi Windows Runtime menggunakan C++, C#, atau Visual Basic, lihat Bekerja dengan petak peta, lencana, dan pemberitahuan toast.
Penyimpanan (akses file)
Kode Windows Phone Silverlight yang menyimpan pengaturan aplikasi sebagai pasangan kunci-nilai dalam penyimpanan terisolasi mudah di-port. Berikut adalah contoh sebelum dan sesudahnya, pertama-tama versi Windows Phone Silverlight:
var propertySet = IsolatedStorageSettings.ApplicationSettings;
const string key = "favoriteAuthor";
propertySet[key] = "Charles Dickens";
propertySet.Save();
string myFavoriteAuthor = propertySet.Contains(key) ? (string)propertySet[key] : "<none>";
Dan setara dengan UWP:
var propertySet = Windows.Storage.ApplicationData.Current.LocalSettings.Values;
const string key = "favoriteAuthor";
propertySet[key] = "Charles Dickens";
string myFavoriteAuthor = propertySet.ContainsKey(key) ? (string)propertySet[key] : "<none>";
Meskipun subset namespace Layanan Windows.Storage tersedia untuk mereka, banyak aplikasi Windows Phone Silverlight melakukan i/o file dengan kelas IsolatedStorageFile karena telah didukung lebih lama. Dengan asumsi bahwa IsolatedStorageFile sedang digunakan, berikut adalah contoh sebelum dan sesudah menulis dan membaca file, pertama versi Windows Phone Silverlight:
const string filename = "FavoriteAuthor.txt";
using (var store = IsolatedStorageFile.GetUserStoreForApplication())
{
using (var streamWriter = new StreamWriter(store.CreateFile(filename)))
{
streamWriter.Write("Charles Dickens");
}
using (var StreamReader = new StreamReader(store.OpenFile(filename, FileMode.Open, FileAccess.Read)))
{
string myFavoriteAuthor = StreamReader.ReadToEnd();
}
}
Dan fungsionalitas yang sama menggunakan UWP:
const string filename = "FavoriteAuthor.txt";
var store = Windows.Storage.ApplicationData.Current.LocalFolder;
Windows.Storage.StorageFile file = await store.CreateFileAsync(filename, Windows.Storage.CreationCollisionOption.ReplaceExisting);
await Windows.Storage.FileIO.WriteTextAsync(file, "Charles Dickens");
file = await store.GetFileAsync(filename);
string myFavoriteAuthor = await Windows.Storage.FileIO.ReadTextAsync(file);
Aplikasi Windows Phone Silverlight memiliki akses baca-saja ke kartu SD opsional. Aplikasi UWP memiliki akses baca-tulis ke kartu SD. Untuk informasi selengkapnya, lihat Mengakses kartu SD.
Untuk informasi tentang mengakses foto, musik, dan file video di aplikasi UWP, lihat File dan folder di pustaka Musik, Gambar, dan Video.
Untuk informasi selengkapnya, lihat File, folder, dan pustaka.
Topik berikutnya adalah Porting untuk faktor formulir dan UX.