Локальная синхронизация с хранилищем таблиц Azure - PullRequest
1 голос
/ 05 сентября 2011

Я хочу синхронизировать данные в хранилище таблиц Azure с локальным клиентом рабочего стола Windows.Настольный клиент должен постоянно работать без подключения к Интернету, поэтому ему необходимо загрузить новейшие данные из ATS и загрузить любые изменения, внесенные в локальные данные.

Есть ли что-то заранее подготовленное, чтобы позаботиться об этом илимне нужно кодировать это с нуля?

Может быть, в сети есть статьи, которых я еще не видел.Я полагаю, что Sync Framework является подходом, но я не нашел ничего особенного в использовании с хранилищем таблиц Azure.

Ответы [ 3 ]

1 голос
/ 06 сентября 2011

Я думаю, что фактическая синхронизация самих данных - это наименьшая из ваших проблем. На самом деле эмуляция хранилища Azure, когда он отключен, так что большая часть вашего кода отделена от реальной реализации, вероятно, будет намного сложнее. Хранилище таблиц Azure сложно эмулировать. Вы можете попытаться использовать SQL Express на локальных клиентских рабочих столах и в них с таблицами PartitionKey, RowKey, TimeStamp и BLOB на основе xml для хранения объектов аналогично тому, как это делает ATS, но получить его будет довольно сложно. чтобы эмулировать правильно.

Я не видел каких-либо технологий или структур, которые делают это. Ваша потребность в емкости и / или масштабируемости настолько велика, что вам нужно использовать хранилище таблиц Azure? Можете ли вы сделать с SQL Azure вместо этого? Запуск SQL Express на локальных клиентах для настольных компьютеров, синхронизация SQL Azure с SQL Express и переключение между двумя хранилищами данных будет НАМНОГО проще.

0 голосов
/ 22 мая 2012

Другой подход заключается в предоставлении ваших данных через службу RESTful (посмотрите на веб-API asp.net).Идея состоит в том, что вы просто вызовете URL-адрес, чтобы получить ваши данные

 GET //yourapi/someresource

В заголовке или строке запроса вы можете прикрепить некоторые данные, чтобы помочь службе принять решение о том, что давать.ты вернулся.В моем случае я передаю идентификатор устройства (Guid, сгенерированный на устройстве) и последнюю временную метку синхронизации.

Используя их, вы можете настроить небольшой диспетчер синхронизации за веб-службой, который возвращает вам все объекты, измененные из других мест.через определенное время.Чтобы синхронизировать все это, у меня есть журнал синхронизации в хранилище Azure, в котором есть userId, entityId, deviceId, Timestamp.

Запрашивая и обновляя эту таблицу, я могу заставить сервер быстро сообщить мне, что изменилось, и этоработает быстро, потому что раздел для каждого клиента.

Поскольку я абстрагировал хранилище таблиц, мне фактически не нужно копировать его на клиенте, я могу хранить данные так, как хочу.

0 голосов
/ 08 сентября 2011

Microsoft Sync Framework может помочь?

https://msdn.microsoft.com/en-us/library/bb902854(v=sql.110).aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...