Каков наилучший способ хранения настроек в приложении .Net Winforms, которое может быть развернуто в среде Citrix? - PullRequest
0 голосов
/ 10 ноября 2010

У меня есть настольное приложение, которое при первом запуске запрашивает сведения о соединении с базой данных, а затем я хочу сохранить их для будущего использования (в виде зашифрованной строки), чтобы в следующий раз, когда пользователь запускает приложение, они могли повторно использовать. Теперь клиент работает в среде Citrix, с которой я раньше не сталкивался, и я хочу убедиться, что эта зашифрованная строка базы данных сохранена таким образом, чтобы она была доступна пользователю, откуда бы он ни входил - я думаю, я говорю о том, что приложению необходимо знать об этой настройке в своем перемещаемом профиле, но об этом мне раньше не приходилось беспокоиться, поэтому я просто проверяю, есть ли какие-то ошибки, которые мне нужны быть в курсе.

Обычно я просто использую пространство имен My.Settings в .Net, но это урезает его в этой среде?

Буду признателен всем, кто знает "наилучшую практику" для сохранения пользовательских настроек таким образом, чтобы у перемещающегося пользователя не возникало проблем с повторным вводом своих настроек при входе в систему из нового местоположения.

Причиной установки соединения с БД таким способом является то, что есть тестовая и живая базы данных, между которыми пользователь может переключаться (идентичные базы данных, разные серверы).

Было бы лучше сохранить живые и тестовые строки подключения в app.config и позволить администраторам вручную обновлять их после установки, а затем предоставить переход от тестирования к жизни в пользовательском интерфейсе?

Я обычно работаю на сайтах asp.net, где все хорошо живет в web.config, так что это всего лишь шаг за пределы моей зоны комфорта. Я вижу довольно много вариантов в книгах, но мне интересно, есть ли у кого-нибудь совет, какой метод лучше всего подходит для них?

Я использую VB.Net 3.5 (Visual Studio 2010). Это проект форм Windows с несколькими библиотеками .dll в решении, где происходит фактический доступ к БД.

Ответы [ 2 ]

1 голос
/ 10 ноября 2010

Как вы уже писали, вам нужно убедиться, что ваши сохраненные настройки окажутся в перемещаемой части профиля. Это может быть куст реестра HKEY_CURRENT_USER или папка% APPDATA%, которая преобразуется в% USERPROFILE% \ AppData \ Roaming (в Vista и новее, но также в перемещаемую папку AppData для более ранних операционных систем в старых операционных системах).

В .NET пользовательские настройки могут храниться как в роуминге, так и в локальных частях профиля пользователя. Для настройки роуминга необходимо установить для свойства «Роуминг» значение true. См. Эту статью для объяснения, а также для путей, которые настройки фактически сохраняются в:

http://www.codeproject.com/KB/vb/appsettings2005.aspx

0 голосов
/ 11 ноября 2010

Если вы заранее знаете строки подключения, вы можете сохранить их в app.config и попросить пользователя в начале приложения выбрать, например, подключение через ComboBox.

Если вы заранее не знаете строки подключения, я могу подумать о следующих опциях:
1- Используйте базу данных, для которой вам известна строка подключения, или локальную базу данных, SqlServerCE .sdf, для хранения этой информации.
2- Используйте пользовательские настройки в .Net, доступные через Properties.Settings.Default.NameofSetting в C #.

...