Каков наилучший подход к развертыванию приложений WPF с локальной базой данных? - PullRequest
0 голосов
/ 21 октября 2009
  • Я хочу создать приложение WPF , которое существует в одном каталоге , включая все необходимые ему файлы: .exe , .mdf база данных, .xml файлы конфигурации и т. д.
  • приложение должно работать независимо от того, в каком каталоге оно находится, чтобы оно поддерживало сценарий :
    • человек 1 выполняет приложение в c:\temp\wpftool.exe
    • приложение читает и записывает в базу данных c:\temp\wpftool.mdf
    • человек 1 архивирует этот каталог и отправляет его человеку 2 по электронной почте
    • person 2 распаковывает в c:\Users\jim\documents\checkout\wpftool.exe, приложение считывает и записывает в одну и ту же базу данных в этом каталоге (c:\Users\jim\documents\checkout\wpftool.mdf)
    • person 2 zips снова открывает каталог и отправляет его обратно человеку 1 на продолжить вносить изменения в него

Каков наилучший способ создания приложения WPF, поддерживающего описанный выше сценарий? , учитывая:

  • должно быть нет жестко запрограммировано строки подключения к базе данных
  • что такое лучшее развертывание метод , нажмите один раз? или просто скопируйте файл .exe из каталога / release?
  • разумная безопасность , чтобы пользователям приходилось входить в систему на основе паролей в базе данных, и, если случается, что третье лицо перехватывает электронную почту, он не может легко просмотреть данные в базе данных

Ответы [ 2 ]

1 голос
/ 21 октября 2009

Для базы данных я хотел бы изучить возможность использования «пользовательского экземпляра» в SQL Express. В сочетании с | DataDirectory | поддержка строки подстановки позволяет очень легко подключить ваше приложение.

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

1 голос
/ 21 октября 2009

Некоторые точки на стороне базы данных:

Предполагая, что «Новый пользователь» уже установил SQL, им нужно будет присоединить (вновь скопированную) базу данных. Помимо наличия достаточных прав доступа для присоединения базы данных, ваше приложение должно будет настроить вызов так, чтобы он включал в себя диск \ папку, содержащий файлы базы данных. Если ваш .exe может на лету определить, что это «новая домашняя папка», вы сможете это решить.

Дайте определение "разумной безопасности". Любой файл базы данных, который я получаю, я могу открыть, просмотреть и в конечном итоге выяснить (зависит от того, насколько неясным является содержимое). Можете ли вы запутать свои данные, например, используя таблицу «А» вместо «Клиент»? Вы действительно хотите? Наилучшая возможная защита включает в себя шифрование данных, и управление ими - и, в частности, ключами шифрования - может быть довольно сложным вопросом, в зависимости от того, насколько «безопасным» вы хотите, чтобы ваши данные были.

...