Как пользователи регулярно обновляют свою базу данных sqlCE в приложении .NET? - PullRequest
0 голосов
/ 15 февраля 2011

У меня проблемы с концепцией. Я пишу приложение для викторины c # с вопросами, ответами и профилями пользователей, которые хранятся в базе данных sqlCE, которая устанавливается вместе с приложением. Пользователи запускают приложение, отвечая на вопросы в базе данных. Однако они также могут написать свои собственные вопросы, которые должны быть доступны другим пользователям того же приложения после какого-либо ежедневного обновления.

Что я не могу понять, как подойти, так это импорт и экспорт новых данных вопросов и ответов. Я - разработчик LAMP и привык работать с веб-базами данных MySQL, но никогда не работал с таким БД, как это. Лучшее, что я могу придумать, это то, что пользователи экспортируют дамп (возможно, csv) своего нового набора вопросов и ответов, который загружается в основную базу данных в облаке. Чтобы обновить свою локальную базу данных, они импортируют CSV всей базы данных на основе облака, очищают локальную базу данных и вставляют содержимое CSV.

Не совсем так. Это небольшое приложение для хобби, а не коммерческое; Я просто пытаюсь оценить процесс. Стоит ли искать «проверить наличие обновлений»?

Любые указатели высоко ценятся, извинения за неспецифическую природу этого вопроса.

Ответы [ 2 ]

0 голосов
/ 15 февраля 2011

SQL CE SDK поставляется с Client Agent, DLL, которая выполняет удаленную репликацию с SQL Server.Если вашей «основной базой данных» является SQL Server, и вам разрешено запускать на нем агент IIS Server, репликация встроена.

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

0 голосов
/ 15 февраля 2011

Это зависит от того, как и где находится ваша «основная база данных».

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

Я бы обернул основную базу данных (вероятно, SQL Server Express Edition) за веб-службой (WCF). Клиенты запрашивают обновления у веб-службы и отправляют новые вопросы веб-службе.
Веб-сервис будет иметь как минимум два метода:

void AddQuestion(Question question);
Question[] NewQuestions(DateTime fromDate);

Эти методы на сервере будут обрабатывать сохранение новых вопросов и извлечение новых / обновленных вопросов в основной базе данных. Клиент обрабатывает все вопросы в локальной базе данных Compact SQL.

Не позволяйте пользователям обрабатывать дополнительные инструменты и файлы для синхронизации баз данных. Пусть приложение сделает работу.

...