Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Предыдущий раздел был портирование ввода-вывода, устройства и модели приложений.
За пользовательским интерфейсом находятся бизнес-слои и уровни данных. Код в этих уровнях вызывает API операционной системы и .NET Framework (например, фоновую обработку, расположение, камеру, файловую систему, сеть и другие доступ к данным). Подавляющее большинство из них доступны для универсального приложения для платформы Windows (UWP), поэтому вы можете ожидать возможности переноса большей части этого кода без изменений.
Асинхронные методы
Одним из приоритетов универсальной платформы Windows (UWP) является создание приложений, которые действительно и согласованно реагируют. Анимации всегда плавные, и сенсорные взаимодействия, такие как проведение и прокрутка, мгновенны и без задержек, создавая ощущение, что интерфейс буквально приклеен к пальцу. Для этого любой API UWP, который не может гарантировать завершение в пределах 50 мс, сделан асинхронным, и его название дополнено суффиксом Async. Ваш поток пользовательского интерфейса немедленно вернется после вызова асинхронного метода , а работа будет выполняться в другом потоке. Использование метода Асинхронного выполняется очень просто, синтаксически с помощью оператора C# await, объектов обещаний JavaScript и продолжения C++. Дополнительные сведения см. в разделе Асинхронное программирование.
Фоновая обработка
Приложение Windows Phone Silverlight может использовать управляемый объект ScheduledTaskAgent для выполнения задачи, пока приложение не находится на переднем плане. Приложение UWP использует класс BackgroundTaskBuilder для создания и регистрации фоновой задачи аналогичным образом. Вы определяете класс, реализующий работу фоновой задачи. Система периодически выполняет фоновую задачу, вызывая метод Run вашего класса для выполнения работы. В приложении UWP не забудьте установить декларацию фоновых задач в манифесте пакета приложения. Дополнительные сведения см. в статье "Поддержка приложения с фоновыми задачами".
Для передачи больших файлов данных в фоновом режиме приложение Windows Phone Silverlight использует класс BackgroundTransferService . Для этого приложение UWP использует API в Windows.Networking.BackgroundTransfer пространства имен. Функции используют аналогичный шаблон для запуска передачи, но новый API улучшил возможности и производительность. Дополнительные сведения см. в передаче данных в фоновом режиме.
Приложение Windows Phone Silverlight использует управляемые классы в пространстве имен Microsoft.Phone.BackgroundAudio для воспроизведения звука, пока приложение не находится на переднем плане. UWP использует модель приложений Магазина Windows Phone. См. пример фонового аудио и пример фонового аудио .
Облачные службы, сети и базы данных
Размещение данных и служб приложений в облаке возможно с помощью Azure. См. Как начать работу с мобильными сервисами. Для решения, требующего как в онлайн, так и в офлайн режиме данных, см. в статье Использование автономной синхронизации данных в мобильных службах.
UWP имеет частичную поддержку класса System.Net.HttpWebRequest , но класс System.Net.WebClient не поддерживается. Рекомендуемая альтернатива перенаправления — это класс Windows.Web.HttpClient (или System.Net.HttpClient , если требуется переносить код на другие платформы, поддерживающие .NET). Эти API используют System.Net.Http.HttpRequestMessage для представления HTTP-запроса.
В настоящее время приложения UWP не включают встроенную поддержку сценариев с большим объемом данных, таких как бизнес-сценарии. Однако вы можете использовать SQLite для локальных служб баз данных транзакций. Дополнительные сведения см. в разделе SQLite.
Передайте абсолютные URI, а не относительные URI в типы среды выполнения Windows. См. передача URI в среду выполнения Windows.
Запускатели и Выборщики
С помощью средств запуска и выбора (найденных в пространстве имен Microsoft.Phone.Tasks ) приложение Windows Phone Silverlight может взаимодействовать с операционной системой для выполнения распространенных операций, таких как создание электронной почты, выбор фотографии или предоставление общего доступа к определенным типам данных с другим приложением. Найдите
Приложение Windows Phone Silverlight может быть переведено в неактивное состояние или даже в состояние замораживания, например, при использовании задачи выбора фотографий. Приложение UWP остается активным и работает при использовании класса FileOpenPicker .
Монетизация (пробный режим и покупки в приложении)
Приложение Windows Phone Silverlight может использовать класс UWP CurrentApp для большинства функций пробного режима и покупок в приложении, чтобы не нужно было переносить код. Но приложение Windows Phone Silverlight вызывает MarketplaceDetailTask.Show, чтобы предложить приложение для покупки.
private void Buy()
{
MarketplaceDetailTask marketplaceDetailTask = new MarketplaceDetailTask();
marketplaceDetailTask.ContentType = MarketplaceContentType.Applications;
marketplaceDetailTask.Show();
}
Для портирования этого кода для вызова метода UWP RequestAppPurchaseAsync:
private async void Buy()
{
await Windows.ApplicationModel.Store.CurrentApp.RequestAppPurchaseAsync(false);
}
Если у вас есть код, который имитирует покупки приложения и функции покупок в приложении для тестирования, вы можете перенести его на использование класса CurrentAppSimulator.
Уведомления об обновлениях плиток или тостов
Уведомления — это расширение модели push-уведомлений для приложений Windows Phone Silverlight. При получении уведомления из службы push-уведомлений Windows (WNS) можно передать сведения в пользовательский интерфейс с помощью обновления плитки или всплывающих элементов. Сведения о переносе интерфейса функций уведомлений см. раздел плитки и всплывающие уведомления.
Дополнительные сведения об использовании уведомлений в приложении UWP см. в отправке тост-уведомлений.
Сведения и руководства по использованию плиток, уведомлений всплывающего типа, значков, баннеров и уведомлений в приложении среды выполнения Windows с помощью C++, C# или Visual Basic см. в Работа с плитками, значками и уведомлениями всплывающего типа.
Хранилище (доступ к файлам)
Код Windows Phone Silverlight, в который хранятся параметры приложения в виде пар "ключ-значение" в изолированном хранилище, легко переносится. Приведен пример до и после, сначала версия 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>";
И эквивалент 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>";
Хотя для них доступно подмножество пространства имен Windows.Storage, многие приложения Windows Phone Silverlight выполняют операции ввода-вывода с помощью класса IsolatedStorageFile, так как он поддерживается дольше. Предположим, что используется IsolatedStorageFile , ниже приведен пример написания и чтения файла, сначала версия 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();
}
}
И те же функции с помощью 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);
Приложение Windows Phone Silverlight имеет доступ только для чтения к необязательной SD-карте. Приложение UWP имеет доступ на чтение и запись к SD-карте. Дополнительные сведения см. в разделе Доступ кSD-карте.
Сведения о доступе к фотографиям, музыке и видеофайлам в приложении UWP см. в файлах и папках в библиотеках музыки, рисунков и видео.
Дополнительные сведения см. в Файлах, Папках и Библиотеках.
Следующая тема — Портирование для форм-фактора и пользовательского интерфейса.