Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Базы данных под .NET > Синхронизация sdf


Автор: erm0l0v 19.6.2012, 11:01
Доброго времени суток.

В моей задаче требуется выполнить синхронизацию баз SDF на компьютерах в локальной сети.

Для синхронизации можно использовать Sync Framework в котором есть стандартные провайдеры для синхронизации sdf. Но для работы провайдера необходимо создать подключение в базе. Я не могу подключиться к базе на удаленном компьютере, вернее теоритически это возможно, например если положить базу в расшаренную папку, но это не очень хорошее решение. Кроме того что база будет лежать в расшаренной директории, SQL Compact 3.5 не поддерживает множественные подключения, то есть в момент синхронизации приложение не сможет работать с базой и наоборот.

На каждой машине с базой запущен процесс который и использует базу. Я планировал выполнить синхронизацию по сети: через именованные каналы или WCF. И в таком случае синхронизация будет выглядеть так: с одной стороны мы указываем стандартный провайдер, с другой самописный провайдер который выполняет синхронизацию по сети.

На сколько это хорошее решение? Возможно есть вариант проще, например возможность добавить прокси для стандартного провайдера?

Есть ли у вас опыт разработки подобных схем синхронизации? Возможно вы сможете поделиться полезными примерами или статьями на эту тему?

Автор: erm0l0v 21.6.2012, 08:37
Пытался создать прокси для существующего провайдера, но столкнулся с несколькими трудностями (то объект который используется в качестве параметра не сереализуется, то класс нельзя переопределить). Видимо все таки придется писать свой провайдер.

Подскажите, вы никогда не сталкивались с созданием своего провайдера для sdf? Буду признателен если дадите какие нибудь полезные ссылки.

Особенно интересует возможность создание своего провайдера, и использованием стандартного хранилища методанных. (Уж очень не хочется все писать с нуля, тогда и использования Sync не очень оправданно)

Автор: erm0l0v 21.6.2012, 12:47
Решил проблему. Если кому интересно сделал по http://code.msdn.microsoft.com/windowsdesktop/Database-SyncSQL-Server-e97d1208

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)