Опубликован: 02.08.2013 | Доступ: свободный | Студентов: 468 / 15 | Длительность: 18:38:00
Специальности: Программист
Самостоятельная работа 12:

Разработка для Windows Azure

< Лекция 25 || Самостоятельная работа 12: 1234 || Самостоятельная работа 13 >

Макет приложения для работы с Azure

Для нормального построения проекта приложения для Windows Phone, нужно убедиться в том, что включено восстановление пакетов NuGet. Для этого нужно открыть диалоговое окно параметров Visual Studio (Сервис > Параметры), перейти в раздел Диспетчер пакетов > Общие и установить флаг Разрешить NuGet загружать недостающие пакеты при построении, рис. 39.6.

Включение загрузки недостающих пакетов при построении

увеличить изображение
Рис. 39.6. Включение загрузки недостающих пакетов при построении

После этого проект будет успешно построен. Он реализует следующую функциональность. На первой странице имеется поле, в которое можно ввести текст, представляющий собой заметку или запись списка дел (To do item). По нажатию на кнопку Save (Сохранить), которая расположена рядом с полем запись сохраняется в базе данных, в таблице, которая была создана при создании мобильной службы. Тут же эта запись отображается в списке записей. Для обновления списка записей служит кнопка Refresh (Обновить). Рядом с каждой записью есть флаг. Его установка говорит системе о том, что задача, соответствующая записи, выполнена, об этом делается соответствующая отметка в базе данных, после чего запись перестаёт отображаться в списке. На рис. 39.7. приведена структура проекта после открытия его в Visual Studio. Обратите внимание на папку References – она приобретает такой вид после того, как менеджер пакетов NuGet выполнит автоматическую загрузку пакетов, необходимых для запуска приложения. В частности, здесь мы видим пакеты Microsoft.Windows.Azure, System.Net.Http, Newtonsoft.Json.

Структура шаблонного проекта, работающего с Windows Azure

увеличить изображение
Рис. 39.7. Структура шаблонного проекта, работающего с Windows Azure

Рассмотрим ключевые компоненты этого проекта.

В манифесте приложения (WMAppManifest.xml) включены, среди прочих, возможности ID_CAP_NETWORKING, ID_CAP_WEBBROWSERCOMPONENT.

В файле App.xaml.cs (Листинг 39.1), производится создание общедоступного статического поля MobileService типа MobileServiceClient (http://msdn.microsoft.com/en-us/library/windowsazure/microsoft.windowsazure.mobileservices.mobileserviceclient.aspx).

using System;
using System.Diagnostics;
using System.Resources;
using System.Windows;
using System.Windows.Markup;
using System.Windows.Navigation;
using Microsoft.Phone.Controls;
using Microsoft.Phone.Shell;
using my_notes.Resources;

using Microsoft.WindowsAzure.MobileServices;

namespace my_notes
{
    public partial class App : Application
    {
        /// <summary>
        /// Provides easy access to the root frame of the Phone Application.
        /// </summary>
        /// <returns>The root frame of the Phone Application.</returns>
        public static PhoneApplicationFrame RootFrame { get; private set; }

        public static MobileServiceClient MobileService = new MobileServiceClient(
            "https://my-notes.azure-mobile.net/",
            "здесь_находится_ключ_приложения_для_доступа_к_службе"
            );
        
        /// <summary>
        /// Constructor for the Application object.
        /// </summary>
        public App()
Листинг 39.1. Фрагмент файла App.xaml.cs

При создании объекта MobileServiceClient в его конструктор передаётся, во-первых, URI мобильной службы (того, который был создан для нас при создании мобильной службы Azure), во-вторых, ключ приложения (Application Key). Существуют и другие варианты этого конструктора, здесь присутствует либо только адрес мобильной службы, либо адрес и ключ приложения. В коде, приведенном в Листинге 39.1 ключ изменен – этот ключ следует хранить в тайне, так как он используется при организации доступа приложения к мобильной службе и не должен попадать в руки третьих лиц.

При создании объекта происходит подключение нашего приложения к мобильной службе. У объекта типа MobileServiceClient имеется ряд свойств и методов. В частности, они позволяют осуществлять аутентификацию пользователя, организовывать выход пользователя из системы, сведения о пользователе, который вошёл в систему, хранятся в свойстве объекта CurrentUser, которое имеет тип Microsoft.WindowsAzure.MobileServices.MobileServiceUser (http://msdn.microsoft.com/en-us/library/windowsazure/microsoft.windowsazure.mobileservices.mobileserviceuser.aspx). В нашем случае аутентификация пользователя не применяется, для целей практического использования подобного приложения различными пользователями нужно организовать их аутентификацию.

< Лекция 25 || Самостоятельная работа 12: 1234 || Самостоятельная работа 13 >