.NET Compact Framework - SQL Server Compact или плоский файл в качестве резервной копии. - PullRequest
0 голосов
/ 16 марта 2012

У меня есть вопрос о плюсах и минусах использования базы данных и простого файла в приложении для Windows Mobile.

Мы разрабатываем мобильное приложение, работающее на Windows Mobile 6.5 и использующее C # /. NET Compact Framework 3.5.

Мобильный компонент используется в системе инвентаризации для получения доставок.Затем эти данные отправляются на сервер приложений с помощью веб-службы через Wi-Fi.

Теперь нам нужно реализовать план резервного копирования.Мы договорились, что тогда, когда мобильное устройство не сможет отправить данные на сервер, оно должно сохранить их локально, а затем отправить позже.Его можно отправить с мобильного или подключить к ПК или подключить к ПК через USB-порт, который извлечет данные, и ПК сможет отправить их на сервер.

Мой вопрос: что лучшеиспользовать в этом сценарии?Развертывание SQL Server Compact или запись данных в плоский файл (xml, двоичный файл и т. Д.)

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

Спасибо!

1 Ответ

1 голос
/ 16 марта 2012

Мой личный опыт использования этого сценария заключается в использовании SQL CE для репликации слиянием вместо веба. сервис по очень веским причинам:

  1. Ваше приложение становится легче разрабатывать, потому что вы читаете / пишете непосредственно в базу данных и позволяете механизму CE выполнять слияние. (Linq to Sql и т. Д.)
  2. Вы можете вручную контролировать конфликты слияния на сервере или клиенте. И это уже построено, вам не нужно строить это самостоятельно.
  3. Резервное копирование не требуется, поскольку ваши данные на устройстве CE уже находятся в базе данных.
  4. Данные могут кэшироваться локально при необходимости и фильтроваться устройством или пользователем (то есть только данные, необходимые устройству / пользователю, могут быть реплицированы на устройство.)

Хотя для этого требуется больше знаний по SQL, это надежная технология, которая работает, и ее не нужно постоянно переписывать, тестировать и отлаживать.

Если вы заблокированы с помощью веб-службы, то использование SQL CE мне кажется излишним. Я просто дублировал бы действия базы данных и записывал транзакции в файл (xml / json / binary), а затем использовал их по мере необходимости (запуска их на веб-сервисе в диапазоне Wi-Fi или на сервисе, работающем на машине, которая извлекает файлы с мобильного устройства на локальный ПК или сервер и выполняет эти транзакции).

...