Как стать автором
Обновить

Работа с данными в мобильных приложениях. Реализуем offline хранилище и синхронизацию данных используя Microsoft Azure и SQLite

Время на прочтение6 мин
Количество просмотров21K
Всего голосов 27: ↑25 и ↓2+23
Комментарии9

Комментарии 9

с облаками я не очень, и, возможно, я туплю, но как решается
кейс:
есть 1000 клиентов, и у каждого клиента своя БД. необходимо запускать/покупать 1000 мобильных сервисов c 1000 БД Azure SQL?
Нет) Гораздо удобнее хранить всё в одной. Одна база в облаке и по одной на каждом из 1000 телефонов.
и вот теперь вопрос в тему:
у конкретного клиента своя база заказов — POS-точки и облачный сервис.
ты же не будешь один из этих заказов распространнять/синхронизировать на всех остальных клиентов — их локальная база станет в 1000 раз больше, к тому же это коммерческая тайна.
тогда как автоматически синхронизировать одну из локальных SQLite с облачной БД? сколько облачных БД должно быть в рамках Sync Framework и Azure SQL Data Sync?
или под такой сценарий данные инструменты не подходят?
Сервис — один на всех клиентов. У каждого клиента — своя локальная база данных.
А вот было бы хорошо увидеть статью как обрабатываются ошибки конкурентные проверок, когда несколько клиентов обновляют одну туже запись. А также есть ли возможность настаивать логику синхронизации (оптимистическая, пессимистическая, версионность данных и др. )?
Так Azure Mobile Services поддерживает триггеры CRUD операций на Node js, а не знаю как это называется на .Net вы получаете практически полный контроль над мобильным сервисом, хотя могу ошибаться, т.к. видел код давно и из далека.
Впечатляет, что уж говорить =) Спасибо за эту новость!
Статья — супер, спасибо! А будет продолжение? Будет здорово, если будет раскрыта тема изменения схемы хранения данных.
Будет, но не на след неделе. Со схемой там все просто. Ты меняешь свой объект, например добавляешь еще одно поле и система при синхронизации автоматом создает тебе это поле в таблицах. Как это себя ведет при переименовации таблиц или даже полей — не проверяла пока.
Не знаю, как было на момент написания статьи, но сейчас, мне кажется, с версией WindowsAzure.MobileServices 1.2.1 (как на screenshot'е) он не сработает, требуется WindowsAzure.MobileServices 1.3, который пока что только beta2. Да и класс MobileServiceLocalStore, от которого наследуется текущая версия MobileServiceSQLiteStore, входит только в версию 1.3. Впрочем, подождём release-версий и того, и другого, тогда уж будет всё определённо.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий