XCOPY-развертывание Microsoft Sync Framework в сценарии без прав администратора (т. е. установка ClickOnce)

В настоящее время я разрабатываю интеллектуальное клиентское приложение (WPF), которое должно работать в режиме «иногда отключен». Для автономного сценария я рассматриваю использование:

  • Отключенный блок приложения Service Agent (от Smart Client Software Factory)
  • Платформа синхронизации Майкрософт

Я должен упомянуть, что я хочу, чтобы мое интеллектуальное клиентское приложение можно было развертывать с помощью XCOPY, автоматически обновлять и устанавливать без административных привилегий — в основном приложение, развертываемое с помощью ClickOnce. Из того, что я могу сказать, это означает, что Microsoft Sync Framework отсутствует, потому что в его реализации есть некоторый COM, который необходимо зарегистрировать на клиенте, для которого требуются права администратора. Можно ли XCOPY развернуть и запустить MSF из приложения ClickOnce? Любые другие идеи для синхронизации данных?




Ответы (3)


Зачем вам использовать Sync Framework? Есть ли конкретный вариант использования, который вы имеете в виду, где он будет работать хорошо?

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

То, что мы сделали в моих последних двух приложениях Smart Client, было простой ручной реализацией для «синхронизации» таких вещей, как справочные данные. Все, что синхронизируется, не проходит через DSA (логически синхронизация происходит только в подключенном режиме).

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

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

Это немного дополнительная работа на стороне клиента и сервера, но, честно говоря, я считаю, что это меньше работы, чем попытка получить какую-то внешнюю структуру, особенно если эта структура не может быть развернута в вашем пакете развертывания clickonce.

Делая ваше приложение «иногда подключаемым», вы значительно усложняете систему... так что удачи!

person wallismark    schedule 04.03.2010

Из всего, что я могу сказать, MSF требует установки с правами администратора, что раздражает меня до глубины души, поскольку более ранние версии Sync for ADO.NET этого не делали.

person Jon    schedule 01.11.2009

Привет, может быть, слишком поздно, но вы можете использовать пакет начальной загрузки. "... примеры пакетов загрузчика Sync Framework 2.0, которые можно использовать с проектами установки и развертывания Visual Studio и приложениями ClickOnce для распространения компонентов Sync Framework 2.0..." (http://www.microsoft.com/downloads/details.aspx?familyid=109DB36E-CDD0-4514-9FB5-B77D9CEA37F6&displaylang=en)

person Paul van Dam    schedule 26.03.2010