1) Я использую Visual Studio 2008 (С#)
2) Я хочу, чтобы мое настольное приложение "запоминало" определенные настройки (предпочтения) для каждого пользователя индивидуально.
3) Приложение будет использовать собственную базу данных пользователей (логины + пароли), поэтому они не имеют ничего общего с учетными записями Windows.
Как я могу это сделать?
Я подумывал создать таблицу USERSetting с столбцами пары имя/значение и затем сериализовать эту информацию в класс USERSetting. Мои настройки сами по себе могут быть большим xml, и мне было интересно, есть ли лучшее решение.
Любой пример кода будет полезен.
Поместить его на сервер с остальными данными - ваш лучший вариант. Таким образом, данные получают резервное копирование регулярно, и если кто-то получает новый компьютер, они не теряют свои настройки.
Пара значений имени достаточно проста для начала, но с точки зрения дизайна базы данных это не считается хорошей практикой. Нормализованная структура данных будет моим выбором.
Вы можете поместить настройки в структуру XML и поместить их в базу данных, если считаете, что это упростит вам.
Несколько упрощений, которые вы можете сделать здесь.
Если вы используете SQL Server, он поддерживает XML изначально - вы можете хранить свои настройки XML непосредственно в базе данных и из нее. Это позволит вам сериализовать/десериализовать ваш XML без необходимости выполнять какой-либо ручной перевод свойств.
Посмотрите на использование Поставщика пользовательских настроек, чтобы легко обрабатывать перемещение настроек взад и вперед.
можете ли вы использовать встроенные классы UserSettings? У них есть пользовательские настройки и настройки для всей системы.