Лучший отвечающий
WinRT + Azure Mobile Service + Azure Table Storage

Вопрос
-
Возникло несколько вопросов по поводу Windows Azure. Было бы здорово, если бы удалось найти на них ответы или хотя бы направление куда копать.
Задача следуящая: проектирую WinRT-приложение (C# XAML), которое должно быть опубликовано в Windows Store. Архитектура самая простая: клиент - модуль-прослойка - хранилище данных. Клиентская часть всегда находится на устройстве пользователя в силу того, что приложение WinRT. В качестве хранилища данных хочу использовать Azure Table Storage, а не реляционную базу данных. Еще нужен модуль, который будет обрабатывать запросы клиента, верифицировать их корректность и только после этого предоставлять данные из хранилища или записывать данные в хранилище. Этим занимается модуль-прослойка.
Как я понял, WinRT-приложение без с проблем дружит только с одним внешним сервисом - это Azure Mobile Service. Но Azure Mobile Service работает с реляционным хранилищем. В поисках информации как использовать для Mobile Service хранилище Table Storage нашел вот эту статью:
http://blogs.msdn.com/b/paolos/archive/2013/04/09/how-to-use-windows-azure-table-storage-in-windows-azure-mobile-services.aspx
Но это решение мне кажется несколько кривоватым. Ведь по сути приходится на борту держать и базу данных SQL (за которую требуется платить, хотя она не используется) и хранилище таблиц.
Потом, у Mobile Service всего четыре метода для каждой таблицы, поэтому сделать на основе Mobile Service полноценный модуль-прослойку никак не получится. Допустим, клиент вызывает какой-либо метод модуля-прослойки, модуль делает верификацию на основании уже сохраненных в Storage данных, если всё успешно, модуль пишет данные в несколько разных таблиц. Как я понял, даже с учетом серверных скриптов для Mobile Service такое реализовать не получится. Остается написать модуль-прослойку в отдельную библиотечку, функции которой будет вызывать приложение-клиент.
Во всех книгах нас учат, что нельзя доверять информации, пришедшей со стороны клиента. Соответственно размещать эту библиотеку на устройстве пользователя (в составе WinRT-приложения), как минимум, не логично. Логичней было бы разместить эту библиотеку на стороне сервера, а именно в Azure. Тут мне видится вариант: поднять виртуальную машину, там поднять свой Rest-сервис, который получает запросы от клиента, затем обрабатывает их пишет данные в Table Storage. Но, увы, как я понял, WinRT-приложение не пройдет публикацию в Windows Store, если оно использует какие-либо сторонние сервисы, кроме Azure Mobile Service.
Какие, по вашему мнению, могут быть способы реализации столь простой (по моему мнению) архитектуры приложения, что описана мной выше, в облаке?
28 апреля 2013 г. 12:35
Ответы
-
Здравствуйте,
Вот ссылка на хороший гайд:
Get started with Mobile Services (взято из Mobile Services & Table Storage)
И
- Предложено в качестве ответа Maksim MarinovMicrosoft contingent staff, Moderator 30 апреля 2013 г. 6:48
- Помечено в качестве ответа Maksim MarinovMicrosoft contingent staff, Moderator 6 мая 2013 г. 6:51
29 апреля 2013 г. 8:01Модератор -
Как я понял, WinRT-приложение без с проблем дружит только с одним внешним сервисом - это Azure Mobile Service.Привет
Вы немного не правы, вы можете из приложения взаимодействовать с любым REST API сервером, с чужим или своим, который как раз и будет формализованно принимать запросы. Проверять их и выдавать готовые данные. Откуда эти данные он будет брать - это уже не проблема клиента, до него эти даныне дойдут и он сможет их обрабоать.
Можете, например развернуть Web API проект, который в кач-ве хранилища будет обращаться к Table Storage
Для связи [mail]
- Предложено в качестве ответа Maksim MarinovMicrosoft contingent staff, Moderator 30 апреля 2013 г. 6:48
- Помечено в качестве ответа Maksim MarinovMicrosoft contingent staff, Moderator 6 мая 2013 г. 6:51
29 апреля 2013 г. 8:22
Все ответы
-
Здравствуйте,
Вот ссылка на хороший гайд:
Get started with Mobile Services (взято из Mobile Services & Table Storage)
И
- Предложено в качестве ответа Maksim MarinovMicrosoft contingent staff, Moderator 30 апреля 2013 г. 6:48
- Помечено в качестве ответа Maksim MarinovMicrosoft contingent staff, Moderator 6 мая 2013 г. 6:51
29 апреля 2013 г. 8:01Модератор -
Как я понял, WinRT-приложение без с проблем дружит только с одним внешним сервисом - это Azure Mobile Service.Привет
Вы немного не правы, вы можете из приложения взаимодействовать с любым REST API сервером, с чужим или своим, который как раз и будет формализованно принимать запросы. Проверять их и выдавать готовые данные. Откуда эти данные он будет брать - это уже не проблема клиента, до него эти даныне дойдут и он сможет их обрабоать.
Можете, например развернуть Web API проект, который в кач-ве хранилища будет обращаться к Table Storage
Для связи [mail]
- Предложено в качестве ответа Maksim MarinovMicrosoft contingent staff, Moderator 30 апреля 2013 г. 6:48
- Помечено в качестве ответа Maksim MarinovMicrosoft contingent staff, Moderator 6 мая 2013 г. 6:51
29 апреля 2013 г. 8:22