#.net #wpf #sql-server-ce
#.net #wpf #sql-server-ce
Вопрос:
Я создаю приложение в WPF (.NET 4)
Мое приложение создает, открывает и сохраняет файлы данных с пользовательским расширением (для наглядности я буду называть их файлами .myapp). Я использую проект установки, чтобы связать файлы .myapp с моей установленной программой, и я присвоил им их собственный значок / действия / и т.д.)
Файл .myapp — это просто файл базы данных SQLCE 3.5 с расширением, измененным с .sdf на .myapp.
Это работает, но я ищу совета о том, является ли это хорошим способом выполнения задач.
Часть меня задается вопросом, должен ли я сделать файл .myapp файлом-оболочкой, который содержит SDF, а также некоторые метаданные. Я предполагаю, что при выполнении этого таким образом мне нужно будет загрузить SDF в память при открытии файла, а затем взять на себя ответственность за «сохранение» его обратно в файл. Мои причины для рассмотрения этого варианта следующие:
- Это позволило бы мне хранить дополнительные метаданные наряду с sdf, например, предполагаемую версию приложения, другие быстро читаемые свойства и т.д.
- Это позволило бы мне открывать файлы в режиме только для чтения (т. Е. не сохраняя их обратно)
- Это (более того) защитило бы от того, чтобы кто-то переименовал расширение в .sdf и открыл его с помощью SQL Management Studio и возился с данными.
Был бы это возможный / лучший подход? Увижу ли я преимущества в производительности, загрузив SDF в память? Есть ли какие-либо подводные камни, на которые следует обратить внимание?
Любые другие советы приветствуются!
Ответ №1:
Использование пользовательского расширения документа в ваших файлах sdf — отличная идея. Однако не получилось бы обернуть файл sdf в другой файл и «загрузить в память», поскольку вы можете указать путь к файлу только в строке подключения SQL Server Compact. Модуль SQL Server Compact управляет «загрузкой в память» за вас и выполняет сброс на диск по мере необходимости.
1: Вы могли бы сделать это, сохранив метаданные в таблице / tables в файле sdf. 2. Открытие в режиме только для чтения — это опция строки подключения, поэтому вы можете сделать это, изменив строку подключения. 3. Вы можете указать пароль для файла (также в строке подключения), и это зашифрует файл базы данных.
Комментарии:
1. Спасибо! Это экономит мне много времени на попытки.
Ответ №2:
Еще одно преимущество заключается в том, что вы можете выполнить простое шифрование файла. Это определенно повысило бы вероятность того, что никто не откроет файл напрямую и не изменит данные.