Стратегия развертывания базы данных Sql Server Compact Edition
У меня есть вопрос о наиболее подходящем способе развертывания базы данных SQL Server CE с нашим клиентским приложением. Я понимаю, что нам нужно установить предварительные требования для SQL Server CE и т. Д., Поэтому вопрос не в том, чтобы заставить его работать. Это уже делает.
Прямо сейчас у нас получается, что мы просто отправляем копию файла.mdf (без данных) вместе с приложением, которое копируется в соответствующее место во время установки. Это прекрасно работает, но мне было интересно, является ли это "правильным" методом развертывания базы данных с приложением или база данных должна быть либо.), Сгенерированной во время установки (как пользовательское действие установки), либо b.) генерируется при первом запуске приложения.
Любые мысли или предложения приветствуются. Я понимаю, что, вероятно, нет твердого ответа на этот вопрос.
2 ответа
Речь идет о файле *.mdf, а не о том, как обеспечить доступность DLL-файла SqlServerCE.
Способ развертывания приложения базы данных сильно зависит от следующих вопросов:
База данных на пользователя?
- Если это не должно быть?
- Начиная с версии Vista, наличие базы данных в каталоге приложений - плохая идея, так как она может инициировать запросы ОАЭ при изменении файла.
- Если это для каждого пользователя, то реально вы должны сгенерировать новый для каждого пользователя, поэтому для этого придется выполнить некоторый код, чтобы вы могли так же легко использовать любой из следующих методов.
Если нет, то просто включение одного исходного файла будет работать нормально и является самым простым вариантом.
Является ли база данных пустой для начала (т. Е. Вы можете 'создать структуру таблицы в коде и не иметь никакого файла *.mdf для ее базирования.
- Это может сделать ваше тестирование более чистым, но означает, что вы не можете взаимодействовать с "исходной" базой данных с такими вещами, как инструменты SQL Sever.
- Если начальное состояние является только схемой или очень маленьким, встраивание "шаблона" в dll сделает ваше развертывание более гибким и будет означать, что никто не может случайно "сломать" базу данных шаблонов, удалив ее / изменив ее случайно.
Если есть важные данные, то это почти наверняка исключает встроенную опцию.
Существуют ли важные данные в исходном состоянии базы данных, которые вы можете изменить, не изменяя dll?
- Возможно, вы хотите настроить его для каждого клиента
- Возможно, вы захотите создать собственное развертывание, не создавая новую сборку.
Если это так, то вы, вероятно, захотите, чтобы файл был отдельным, а не встроенным ресурсом.
Видеть это
Развертывание базы данных SQL Server Compact Edition с приложением
http://www.tomshardware.com/forum/18893-36-deploy-server
До свидания.