USB-синхронизация локальной базы данных с WP7 - PullRequest
0 голосов
/ 28 мая 2011

У меня есть требование, когда данные на сервере SQL должны синхронизироваться с устройствами WP7 через USB.Сначала я думал о создании библиотеки WCF, но она будет работать в режиме онлайн и синхронизироваться, даже если устройство подключено к USB в локальной сети (где проще и дешевле получить данные по локальной сети, чем выходить в интернет и получать их).

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

Мои вопросы:

  1. Есть ли способ запрашивать данные из локальной сети при подключении к локальной сети в WCF?
  2. Есть ли у кого-то код C #, который я могу использовать для записи процедур синхронизации в usb через локальную сеть?(Я хотел бы иметь код, если у кого-то есть такой)
  3. Есть ли лучший способ добиться того, что я пытаюсь сделать?

Я надеюсь на некоторыеБыстрые ответы на эту проблему, любая помощь с благодарностью.

Спасибо.

Ответы [ 3 ]

0 голосов
/ 30 мая 2011

Вы можете использовать NetworkInterface.NetworkInterfaceType для обнаружения соединения типа Ethernet.

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

0 голосов
/ 30 мая 2011

В дополнение к ответам Мурвена и Мэтта, я бы рекомендовал изучить Microsoft Sync Framework , который поддерживает WP7 в качестве клиента, обычно использует WCF на сервере и имеет отличную поддержку для широкого диапазона крайних случаев.

Затем, согласно ответу Мэтта, вы можете наблюдать за изменениями подключения и при подключении через USB начать синхронизацию с локальным IP-адресом.

Когда речь идет о таргетинге на манго, вы можете реализовать его как ResourceIntensiveTask , и он будет работать при подключении USB, даже если приложение не запущено.

0 голосов
/ 29 мая 2011

Я рекомендую, чтобы ваш WCF API имел DNS-имя, указывающее на внутренний IP-адрес, который недоступен за пределами локальной сети, и в маршрутизации он будет разрешаться через USB, а другое DNS-имя, указывающее на внешнееIP-адрес, который доступен только за пределами локальной сети.Ваше приложение сначала попытается подключиться с использованием локального IP-адреса, который должен пройти через локальную сеть, а в случае сбоя он должен повторить попытку с внешним параметром.

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