Мобильные сервисы Microsoft Azure предоставляют разработчикам готовое решение для реализации облачного бэкэнда в приложении. Теперь мобильные службы Azure полностью поддерживают создание серверной логики с помощью ASP.NET Web API и представляют отличный выбор для разработчиков, проектирующих мобильные API с помощью ASP.NET:
- Готовый бэкэнд c набором SDK для всех мобильных платформ. С помощью мобильных сервисов Azure вы cможете быстро добавить полнофункциональный бэкэнд для ваших iOS, Android, Windows, Windows Phone, или HTML приложений, а так же для кросс-платформенных решений на базе Xamarin, Sencha и PhoneGap. Мы предоставляем клиентские пакеты SDK для каждой из этих платформ, облегчая интеграцию приложений с бэкэндом в облаке.
- Первоклассный хостинг для мобильного API.
Мобильные сервисы построены с использованием Web API и вы сможете опубликовать любой существующий контроллер Web API в мобильную службу. Основным отличием мобильных сервисов от других вычислительных сред является то, что мы самостоятельно следим за работой Web API контроллеров. И в случае возникновения проблем со средой выполнения Web API или расширениями, мы исправляем это без вашего участия. Мы обращаемся к вам только в том случае, если проблема обнаружена в коде контроллера.
- Полезные возможности мобильного бэкэнда. Вашему Web API коду доступно большое количество возможностей, предоставляемых мобильными сервисами. Среди них: мобильные push уведомления, обмен сообщениями в реальном времени с SignalR, авторизация через социальные сети, реализация офлайн режима работы приложения.
- Подключение к корпоративным системам. Разработчики корпоративных систем, по достоинству смогут оценить возможность авторизации в приложении при помощи Active Directory и доступ к корпоративным ресурсам, таким как SharePoint и Office 365. Кроме того, мы добавили механизм, помогающий реализовать бесшовное соединение с локальными ресурсами, не доступными из Интернета, такими как базы данных и внутренние веб сервисы.
- Интеграция с Visual Studio. Ваша любимая среда теперь содержит специальный шаблон проекта и скаффолдинг для мобильных сервисов, и предоставляет поддержку публикации и удаленной отладки кода.
Готовый бэкэнд с набором SDK для всех мобильных платформ
Приступить к реализации поддержки мобильных сервисов в Visual Studio очень легко. Необходимо зайти на портал Microsoft Azure и создать новую мобильную службу. На первой странице выберите .NET в качестве серверной части. После того, как служба будет создана, перейдите на вкладку «Quickstart» и скачайте тестовый проект для той клиентской платформы, на которой вы разрабатываете.
В том случае, если вы начинаете работу в Visual Studio, вы можете создать мобильный сервис уже после разработки локального проекта, для публикации его в сервис.
В любом случае вы получите шаблон проекта Mobile Services .NET. Обратите внимание, что это обычный Web API проект, использующий дополнительные NuGet пакеты.
Откройте файл контроллера TodoItemController.cs и изучите его содержание. Установите точку останова внутри метода GetAllTodoitems. Этот контроллер покажет вам, как работать с данными, используя поддержку Mobile Services .NET:
public class TodoItemController : TableController<TodoItem>
{
protected override void Initialize(HttpControllerContext controllerContext)
{
base.Initialize(controllerContext);
csharp_testContext context = new csharp_testContext();
DomainManager = new EntityDomainManager<TodoItem>(context, Request, Services);
}
// GET tables/TodoItem
public IQueryable<TodoItem> GetAllTodoItems()
{
return Query();
}
// GET tables/TodoItem/48D68C86-6EA6-4C25-AA33-223FC9A27959
public SingleResult<TodoItem> GetTodoItem(string id)
{
return Lookup(id);
}
// PATCH tables/TodoItem/48D68C86-6EA6-4C25-AA33-223FC9A27959
public Task<TodoItem> PatchTodoItem(string id, Delta<TodoItem> patch)
{
return UpdateAsync(id, patch);
}
// POST tables/TodoItem/48D68C86-6EA6-4C25-AA33-223FC9A27959
public async Task<IHttpActionResult> PostTodoItem(TodoItem item)
{
TodoItem current = await InsertAsync(item);
return CreatedAtRoute("Tables", new { id = current.Id }, current);
}
// DELETE tables/TodoItem/48D68C86-6EA6-4C25-AA33-223FC9A27959
public Task DeleteTodoItem(string id)
{
return DeleteAsync(id);
}
}
Обратите внимание, что все ключевые CRUD методы TodoItem уже определены. По умолчанию контроллер EntityDomainManager является оболочкой поверх Entity Framework модели, что обеспечивает легкий переход на использование альтернативного хранилища данных:
- Для MongoDB используйте MongoDomainManager из NuGet расширения WindowsAzure.MobileServices.Backend.Mongo.
Подробная информация доступна по следующей ссылке. - Для Azure Table Storage используйте StorageDomainManager из NuGet расширения WindowsAzure.MobileServices.Backend.Storage.
Пример реализации доступен здесь.
С поддержкой .NET кода в мобильных сервисах, запуск и отладка логики мобильного бэкэнда доступна локально. Запускаем сервис клавишей F5, и на стартовой странице сервиса в браузере нажимаем «Try it out».
Поддержка .NET в мобильных сервисах предоставляет автоматическую генерацию справочной информации для вашего Web API в виде отдельной страницы. Получить описание реализации метода можно при помощи GET tables / TodoItem. Нажмите на «Try this out», а затем «Send», для вызова метода GetAllTodoItems (), и вы попадаете в точку останова, которую установили ранее.
![](https://habrastorage.org/getpro/habr/post_images/77b/7be/144/77b7be1441fcaca9181565d335a137cc.png)
После завершения разработки серверной части API, вы можете опубликовать свой Web API в мобильный сервис. Поддержка публикации встроена в Visual Studio, достаточно щелкнуть правой кнопкой мыши на проект и выбрать «Publish». Вы можете выбрать существующий мобильный сервис или создать новый прямо из Visual Studio, без необходимости посещения портала Azure.
![](https://habrastorage.org/getpro/habr/post_images/538/81e/04b/53881e04b2442dc9d8e678479ffc47ed.png)
Вы можете опубликовать любое существующее WebAPI решение в мобильный сервис и сразу же передать его управление и мониторинг в Azure.
Подробнее о поддержке .NET бэкэнда в мобильных сервисах можно узнать из документации:
- Работа с мобильными службами
- Работа с данными в мобильных службах
- Аутентификация в мобильных службах
- Push-уведомления в мобильных службах
Первоклассный хостинг для мобильного API
Поговорим немного о преимуществах, которые получает разработчик при публикации своего API в мобильную службу, ведь с другой стороны существует множество других способов размещения Web API в Azure.
Перечислим лишь некоторые из преимуществ, которые предоставляют мобильные сервисы:
- Мониторинг и диагностика. Мобильные сервисы обеспечивают 99,9%, уровень SLA, основанный на возможностях контроля и мониторинга, созданных в Azure для того, чтобы позаботиться о вашем API. В платные услуги входит мониторинг HTTP трафика и SQL соединение, плюс мы оповестим вас при резком увеличении количества ошибок. И это лишь дополнения к целому ряду возможностей, которые вы можете использовать самостоятельно, включая мониторинг конечных точек и оповещения.
- Автоматическое обновление среды. Мы обновляем код платформы еженедельно, без необходимости повторного развертывания вашего приложения. Изменения в среде выполнения мобильных служб или новые функции – все эти обновления добавятся к вашим мобильным сервисам без прерывания их работы.
- Автоматическая инициализация облачных ресурсов. При создании любой мобильной службы, мы автоматически предоставляем и настраиваем SQL базу данных и концентратор уведомлений, и проверяем настройку всех соответствующих подключений. Так же, с помощью пары щелчков мыши, существует возможность быстрого создания запланированных задач и гибридных соединений в облаке. Мобильные службы предоставляют быстрое соединение со всеми необходимыми облачными ресурсами, необходимыми для комфортной работы вашего сервиса.
Полезные возможности мобильного бэкэнда
Мобильные службы предлагают большое количество функционала для вашего приложения прямо «из коробки».
Например:
- Готовая аутентификация. Для каждой мобильной службы предоставляется целый набор облачных ресурсов и реализация наиболее распространенных сценариев аутентификации. Быстрое подключение авторизации с учетной записью Microsoft, Facebook, Twitter, или Google, или с аккаунтом организации при помощи AAD. Не нужно быть экспертом OAuth, потому что все необходимые механизмы уже готовы и собраны вместе, достаточно уточнить некоторые параметры конфигурации, а об остальном позаботятся службы Azure.
Подробная информация доступна по следующей ссылке. - Масштабируемые push уведомления. Мобильный сервис всегда оснащен концентратором push уведомлений, обеспечивающим доставку большого количества уведомлений на устройства всех основных платформ: Windows, iOS, Android и Kindle. Для того чтобы отправить уведомление миллионам подключенных устройств, потребуется всего один вызов API. Так же реализована поддержка тегирования для разделения аудитории и настройка шаблонов уведомлений для каждой из групп.
Подробная пошаговая инструкция представлена в документе. - Offline режим работы приложения. На сегодняшний день, одной из возможностей, ожидаемых пользователями от приложения, стала поддержка работы с данными в условиях отсутствия интернет соединения. Мобильные службы Azure предоставляют встроенную поддержку офлайн работы приложения и синхронизацию данных для всех основных платформ, основанную на SQLite.
Подробную информацию об этой возможности можно получить здесь. - Обмен сообщениями в реальном времени. Push-уведомления отлично работают для привлечения пользователей в ваше приложение, но обеспечение масштабируемой высокой пропускной способности с низкими задержками для вашего приложения требует другого набора инструментов.Мобильные сервисы обеспечивают встроенную поддержку обмена данными в реальном времени на основе WebSocket и SignalR, предоставляя двунаправленную передачу сообщений в вашем приложении. Служба предоставляется со встроенной шиной сообщений для бесшовного масштабируемого развертывания по мере того, как ваше приложение растет. Она интегрирована с тем же каналом аутентификации, как и остальные ваши сервисы, облегчая аутентификацию и авторизацию пользователей.
Дополнительная информация доступна по ссылке.
Подключение к корпоративным системам
Выбор платформы .NET один из частых сценариев корпоративной разработки, так как семейство .NET языков предоставляет большое количество актуальных сценариев для создания бизнес-приложений:
- Регистрация и авторизация с учетной записью Active Directory. Для корпоративных приложений очень важно иметь возможность авторизации с учетной записью AD. Реализация этого механизма упрощает управление учетными записями, а также предоставляет пользователям доступ к облачными ресурсам, защищенным Active Directory, таким как SharePoint Online и Office 365.
Для получения дополнительной информации по настройке авторизации Active Directory в приложении рекомендуем изучить следующий материал. Видео — инструкция по настройке интегрированного доступа находится здесь. - Подключение к данным внутри корпоративной сети. В случае, когда корпоративные ресурсы, такие как базы данных и веб-сервисы вынуждены хранится локально на оборудовании компании и не могут быть перенесены в облако, Microsoft Azure предоставляет возможность доступа к ним через мобильные сервисы. Используя функцию «Hybrid connections», которая позволит передавать локальной трафик в облако, вы в своем приложении сможете обеспечить доступ к данным внутри корпоративной сети.
Ссылки на подробное руководство и видео-инструкцию. - Xamarin SDK. Xamarin предоставляет готовый набор инструментов для создания кроссплатформенных приложений (Windows, Windows Phone, Android и IOS) на C #, реализуя один из самых продуктивных механизмов создания приложений, в основе которого лежит повторное использование навыков для разработчиков, знакомых со стеком Microsoft, на других платформах. Мобильные сервисы Microsoft Azure предоставляют данный SDK, а так же огромное количество других ресурсов, необходимых для создания приложений на Xamarin.
- Акселераторы. Иногда самым простым способом реализации сценария является использование уже готового решения. Команда Microsoft Azure создала набор «акселераторов», которые представляют собой готовые к использованию приложения, покрывающие основные вертикальные сценарии некоторых наших клиентов и демонстрирующие использование мобильных сервисов. Эти приложения опубликованы в магазине Windows и доступны в виде исходных кодов для загрузки и изменения.
Подробная информация доступна по следующей ссылке.
Интеграция с Visual Studio
В дополнение к уже перечисленной функциональности, Visual Studio содержит множество других полезных инструментов для разработки и отладки вашего мобильного сервиса. Например встроенный скаффолдинг, позволяющий создавать контроллеры таблиц (для хранения реляционных данных), пользовательские контроллеры (для построения произвольных API, HTTP) и задачи, выполняемые по расписанию.
![](https://habrastorage.org/getpro/habr/post_images/990/6d1/92a/9906d192a9eec83cf4484b11c9321aae.png)
Так же Visual Studio предоставляет возможность удаленной отладки. Просто щелкните правой кнопкой мыши на мобильный сервис в «Solution Explorer» и выберите «Attach Debugger». Для того, чтобы воспользоваться этой функцией убедитесь, что вы опубликовали код в режиме «Debug».
Другой интересной возможностью в Solution Explorer является команда «View Logs», позволяющая просматривать журналы, заполняемые вашим мобильным сервисом в облаке, в том числе с сообщения об ошибках и трассировка стека.
Мы надеемся, что вы сможете по достоинству оценить набор новых функций и возможностей мобильных служб Azure, и рекомендуем вам попробовать их в вашем следующем проекте.
Для получения рекомендаций или обратной связи воспользуйтесь Twitter: @theYavor.
Полезные ссылки
- Попробовать Azure бесплатно на 30 дней!
- Центр разработки Microsoft Azure (azurehub.ru) – сценарии, руководства, примеры, рекомендации по разработке
- Twitter.com/windowsazure_ru — последние новости Microsoft Azure
- Сообществе Microsoft Azure на Facebook – эксперты, вопросы
- Изучить курсы виртуальной академии Microsoft по облачным и другим технологиям
- Бизнес и облако: лучшие практики решений
- Windows 8.1 Update для крупных организаций. Начало работы
- Гибридное облако Microsoft: Руководство по типовым решениям
- Набор средств для подготовки пользователей к Windows 8.1
- Введение в графическую библиотеку Win2D
- Загрузить бесплатную или пробную Visual Studio
- Стать разработчиком универсальных приложений Windows