Ознакомление с разработкой в среде Visual Studio 2013 клиентских приложений, взаимодействующих с мобильными сервисами Windows Azure; push-нотификациями.
Мобильные сервисы на платформе Microsoft Azure - одна из наиболее современных разовидностей приложений, которые могут быть разработаны в среде Visual Studio. Мобильный сервис на платформе Azure - это серверное приложение, управляющее облачной базой данных, используемой им для хранения информации, поступающей от мобильного приложения с мобильного устройства. Схема работы цепочки "мобильное приложение - мобильный сервис" следующая. Пользователь (мобильный клиент) на своем смартфоне может запускать мобильное приложение, которое взаимодействует с облачным мобильным сервисом в облаке Azure. Мобильный клиент вводит необходимую информацию в экранные формы на смартфоне и обращается к мобильному сервису, сохраняющему эту информацию в облачной базе данных. После этого возможно обращение в облако и просмотр полученной облачной базы данных средствами платформы Microsoft Azure. Подобная схема полезна во многих областях: например, посещение пациента врачом, который производит осмотр больного и передает полученные данные с помощью своего смартфона в облачную базу данных. К этой облачной базе данных, в свою очередь, могут оперативно обращаться другие врачи и руководство клиникой и т.д. В этом отношении использование облачных вычислений на платформе Azure дает огромные возможности, как с точки зрения объема хранимой в облаке информации, так и с точки зрения удобства ее использования.
В новой версии платформы Azure [28] поддерживаются следующие популярные мобильные платформы: Windows Phone 8 / 8.1; iOS; Android.
Прежде чем рассмотреть разработку мобильных приложений и мобильных сервисов, уточним предварительные требования и действия (pre-requisites) для подобной разработки. Прежде всего, для разработки необходима среда Visual Studio 2013, в ее текущей версии, со всеми обновлениями. На момент написания курса (июнь 2014) разработка мобильных приложений и сервисов поддержана в обновлении среды VS 2013 - Visual Studio 2013 Update 2 (выпущено 14 мая 2014 г.). В обновление включены необходимые типы проектов и инструменты для разработки мобильных сервисов и мобильных приложений. Инсталляция обновления Update 2 к Visual Studio 2013 на компьютере среднего класса (6 Гб оперативной памяти, двухъядерный 64-разрядный процессор Intel Core i5 3210M 2 * 2.5 GHz x64, ОС Windows 8) - требует порядка 10-12 часов вместе со скачиванием через модем 3G. При проверке правильности инсталляции данного обновления на компьютере следует учитывать, что оно не визуализируется отдельной строкой в разделе Программы и компоненты: в нем присутствует только строка, касающаяся самой среды Visual Studio.
Кроме обновления среды, необходимо инсталлировать комплекс инструментов для создания мобильных приложений, соответствующий Вашей мобильной платформе. Для Windows Phone - это Windows Phone SDK. Имеются также соответствующие SDK для других мобильных платформ - iOS и Android. Для отладки мобильных приложений в Windows Phone SDK включены эмуляторы мобильных телефонов. Приблизительный объем скачивания из сети при инсталляции Windows Phone SDK- 1.2 гигабайта. Для инсталляции вместе со скачиванием требуется 15-20 часов.
Таким образом, подготовка компьютера к разработке мобильных сервисов и приложений, даже при условии что среда VS 2013 уже инсталлирована, требует нескольких суток. Все это необходимо учитывать ка для планирования своего личного рабочего времени, так и для планирования командных проектов по разработке ПО.
На рис 15.1 изображено завершение инсталляции Windows Phone SDK.
(рис 15.1) Завершение инсталляции Windows Phone SDK
Как видно из сообщений, выданных в окне завершения инсталляции, эмуляторы мобильных телефонов, входящие в состав Windows Phone SDK, оказались недоступными из-за отключенной виртуализации оборудования.
В курсе [28] рассмотрен пример разработки в среде Visual Studio мобильного сервиса для Azure и мобильного приложения для Windows Phone 7.
В данном разделе рассмотрим разработку мобильного сервиса для новой версии Azure (2014) в новой версии среды VS 2013, Update 2 и соответствующего мобильного приложения для Windows Phone 8.x.
В качестве основы используем краткое руководство и пример мобильного сервиса, опубликованные фирмой Microsoft на странице [32] в облаке Azure. Используем также предоставляемые на этих же страницах заготовки для мобильных проектов, включая файлы исходного кода, конфигурации и т.д. Интересно отметить, что, благодаря входу в облако, эти информационные страницы настроены на конкретный рассматриваемый проект, со своими специфическими именами компонент, что очень удобно. Например, имя проекта мобильного приложения saf_mobile при визуализации страниц обучающего курса и при использовании исходного кода оказывается уже вставленным в соответствующие точки в коде и в документации. Подобный подход можно охарактеризовать современным термином user-centric computing (вычисления, ориентированные на конкретного пользователя; настройка вычислений на пользователя и его рабочий контекст).
Прежде всего, создадим в облаке"пустой" мобильный сервис (пока без реализации) [28] под именем ). Напомню, что вместе с мобильным сервисом в облаке создается (в том же регионе дата-центов) облачная база данных и, если требуется, также сервер базы данных.
(рис 15.2) Созданный в облаке Azure пустой мобильный сервис saf-mobile
Кликнув по имени мобильного сервиса [28], переходим к облачной странице для поддержки разработки мобильных сервисов (выберем в качестве платформы .
(рис 15.3) Облачная страница Azure для поддержки разработки мобильных сервисов для платформы Windows Phone 8
Выбрав вариант ").
(рис 15.4) Облачная страница Azure со ссылкой на мобильный проект и рекомендациями относительно следующих шагов
Первый шаг - инсталляцию среды VS 2013 с обновлением Update 2 мы уже выполнили.
Скачиваем мобильный проект и обнаруживаем, что для его открытия в VS 2013 необходима инсталляция Windows Phone SDK.
Не проходит и суток, как мы инсталлируем Windows Phone SDK и теперь можем открыть мобильный проект.
Выбираем в Solution Explorer проект мобильного сервиса saf_mobileService, выполняем его сборку и пробный запуск (в виде сайта) на локальном компьютере. Мобильный сервис реализует визуализацию на странице стилизованного лица в специальном окне, которое реагирует на клик по любой точке окна изменением выражения "лица" ("криком").
На рис 15.5 показана структура решения saf_mobile с проектом мобильного сервиса saf_mobileService. Другая компонента решения - проект с соответствующим мобильным приложением.
(рис 15.5) Структура мобильного решения saf_mobile с проектом мобильного сервиса saf_mobileService
Выполняем компиляцию мобильного сервиса, выбрав его как основной проект с помощью контекстного меню, затем в среде нажимаем F5 для сборки.
Теперь приступаем к публикации собранного мобильного сервиса. В контекстном меню проекта выбираем пункт ).
(рис 15.6) Окно с опциями публикации мобильного сервиса в облаке
Напомню, что, как и при публикации обычного сервиса в облаке (см. лекцию 13), среда Visual Studio 2013 должна быть вызвана от имени администратора.
Перед публикацией мобильного сервиса необходимо выбрать ). Может быть выбран вариант создания нового мобильного сервиса или использования существующего мобильного сервиса.
(рис 15.7) Выбор профиля публикации мобильного сервиса
Для выбора профиля мобильного сервиса необходим вход в облако. Входим в него через то же самое окно, открытое в среде, и получаем возможность выбрать один из существующих мобильных сервисов для публикации. Это уже созданный нами "пустой" мобильный сервис ).
(рис 15.8) Выбор имени существующего мобильного сервиса saf-mobile для публикации
Выбираем имя сервиса, нажимаем ). URL-адрес, под которым новый мобильный сервис будет доступен в облаке, следующий: http://saf-mobile.azure-mobile.net.
(рис 15.9) Визуализация подробной информации о выбранном для публикации мобильном сервисе
При выборе профиля для мобильного сервиса используем в качестве основы для профиля XML-файл с именем saf-mobile Publish Settings, сгенерированный средой для нашего мобильного сервиса. Если использовать установки профиля по умолчанию, то, как показал мой опыт, публикация не проходит: не открывается сетевой сокет для переписи файлов мобильного сервиса на компьютер дата-центра, реализующий облако. Полностью XML-файл профиля здесь не приводится, ввиду излишнего обилия технических деталей. Предлагаю читателям исследовать его самостоятельно при экспериментах с мобильными сервисами. Ссылку на заготовку для файла профиля мобильного сервиса можно найти на облачной странице [32].
Нажимаем Publish. Начинается публикация мобильного сервиса.
Публикация мобильного сервиса подробно протоколируется средой в специальных вкладках. На вкладке ).
(рис 15.10) Вкладка Web Publishing Activity
На вкладке Output сохраняется подробный протокол публикации. Для иллюстрации приводим его содержимое. Это дает представление о составе мобильного сервиса и специфике его публикации.
1>------ Build started: Project: saf_mobileService, Configuration: Release Any CPU ------
1> Восстановление пакетов NuGet:
1> Чтобы предотвратить загрузку пакетов NuGet во время выполнения сборки,
в Visual Studio откройте диалоговое окно "Параметры",
выберите узел "Диспетчер пакетов"
и снимите флажок "Allow NuGet to download missing packages".
1> Все пакеты, перечисленные в packages.config, уже установлены.
1> saf_mobileService -> C:\Users\saf\Documents\Visual Studio 2013\Projects\saf-mobile\
saf_mobileService\bin\saf_mobileService.dll
2>------ Publish started: Project: saf_mobileService, Configuration: Release Any CPU ------
2>Transformed Web.config using
C:\Users\saf\Documents\Visual Studio 2013\Projects\saf-mobile\saf_mobileService\
Web.Release.config into obj\Release\TransformWebConfig\transformed\Web.config.
2>Auto ConnectionString Transformed obj\Release\
TransformWebConfig\transformed\Web.config into obj\Release\CSAutoParameterize\
transformed\Web.config.
2>Copying all files to temporary location below for package/publish:
2>obj\Release\Package\PackageTmp.
2>Start Web Deploy Publish the Application/package to
https://waws-prod-bay-015.publish.azurewebsites.windows.net/msdeploy.axd?site=mobile$saf-mobile ...
2>Добавляются списки управления доступом для пути (mobile$saf-mobile)
2>Добавляются списки управления доступом для пути (mobile$saf-mobile)
2>Обновляется файл (mobile$saf-mobile\bin\Microsoft.Data.Edm.dll).
2>Добавляется файл (mobile$saf-mobile\bin\Microsoft.Data.OData.dll).
2>Добавляется файл (mobile$saf-mobile\bin\Microsoft.Owin.dll).
2>Добавляется файл (mobile$saf-mobile\bin\Microsoft.Owin.Host.SystemWeb.dll).
2>Добавляется файл (mobile$saf-mobile\bin\Microsoft.Owin.Security.ActiveDirectory.dll).
2>Добавляется файл (mobile$saf-mobile\bin\Microsoft.Owin.Security.Cookies.dll).
2>Добавляется файл (mobile$saf-mobile\bin\Microsoft.Owin.Security.dll).
2>Добавляется файл (mobile$saf-mobile\bin\Microsoft.Owin.Security.Facebook.dll).
2>Добавляется файл (mobile$saf-mobile\bin\Microsoft.Owin.Security.Google.dll).
2>Добавляется файл (mobile$saf-mobile\bin\Microsoft.Owin.Security.Jwt.dll).
2>Добавляется файл (mobile$saf-mobile\bin\Microsoft.Owin.Security.MicrosoftAccount.dll).
2>Добавляется файл (mobile$saf-mobile\bin\Microsoft.Owin.Security.OAuth.dll).
2>Добавляется файл (mobile$saf-mobile\bin\Microsoft.Owin.Security.Twitter.dll).
2>Добавляется файл (mobile$saf-mobile\bin\Microsoft.ServiceBus.dll).
2>Добавляется файл (mobile$saf-mobile\bin\Microsoft.WindowsAzure.Mobile.Service.dll).
2>Добавляется файл (mobile$saf-mobile\bin\Microsoft.WindowsAzure.Mobile.Service.Entity.dll).
2>Добавляется файл (mobile$saf-mobile\bin\Microsoft.WindowsAzure.Mobile.Service.Tables.dll).
2>Добавляется файл (mobile$saf-mobile\bin\Newtonsoft.Json.dll).
2>Добавляется файл (mobile$saf-mobile\bin\Owin.dll).
2>Добавляется файл (mobile$saf-mobile\bin\RazorEngine.dll).
2>Добавляется файл (mobile$saf-mobile\bin\saf_mobileService.dll).
2>Добавляется файл (mobile$saf-mobile\bin\System.Net.Http.Formatting.dll).
2>Добавляется файл (mobile$saf-mobile\bin\System.Spatial.dll).
2>Добавляется файл (mobile$saf-mobile\bin\System.Web.Http.dll).
2>Добавляется файл (mobile$saf-mobile\bin\System.Web.Http.OData.dll).
2>Добавляется файл (mobile$saf-mobile\bin\System.Web.Http.Owin.dll).
2>Добавляется файл (mobile$saf-mobile\bin\System.Web.Http.Tracing.dll).
2>Добавляется файл (mobile$saf-mobile\bin\System.Web.Razor.dll).
2>Добавляется файл (mobile$saf-mobile\Global.asax).
2>Добавляется файл (mobile$saf-mobile\packages.config).
2>Добавляется файл (mobile$saf-mobile\Web.config).
2>Добавляются списки управления доступом для пути (mobile$saf-mobile)
2>Добавляются списки управления доступом для пути (mobile$saf-mobile)
2>Publish Succeeded.
2>Site was published successfully http://saf-mobile.azure-mobile.net/
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
========== Publish: 1 succeeded, 0 failed, 0 skipped ==========
Наконец, публикация завершена. В следующий момент среда автоматически запускает браузер, в котором визуализируется Web-страница опубликованного в облаке мобильного сервиса (рис 15.11).
(рис 15.11) Web-страница опубликованного в облаке мобильного сервиса
В качестве мобильного приложения используем предоставленный в облаке пример решения saf-mobile, содержащего два проекта: уже опубликованный нами мобильный сервис saf_mobileService (п. 15.3), а также заготовку мобильного приложения saf_mobile.
Следуя рекомендациям облака [32], прежде всего инсталлируем внешние программные пакеты, используемые мобильным приложением. Как Вы уже знаете из предыдущих лекций, для управления внешними программными пакетами в среде VS 2013 реализована утилита NuGet. С его помощью находим в сети пакет для разработки мобильных приложений Microsoft.WindowsAzure.MobileServices. Этот пакет обеспечивает связь между клиентским мобильным приложением и мобильным сервисом.
На рис 15.12 изображен ход поиска и инсталляции данного пакета.
(рис 15.12) Поиск и инсталляция с помощью утилиты NuGet пакета для разработки мобильных приложений WindowsAzure.MobileServices
На рис 15.13 изображен результат инсталляции пакета WindowsAzure.MobileServices.
(рис 15.13) Пакет WindowsAzure.MobileServices инсталлирован
Ниже - фрагмент кода мобильного приложения (его файла App.Xaml.cs), который обеспечивает обращение из клиентского мобильного приложения к мобильному сервису:
public static MobileServiceClient MobileService =
new MobileServiceClient(
"https://saf-mobile.azure-mobile.net/",
"…"
// пароль доступа мобильного приложения к мобильному сервису опущен
);
Данное мобильное приложение обращается к таблице текущих планов и дел TodoItems, поддерживаемой мобильным сервисом в виде облачной базы данных Azure.
С помощью GUI мобильного приложения saf_mobile в таблицу TodoItems могут быть введены новые строки. Затем таблица может просматриваться через облако.
Для обращения к таблице из мобильного приложения модифицируем его код, вставив в основной метод Application_Launching (запуск мобильного приложения) следующий код:
// Code to execute when the application is launching (eg, from Start)
// This code will not execute when the application is reactivated
private async void Application_Launching(object sender, LaunchingEventArgs e)
{
TodoItem item = new TodoItem { Text = "Awesome item", Complete = false };
await App.MobileService.GetTable<TodoItem>().InsertAsync(item);
}
Модифицировав код клиентского мобильного приложения, выполняем его сборку, выбрав пункт Build из контекстного меню.
Теперь запускаем мобильный сервис и мобильное приложение нажатием F5.
Мобильный сервис запускается, как показано на рис 15.11.
Результат выбора на странице мобильного сервиса пункта . Визуализируется структура облачной базы данных TodoList и команды протокола HTTP (GET, POST и др.), которые служат для отправки информации с клиента на сервер.
(рис 15.14) Визуализация мобильным сервисом структуры облачной базы данных
К сожалению, на нашем компьютере не запускается целиком пара "мобильное приложение - мобильный сервис", что позволяло бы,наблюдать на локальной машине их взаимосвязь. Причина в том, что компьютер не поддерживает аппаратную технологию Hyper-V (виртуализации оборудования). На компьютерах с аппаратной поддержкой технологии Hyper-V эмуляторы мобильных телефонов запускаются в свотх виртуальных машинах. На остальных компьютерах разработка мобильных приложений в среде VS 2013 Update 2 возможна, однако отладка и запуск мобильных приложений возможны только на реальных мобильных телефонах платформы Windows Phone 8 / 8.1.
Возможна обратная связь мобильного сервера с мобильным клиентом в виде так называемых ).
(рис 15.15) Примеры push-уведомлений от сервера на экране мобильного устройства
Необходимые настройки сервера на отправку клиенту push-уведомлений могут быть выполнены в облаке, в пункте облачного меню ).
(рис 15.16) Настройка мобильного сервиса в облаке на отправку клиенту push-уведомлений
Среда Visual Studio 2013 (Update 2), в совокупости с Windows Phone SDK, обеспечивает разработку и отладку мобильных сервисов и связанных с ним мобильных приложений. Предоставляются шаблоны проектов мобильных приложений и мобильных сервисов, а также подробные обучающие курсы (tutorials), тексты и исходные коды которых при работе с ними в облаке настраиваются на конкретного пользователя и его конкретный проект, в соответствии с принципами user-centric computing. Если компьютер поддерживает технологию Hyper-V, то обеспечивается также отладка мобильных приложений на эмуляторе мобильного телефона, иначе она возможна только на реальном телефоне с Windows Phone 8 / 8.1. Следует подчеркнуть удобство среды и облака для совместной деятельности по публикации в облаке мобильных сервисов и их взаимодействия с мобильными приложениями. Удобен также механизм push-уведомлений, которые мобильный сервис может посылать мобильному клиенту.
| - утилита интегрированной среды VS 2013 для поиска и инсталляции внешних программных пакетов. | |
| - сообщения и экранные формы, отправляемые мобильным сервером мобильным клиентам. | |
| - инструментальный комплекс для разработки и отладки мобильных приложений и мобильных сервисов для платформы Windows Phone. | |
| - клиентское приложение, выполняемое на мобильном устройстве и взаимодействующее с облачным мобильным сервисом и обслуживаемым им облачной базой данных. | |
| - облачный сервис, обеспечивающий взаимодействие с клиентскими мобильными приложениями. |
Среда Visual Studio 2013 (Update 2), в совокупости с Windows Phone SDK, обеспечивает разработку и отладку мобильных сервисов и связанных с ним мобильных прлиожений. Предоставляются шаблоны проектов мобильных приложений и мобильных сервисов, а также подробные обучающие курсы (tutorials). Если компьютер поддерживает технологию Hyper-V, то обеспечивается также отладка мобильных приложений на эмуляторе мобильного телефона, иначе она возможна только на реальном телефоне с Windows Phone 8 / 8.1. Следует подчеркнуть удобство среды и облака для совместной деятельности по публикации в облаке. Удобен также механизм push-уведомлений, которые мобильный сервис может посылать мобильному клиенту.
Презентация к данной лекции: VS_2013_Course_15.pptx.
Ознакомление с разработкой в среде Visual Studio 2013 клиентских приложений, взаимодействующих с мобильными сервисами Windows Azure; push-нотификациями.
Мобильные сервисы на платформе Microsoft Azure - одна из наиболее современных разовидностей приложений, которые могут быть разработаны в среде Visual Studio. Мобильный сервис на платформе Azure - это серверное приложение, управляющее облачной базой данных, используемой им для хранения информации, поступающей от мобильного приложения с мобильного устройства. Схема работы цепочки "мобильное приложение - мобильный сервис" следующая. Пользователь (мобильный клиент) на своем смартфоне может запускать мобильное приложение, которое взаимодействует с облачным мобильным сервисом в облаке Azure. Мобильный клиент вводит необходимую информацию в экранные формы на смартфоне и обращается к мобильному сервису, сохраняющему эту информацию в облачной базе данных. После этого возможно обращение в облако и просмотр полученной облачной базы данных средствами платформы Microsoft Azure. Подобная схема полезна во многих областях: например, посещение пациента врачом, который производит осмотр больного и передает полученные данные с помощью своего смартфона в облачную базу данных. К этой облачной базе данных, в свою очередь, могут оперативно обращаться другие врачи и руководство клиникой и т.д. В этом отношении использование облачных вычислений на платформе Azure дает огромные возможности, как с точки зрения объема хранимой в облаке информации, так и с точки зрения удобства ее использования.
В новой версии платформы Azure [28] поддерживаются следующие популярные мобильные платформы: Windows Phone 8 / 8.1; iOS; Android.
Прежде чем рассмотреть разработку мобильных приложений и мобильных сервисов, уточним предварительные требования и действия (pre-requisites) для подобной разработки. Прежде всего, для разработки необходима среда Visual Studio 2013, в ее текущей версии, со всеми обновлениями. На момент написания курса (июнь 2014) разработка мобильных приложений и сервисов поддержана в обновлении среды VS 2013 - Visual Studio 2013 Update 2 (выпущено 14 мая 2014 г.). В обновление включены необходимые типы проектов и инструменты для разработки мобильных сервисов и мобильных приложений. Инсталляция обновления Update 2 к Visual Studio 2013 на компьютере среднего класса (6 Гб оперативной памяти, двухъядерный 64-разрядный процессор Intel Core i5 3210M 2 * 2.5 GHz x64, ОС Windows 8) - требует порядка 10-12 часов вместе со скачиванием через модем 3G. При проверке правильности инсталляции данного обновления на компьютере следует учитывать, что оно не визуализируется отдельной строкой в разделе Программы и компоненты: в нем присутствует только строка, касающаяся самой среды Visual Studio.
Кроме обновления среды, необходимо инсталлировать комплекс инструментов для создания мобильных приложений, соответствующий Вашей мобильной платформе. Для Windows Phone - это Windows Phone SDK. Имеются также соответствующие SDK для других мобильных платформ - iOS и Android. Для отладки мобильных приложений в Windows Phone SDK включены эмуляторы мобильных телефонов. Приблизительный объем скачивания из сети при инсталляции Windows Phone SDK- 1.2 гигабайта. Для инсталляции вместе со скачиванием требуется 15-20 часов.
Таким образом, подготовка компьютера к разработке мобильных сервисов и приложений, даже при условии что среда VS 2013 уже инсталлирована, требует нескольких суток. Все это необходимо учитывать ка для планирования своего личного рабочего времени, так и для планирования командных проектов по разработке ПО.
На рис 15.1 изображено завершение инсталляции Windows Phone SDK.
(рис 15.1) Завершение инсталляции Windows Phone SDK
Как видно из сообщений, выданных в окне завершения инсталляции, эмуляторы мобильных телефонов, входящие в состав Windows Phone SDK, оказались недоступными из-за отключенной виртуализации оборудования.
В курсе [28] рассмотрен пример разработки в среде Visual Studio мобильного сервиса для Azure и мобильного приложения для Windows Phone 7.
В данном разделе рассмотрим разработку мобильного сервиса для новой версии Azure (2014) в новой версии среды VS 2013, Update 2 и соответствующего мобильного приложения для Windows Phone 8.x.
В качестве основы используем краткое руководство и пример мобильного сервиса, опубликованные фирмой Microsoft на странице [32] в облаке Azure. Используем также предоставляемые на этих же страницах заготовки для мобильных проектов, включая файлы исходного кода, конфигурации и т.д. Интересно отметить, что, благодаря входу в облако, эти информационные страницы настроены на конкретный рассматриваемый проект, со своими специфическими именами компонент, что очень удобно. Например, имя проекта мобильного приложения saf_mobile при визуализации страниц обучающего курса и при использовании исходного кода оказывается уже вставленным в соответствующие точки в коде и в документации. Подобный подход можно охарактеризовать современным термином user-centric computing (вычисления, ориентированные на конкретного пользователя; настройка вычислений на пользователя и его рабочий контекст).
Прежде всего, создадим в облаке"пустой" мобильный сервис (пока без реализации) [28] под именем ). Напомню, что вместе с мобильным сервисом в облаке создается (в том же регионе дата-центов) облачная база данных и, если требуется, также сервер базы данных.
(рис 15.2) Созданный в облаке Azure пустой мобильный сервис saf-mobile
Кликнув по имени мобильного сервиса [28], переходим к облачной странице для поддержки разработки мобильных сервисов (выберем в качестве платформы .
(рис 15.3) Облачная страница Azure для поддержки разработки мобильных сервисов для платформы Windows Phone 8
Выбрав вариант ").
(рис 15.4) Облачная страница Azure со ссылкой на мобильный проект и рекомендациями относительно следующих шагов
Первый шаг - инсталляцию среды VS 2013 с обновлением Update 2 мы уже выполнили.
Скачиваем мобильный проект и обнаруживаем, что для его открытия в VS 2013 необходима инсталляция Windows Phone SDK.
Не проходит и суток, как мы инсталлируем Windows Phone SDK и теперь можем открыть мобильный проект.
Выбираем в Solution Explorer проект мобильного сервиса saf_mobileService, выполняем его сборку и пробный запуск (в виде сайта) на локальном компьютере. Мобильный сервис реализует визуализацию на странице стилизованного лица в специальном окне, которое реагирует на клик по любой точке окна изменением выражения "лица" ("криком").
На рис 15.5 показана структура решения saf_mobile с проектом мобильного сервиса saf_mobileService. Другая компонента решения - проект с соответствующим мобильным приложением.
(рис 15.5) Структура мобильного решения saf_mobile с проектом мобильного сервиса saf_mobileService
Выполняем компиляцию мобильного сервиса, выбрав его как основной проект с помощью контекстного меню, затем в среде нажимаем F5 для сборки.
Теперь приступаем к публикации собранного мобильного сервиса. В контекстном меню проекта выбираем пункт ).
(рис 15.6) Окно с опциями публикации мобильного сервиса в облаке
Напомню, что, как и при публикации обычного сервиса в облаке (см. лекцию 13), среда Visual Studio 2013 должна быть вызвана от имени администратора.
Перед публикацией мобильного сервиса необходимо выбрать ). Может быть выбран вариант создания нового мобильного сервиса или использования существующего мобильного сервиса.
(рис 15.7) Выбор профиля публикации мобильного сервиса
Для выбора профиля мобильного сервиса необходим вход в облако. Входим в него через то же самое окно, открытое в среде, и получаем возможность выбрать один из существующих мобильных сервисов для публикации. Это уже созданный нами "пустой" мобильный сервис ).
(рис 15.8) Выбор имени существующего мобильного сервиса saf-mobile для публикации
Выбираем имя сервиса, нажимаем ). URL-адрес, под которым новый мобильный сервис будет доступен в облаке, следующий: http://saf-mobile.azure-mobile.net.
(рис 15.9) Визуализация подробной информации о выбранном для публикации мобильном сервисе
При выборе профиля для мобильного сервиса используем в качестве основы для профиля XML-файл с именем saf-mobile Publish Settings, сгенерированный средой для нашего мобильного сервиса. Если использовать установки профиля по умолчанию, то, как показал мой опыт, публикация не проходит: не открывается сетевой сокет для переписи файлов мобильного сервиса на компьютер дата-центра, реализующий облако. Полностью XML-файл профиля здесь не приводится, ввиду излишнего обилия технических деталей. Предлагаю читателям исследовать его самостоятельно при экспериментах с мобильными сервисами. Ссылку на заготовку для файла профиля мобильного сервиса можно найти на облачной странице [32].
Нажимаем Publish. Начинается публикация мобильного сервиса.
Публикация мобильного сервиса подробно протоколируется средой в специальных вкладках. На вкладке ).
(рис 15.10) Вкладка Web Publishing Activity
На вкладке Output сохраняется подробный протокол публикации. Для иллюстрации приводим его содержимое. Это дает представление о составе мобильного сервиса и специфике его публикации.
1>------ Build started: Project: saf_mobileService, Configuration: Release Any CPU ------
1> Восстановление пакетов NuGet:
1> Чтобы предотвратить загрузку пакетов NuGet во время выполнения сборки,
в Visual Studio откройте диалоговое окно "Параметры",
выберите узел "Диспетчер пакетов"
и снимите флажок "Allow NuGet to download missing packages".
1> Все пакеты, перечисленные в packages.config, уже установлены.
1> saf_mobileService -> C:\Users\saf\Documents\Visual Studio 2013\Projects\saf-mobile\
saf_mobileService\bin\saf_mobileService.dll
2>------ Publish started: Project: saf_mobileService, Configuration: Release Any CPU ------
2>Transformed Web.config using
C:\Users\saf\Documents\Visual Studio 2013\Projects\saf-mobile\saf_mobileService\
Web.Release.config into obj\Release\TransformWebConfig\transformed\Web.config.
2>Auto ConnectionString Transformed obj\Release\
TransformWebConfig\transformed\Web.config into obj\Release\CSAutoParameterize\
transformed\Web.config.
2>Copying all files to temporary location below for package/publish:
2>obj\Release\Package\PackageTmp.
2>Start Web Deploy Publish the Application/package to
https://waws-prod-bay-015.publish.azurewebsites.windows.net/msdeploy.axd?site=mobile$saf-mobile ...
2>Добавляются списки управления доступом для пути (mobile$saf-mobile)
2>Добавляются списки управления доступом для пути (mobile$saf-mobile)
2>Обновляется файл (mobile$saf-mobile\bin\Microsoft.Data.Edm.dll).
2>Добавляется файл (mobile$saf-mobile\bin\Microsoft.Data.OData.dll).
2>Добавляется файл (mobile$saf-mobile\bin\Microsoft.Owin.dll).
2>Добавляется файл (mobile$saf-mobile\bin\Microsoft.Owin.Host.SystemWeb.dll).
2>Добавляется файл (mobile$saf-mobile\bin\Microsoft.Owin.Security.ActiveDirectory.dll).
2>Добавляется файл (mobile$saf-mobile\bin\Microsoft.Owin.Security.Cookies.dll).
2>Добавляется файл (mobile$saf-mobile\bin\Microsoft.Owin.Security.dll).
2>Добавляется файл (mobile$saf-mobile\bin\Microsoft.Owin.Security.Facebook.dll).
2>Добавляется файл (mobile$saf-mobile\bin\Microsoft.Owin.Security.Google.dll).
2>Добавляется файл (mobile$saf-mobile\bin\Microsoft.Owin.Security.Jwt.dll).
2>Добавляется файл (mobile$saf-mobile\bin\Microsoft.Owin.Security.MicrosoftAccount.dll).
2>Добавляется файл (mobile$saf-mobile\bin\Microsoft.Owin.Security.OAuth.dll).
2>Добавляется файл (mobile$saf-mobile\bin\Microsoft.Owin.Security.Twitter.dll).
2>Добавляется файл (mobile$saf-mobile\bin\Microsoft.ServiceBus.dll).
2>Добавляется файл (mobile$saf-mobile\bin\Microsoft.WindowsAzure.Mobile.Service.dll).
2>Добавляется файл (mobile$saf-mobile\bin\Microsoft.WindowsAzure.Mobile.Service.Entity.dll).
2>Добавляется файл (mobile$saf-mobile\bin\Microsoft.WindowsAzure.Mobile.Service.Tables.dll).
2>Добавляется файл (mobile$saf-mobile\bin\Newtonsoft.Json.dll).
2>Добавляется файл (mobile$saf-mobile\bin\Owin.dll).
2>Добавляется файл (mobile$saf-mobile\bin\RazorEngine.dll).
2>Добавляется файл (mobile$saf-mobile\bin\saf_mobileService.dll).
2>Добавляется файл (mobile$saf-mobile\bin\System.Net.Http.Formatting.dll).
2>Добавляется файл (mobile$saf-mobile\bin\System.Spatial.dll).
2>Добавляется файл (mobile$saf-mobile\bin\System.Web.Http.dll).
2>Добавляется файл (mobile$saf-mobile\bin\System.Web.Http.OData.dll).
2>Добавляется файл (mobile$saf-mobile\bin\System.Web.Http.Owin.dll).
2>Добавляется файл (mobile$saf-mobile\bin\System.Web.Http.Tracing.dll).
2>Добавляется файл (mobile$saf-mobile\bin\System.Web.Razor.dll).
2>Добавляется файл (mobile$saf-mobile\Global.asax).
2>Добавляется файл (mobile$saf-mobile\packages.config).
2>Добавляется файл (mobile$saf-mobile\Web.config).
2>Добавляются списки управления доступом для пути (mobile$saf-mobile)
2>Добавляются списки управления доступом для пути (mobile$saf-mobile)
2>Publish Succeeded.
2>Site was published successfully http://saf-mobile.azure-mobile.net/
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
========== Publish: 1 succeeded, 0 failed, 0 skipped ==========
Наконец, публикация завершена. В следующий момент среда автоматически запускает браузер, в котором визуализируется Web-страница опубликованного в облаке мобильного сервиса (рис 15.11).
(рис 15.11) Web-страница опубликованного в облаке мобильного сервиса
В качестве мобильного приложения используем предоставленный в облаке пример решения saf-mobile, содержащего два проекта: уже опубликованный нами мобильный сервис saf_mobileService (п. 15.3), а также заготовку мобильного приложения saf_mobile.
Следуя рекомендациям облака [32], прежде всего инсталлируем внешние программные пакеты, используемые мобильным приложением. Как Вы уже знаете из предыдущих лекций, для управления внешними программными пакетами в среде VS 2013 реализована утилита NuGet. С его помощью находим в сети пакет для разработки мобильных приложений Microsoft.WindowsAzure.MobileServices. Этот пакет обеспечивает связь между клиентским мобильным приложением и мобильным сервисом.
На рис 15.12 изображен ход поиска и инсталляции данного пакета.
(рис 15.12) Поиск и инсталляция с помощью утилиты NuGet пакета для разработки мобильных приложений WindowsAzure.MobileServices
На рис 15.13 изображен результат инсталляции пакета WindowsAzure.MobileServices.
(рис 15.13) Пакет WindowsAzure.MobileServices инсталлирован
Ниже - фрагмент кода мобильного приложения (его файла App.Xaml.cs), который обеспечивает обращение из клиентского мобильного приложения к мобильному сервису:
public static MobileServiceClient MobileService =
new MobileServiceClient(
"https://saf-mobile.azure-mobile.net/",
"…"
// пароль доступа мобильного приложения к мобильному сервису опущен
);
Данное мобильное приложение обращается к таблице текущих планов и дел TodoItems, поддерживаемой мобильным сервисом в виде облачной базы данных Azure.
С помощью GUI мобильного приложения saf_mobile в таблицу TodoItems могут быть введены новые строки. Затем таблица может просматриваться через облако.
Для обращения к таблице из мобильного приложения модифицируем его код, вставив в основной метод Application_Launching (запуск мобильного приложения) следующий код:
// Code to execute when the application is launching (eg, from Start)
// This code will not execute when the application is reactivated
private async void Application_Launching(object sender, LaunchingEventArgs e)
{
TodoItem item = new TodoItem { Text = "Awesome item", Complete = false };
await App.MobileService.GetTable<TodoItem>().InsertAsync(item);
}
Модифицировав код клиентского мобильного приложения, выполняем его сборку, выбрав пункт Build из контекстного меню.
Теперь запускаем мобильный сервис и мобильное приложение нажатием F5.
Мобильный сервис запускается, как показано на рис 15.11.
Результат выбора на странице мобильного сервиса пункта . Визуализируется структура облачной базы данных TodoList и команды протокола HTTP (GET, POST и др.), которые служат для отправки информации с клиента на сервер.
(рис 15.14) Визуализация мобильным сервисом структуры облачной базы данных
К сожалению, на нашем компьютере не запускается целиком пара "мобильное приложение - мобильный сервис", что позволяло бы,наблюдать на локальной машине их взаимосвязь. Причина в том, что компьютер не поддерживает аппаратную технологию Hyper-V (виртуализации оборудования). На компьютерах с аппаратной поддержкой технологии Hyper-V эмуляторы мобильных телефонов запускаются в свотх виртуальных машинах. На остальных компьютерах разработка мобильных приложений в среде VS 2013 Update 2 возможна, однако отладка и запуск мобильных приложений возможны только на реальных мобильных телефонах платформы Windows Phone 8 / 8.1.
Возможна обратная связь мобильного сервера с мобильным клиентом в виде так называемых ).
(рис 15.15) Примеры push-уведомлений от сервера на экране мобильного устройства
Необходимые настройки сервера на отправку клиенту push-уведомлений могут быть выполнены в облаке, в пункте облачного меню ).
(рис 15.16) Настройка мобильного сервиса в облаке на отправку клиенту push-уведомлений
Среда Visual Studio 2013 (Update 2), в совокупости с Windows Phone SDK, обеспечивает разработку и отладку мобильных сервисов и связанных с ним мобильных приложений. Предоставляются шаблоны проектов мобильных приложений и мобильных сервисов, а также подробные обучающие курсы (tutorials), тексты и исходные коды которых при работе с ними в облаке настраиваются на конкретного пользователя и его конкретный проект, в соответствии с принципами user-centric computing. Если компьютер поддерживает технологию Hyper-V, то обеспечивается также отладка мобильных приложений на эмуляторе мобильного телефона, иначе она возможна только на реальном телефоне с Windows Phone 8 / 8.1. Следует подчеркнуть удобство среды и облака для совместной деятельности по публикации в облаке мобильных сервисов и их взаимодействия с мобильными приложениями. Удобен также механизм push-уведомлений, которые мобильный сервис может посылать мобильному клиенту.
| - утилита интегрированной среды VS 2013 для поиска и инсталляции внешних программных пакетов. | |
| - сообщения и экранные формы, отправляемые мобильным сервером мобильным клиентам. | |
| - инструментальный комплекс для разработки и отладки мобильных приложений и мобильных сервисов для платформы Windows Phone. | |
| - клиентское приложение, выполняемое на мобильном устройстве и взаимодействующее с облачным мобильным сервисом и обслуживаемым им облачной базой данных. | |
| - облачный сервис, обеспечивающий взаимодействие с клиентскими мобильными приложениями. |
Среда Visual Studio 2013 (Update 2), в совокупости с Windows Phone SDK, обеспечивает разработку и отладку мобильных сервисов и связанных с ним мобильных прлиожений. Предоставляются шаблоны проектов мобильных приложений и мобильных сервисов, а также подробные обучающие курсы (tutorials). Если компьютер поддерживает технологию Hyper-V, то обеспечивается также отладка мобильных приложений на эмуляторе мобильного телефона, иначе она возможна только на реальном телефоне с Windows Phone 8 / 8.1. Следует подчеркнуть удобство среды и облака для совместной деятельности по публикации в облаке. Удобен также механизм push-уведомлений, которые мобильный сервис может посылать мобильному клиенту.
Презентация к данной лекции: VS_2013_Course_15.pptx.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.