Стратегия развертывания базы данных Sql Server Compact Edition - PullRequest
1 голос
/ 23 августа 2009

У меня есть вопрос о наиболее подходящем способе развертывания базы данных SQL Server CE с нашим клиентским приложением. Я понимаю, что нам нужно установить предварительные требования для SQL Server CE и т. Д., Поэтому вопрос не в том, чтобы заставить его работать. Это уже делает.

Прямо сейчас у нас есть то, что мы просто отправляем копию файла .mdf (без данных) вместе с приложением, которое копируется в соответствующее место во время установки. Это прекрасно работает, но мне было интересно, является ли это «правильным» методом развертывания базы данных с приложением или база данных должна быть либо.), Сгенерированной во время установки (как пользовательское действие установки), либо b.) генерируется при первом запуске приложения.

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

Ответы [ 2 ]

1 голос
/ 24 августа 2009

Речь идет о файле * .mdf, а не о том, как обеспечить доступность dll SqlServerCE.

Способ развертывания приложения базы данных сильно зависит от следующих вопросов:

Является ли база данных на пользователя?

  • Если это не так?
    • Наличие базы данных в каталоге приложений - плохая идея для Vista, поскольку она может инициировать запросы ОАЭ при изменении файла.
  • Если это для каждого пользователя, то реально вы должны сгенерировать новый для каждого пользователя, так что для этого придется выполнить некоторый код, чтобы вы могли так же легко использовать любой из следующих методов.

Если нет, то просто включить один исходный файл будет нормально, и это самый простой вариант.

Является ли база данных пустой для начала (т. Е. Вы можете 'создать структуру таблицы в коде и не иметь никакого файла * .mdf для ее базирования.

  • Это может сделать тестирование более чистым, но означает, что вы не можете взаимодействовать с «исходной» базой данных с такими вещами, как инструменты SQL Server.
  • Если начальное состояние является либо схемой, либо очень маленьким, встраивание «шаблона» в dll сделает ваше развертывание более гибким и будет означать, что никто не может случайно «сломать» базу данных шаблонов, удалив ее / изменив ее случайно .

Если имеются важные данные, это почти наверняка исключает встроенный параметр.

Существуют ли существенные данные в начальном состоянии базы данных, которые вы, возможно, захотите изменить, не изменяя dll?

  • Возможно, вы хотите настроить его для каждого клиента
  • Возможно, вы захотите создать собственное развертывание без создания новой сборки.

Если это так, то вы, скорее всего, захотите, чтобы файл был отдельным, а не встроенным ресурсом.

0 голосов
...