Мы не можем дать вам точный ответ, потому что не существует «правильного» ответа, подходящего для всех сценариев использования. Например, если вы используете SQL Server на внутреннем сервере и SQL CE локально, вы всегда можете настроить репликацию слиянием и обработчик данных обработать все это за вас. Это довольно чисто. Использование автономного блока приложения может решить эту проблему. Возможно использование опции store and forward.
Вы можете хранить локально, а затем выполнить собственную синхронизацию с прямым подключением, веб-сервис службы WCF используется при обнаружении сети. Вы можете использовать MSMQ для доставки.
Вам нужно подумать не о том, что такое «правильный» путь, а о том, как ваша реализация повлияет на удобство использования приложения. Если вы отключите функции из-за отсутствия подключения, будет ли приложение работать? Если у вас есть устаревшие данные, это проблема? Может быть, некоторые важные данные должны быть переданы, когда у вас есть GSM / GPRS (который обычно не бесплатный), и больше будет сделано, когда у вас есть 802.11. Может быть, вы можете работать весь день с утренними утренними таблицами и загружать только транзакции, когда устройство отслеживает, какие изменения были внесены.
По сути, это действительно зависит от того, как они используются, характера данных, важности транзакций данных между полевыми устройствами, влияния задержки данных и, возможно, других факторов, которые я не могу придумать без надзора.
Итак, первым шагом является определение того, как приложение должно использоваться, , а затем определяют инфраструктуру и архитектуру для обеспечения требуемого подключения и доступа к данным.