Microsoft Azure Mobile Services – краткое руководство по использованию. Часть 2.Для изучения материала изложенного в данной статье вам потребуется подписка на облачную платформу Microsoft Azure. Вы можете получить ее бесплатно:
Хранение данных в Mobile ServicesВ этой части руководства вы загрузите приложение, которое хранит данные в памяти, создадите новый мобильный сервис и интегрируете его с приложением, после чего, с помощью портала управления Microsoft Azure просмотрите изменения в данных, внесенные в запущенном приложении. Загрузите C# версию GetStartedWithData Developer Code Samples (рисунок 1). Рис. 1. Developer Code Samples Откройте проект в Visual Studio 2012 Express для Windows 8. Откройте MainPage.xaml.cs. Обратите внимание на то, что объекты TodoItem хранятся в памяти - ObservableCollection<TodoItem>. Нажмите F5. Введите текст в Insert a TodoItem и нажмите Save (рисунок 2). Рис. 2. Интерфейс приложения Сохраненный текст отображается в Queryandupdatedata. Доступ к данным с использованием мобильного сервисаУстановите Mobile Services SDK. В Visual Studio в Project нажмите AddReference, разверните Windows, нажмите Extensions, отметьте WindowsAzureMobileServicesManagedClient и нажмите OK (рисунок 3). Рис. 3. Добавление зависимостей в приложение Нажатие на кнопку добавит клиент мобильных сервисов в проект. В MainPage.xaml.cs и App.xaml.cs добавьте следующий код: На портале управления перейдите в MobileServices и выберите ваш мобильный сервис. Перейдите на вкладку Dashboard и запишите SiteURL, а также, нажав Managekeys запишите Applicationkey(рисунок 4). Рис. 4. Портал управления Microsoft Azure В Visual Studio раскомментируйте в файле App.xaml.cs определяющий переменную MobileService код и вставьте соответствующие значения URL и application, скопированные с портала управления, в конструктор MobileServiceClient. В MainPage.xaml.cs закомментируйте строку, определяющую коллекцию items и раскомментируйте следующие строки кода: В этом коде создается коллекция для мобильных сервисов (item) и проекси-класс для таблицы TodoItem (todoTable). В методе InsertTodoItem удалите определяющую свойство TodoItem.Id строку, добавьте модификатор async , и раскомментируйте строку кода: В методе RefreshTodoItems раскомментируйте: Этот код определяет привязку к коллекции сущностей в todoTable, содержащую все записи, возвращаемые мобильным сервисом. В метод UpdateCheckedTodoItem добавьте модификатор async modifier to и раскомментируйте: Теперь приложение использует мобильный сервис как бэкенд для хранилища. Запуск приложенияВ Visual Studio нажмите F5. Введите текст в InsertaTodoItem и нажмите Save. Это приведет к добавлению сущности мобильному сервису. На портале управления перейдите на MobileServices и выберите ваш мобильный сервис. Перейдите на вкладку Data и нажмите Browse (рисунок 5). Рис. 5. Просмотр данных в таблице TodoItem Замените в файле MainPage.xaml.cs метод RefreshTodoItems на следующий код, который будет осуществлять фильтрацию: В приложении отметьте одну из сущностей в списке и нажмтие Refresh. Обратите внимание, что отмеченная сущность исчезла из списка. Каждое нажатие на кнопке будет приводить к обращению к мобильному сервису, возвращающему отфильтрованный набор данных. Теперь мобильный сервис служит как бэкенд для хранения данных вашего приложения. Перейдем к использованию серверных скриптов в мобильных сервисах. Серверные скрипты регистрируются в мобильном сервисе, после чего становятся доступными для использования при вставке и обновлении данных, включая проверку и модификацию этих данных. Проверка данныхХорошим тоном является проверка длины данных, приходящих от пользователя. Зарегистрируем скрипт ,проверяющий длину данных в строке, отправляемой мобильному сервису, и выводящем ошибку для слишком длинных строк, в данном случае длиннее 10 символов. На портале управления перейдите на MobileServices и выберите ваше приложение (рисунок 6). Рис. 6. Портал управления Microsoft Azure На вкладке Data нажмите на таблицу TodoItem (рисунок 7). Рис. 7. Портал управления Microsoft Azure Нажмите Script и выберите Insert (рисунок 8). Рис. 8. Портал управления Microsoft Azure Замените скрипт на код ниже и нажмите Save. В скрипте проверяется длина значения свойства TodoItem.text и генерируется ошибка в том случае, если она превышает 10 символов, иначе выполняется метод execute. Обновление клиентаОткройте в Visual Studio 2012 Express для Windows 8 проект из предыдущей части. Запустите приложение, нажав F5 key и попробуйте ввести строку длиннее 10 символов в поле InsertaTodoItem, после чего нажмите Save. Будет выброшено исключение MobileServiceInvalidOperationException, так как код ответа с сервера будет 400 (Bad Request) . Вставьте в MainPage.xaml.cs следующий код: using Windows.UI.Popups; Замените метод InsertTodoItem: В этом коде обрабатывается исключение MobileServiceInvalidOperationException,выдавая ошибку во всплывающем окне. Добавление даты к сущностиВ Scripts на портале управления, замените скрипт Insert и нажмите Save. Запустите приложение, нажав F5, после чего введите строку из более чем 10 символов в поле InsertaTodoItem и нажмите Save. Обратите внимание, что нового поля даты в интерфейсе нет. На портале управления на вкладке Browse выберите таблицу todoitem. В базе столбец createdAt есть, и вставленная последней сущность имеет значение даты. Обновление интерфейса приложенияКлиент мобильного сервиса игнорирует данные в ответе, которые нельзя сериализовать в свойства определенного типа. Добавим в интерфейс возможность отображать эти новые данные. Замените в MainPage.xaml.cs класс TodoItem: Новое определение класса содержит nullable DateTime. Атрибут DataMemberAttribute сообщает клиенту о том, что необходимо соотнести новое свойство CreatedAt со столбцом createdAt из таблицы TodoItem. Добавьте под элементом CheckBoxComplete в файле MainPage.xaml следующий код, который отобразит в текстовом поле новое поле CreatedAt: Нажмите F5 для запуска приложения. Замените RefreshTodoItems: Запустите приложение. Все сущности с неопределенным значением даты исчезли из списка в интерфейсе. |