Использование файла SDF (база данных SQLCE) с пользовательским расширением в качестве типа файла данных моего приложения WPF - PullRequest
2 голосов
/ 14 мая 2011

Я создаю приложение в WPF (.NET 4)

Мое приложение создает, открывает и сохраняет файлы данных с пользовательским расширением (я буду называть их .myapp файлы для наглядности здесь).Я использую проект установщика, чтобы связать .myapp файлы с моей установленной программой, и я дал им их собственную иконку / actions / etc.)

A .myapp Файл - это просто файл базы данных SQLCE 3.5 с расширением, измененным с. sdf на .myapp .

Работает, но я ищусовет о том, является ли это хорошим способом ведения дел.

Часть меня задается вопросом, должен ли я сделать файл .myapp файлом-оболочкой, который содержит SDF, а также некоторые метаданные.Я предполагаю, что при этом я должен был бы загрузить SDF в память при открытии файла, а затем взять на себя ответственность за «сохранение» его обратно в файл.Мои причины для рассмотрения этой опции:

  1. Это позволило бы мне хранить дополнительные метаданные вместе с sdf, такие как предполагаемая версия приложения, другие быстро читаемые свойства и т. Д.
  2. Это позволило быя открываю файлы в режиме только для чтения (то есть, не сохраняя их обратно)
  3. Это (более того) защитит от переименования расширения в .sdf и открытия его в SQL Management Studio и возни с данными.

Это был бы возможный / лучший подход?Могу ли я увидеть преимущества в производительности при загрузке SDF в память?Будут ли какие-либо подводные камни, на которые стоит обратить внимание?

Любой другой совет приветствуется!

Ответы [ 2 ]

3 голосов
/ 14 мая 2011

Использование собственного расширения документа в ваших файлах sdf - отличная идея.Однако это не помогло бы обернуть файл sdf в другой файл и «загрузить в память», поскольку в строке подключения SQL Server Compact можно указать только путь к файлу.Движок SQL Server Compact управляет «загрузкой в ​​память» для вас и при необходимости выполняет сброс на диск.

1: Это можно сделать, сохранив метаданные в таблице / таблицах в файле sdf.2: Опция в режиме только для чтения является параметром строки подключения, поэтому вы можете сделать это, изменив строку подключения.3: Вы можете указать пароль для файла (также в строке подключения), и это зашифрует файл базы данных.

1 голос
/ 14 мая 2011

Еще одно преимущество - вы можете сделать простое шифрование файла. Это определенно повысит вероятность того, что никто не откроет файл напрямую и не изменит данные.

...