Синхронизация данных между настольным приложением Windows и клиентским приложением Windows Mobile - PullRequest
5 голосов
/ 25 мая 2010

Мне нужно создать очень быстрый прототип / концептуальное приложение для демонстрации кому-то в течение следующих нескольких дней, поэтому у меня есть минимальное время, чтобы исследовать это так полно, как обычно. Установка представляет собой очень простое приложение базы данных, работающее на ноутбуке - когда-либо один пользователь будет обновлять пару таблиц, поэтому я подумывал о том, чтобы настроить базовое приложение Win Forms на SQL Compact. Автоматически сгенерированные экраны редактирования сетки данных Visual Studio подойдут с небольшой настройкой. Второй аспект заключается в добавлении клиентского приложения Windows Mobile, которое может извлекать данные из обеих таблиц, хранящихся на ноутбуке, редактировать некоторые данные и вставлять дополнительные строки перед отправкой изменений обратно в копию базы данных на ноутбуке.

Я не занимался разработкой WinMo, так что мне лучше посмотреть. Достаточно ли просто синхронизировать данные между двумя базами данных, когда устройство WinMo подключено к ноутбуку через USB?

Большинство примеров, которые я рассмотрел до сих пор, похоже, синхронизируют SQL Compact с SQL Standard с использованием IIS, что кажется немного излишним. Объемы данных для синхронизации настолько малы, что я могу легко написать некоторый код ручной синхронизации, если мне будет легко запрашивать / обновлять Compact DB из приложения ноутбука, когда устройство подключено.

Edit:

Я видел упоминание о том, что быстрым и простым решением является использование RAPI - когда устройство подключено, скопируйте БД на ноутбук, подключитесь и выполните необходимые действия, а затем скопируйте его обратно на устройство. Есть проблемы с этим подходом? Это один пользователь ноутбука с одним пользователем мобильного устройства для синхронизации, так что это довольно простые вещи. В любой отдельной синхронизации объем обновлений может составлять менее 10 записей.

1 Ответ

5 голосов
/ 25 мая 2010

Взгляните на Microsoft Sync Framework . Имеются примеры синхронизации SQLCE , а также контактные данные . Страница Sync Developer Center также содержит множество информации.

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

EDIT

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

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