在可能部署在Citrix环境中的.Net Winforms应用程序中存储设置的最佳做法是什么?

时间:2010-11-10 11:10:46

标签: .net winforms settings citrix

我有一个桌面应用程序,在第一次执行时提示输入数据库的连接细节,然后我想保留它们以供将来使用(作为加密字符串),以便下次用户启动应用程序时它们可以是重新使用。现在客户端运行了一个我以前没有接触过的Citrix环境,我想确保这个加密的数据库字符串以这样一种方式保存,即无论用户从哪里登录都可以使用 - 我认为我所说的是应用程序需要在漫游配置文件中注意这个设置,但这是我以前没有必要担心的事情所以我只是检查是否有任何我需要的陷阱请注意。

通常我只是在.Net中使用My.Settings命名空间,但是在这种环境下是否会削减它?

我很感激任何知道保存用户设置的“最佳做法”的人,以免漫游用户在从新位置登录时再次输入他们的设置。

以这种方式设置数据库连接的原因是,有一个用户可以在其间切换的测试和实时数据库(相同的数据库,不同的服务器)。

将实时和测试连接字符串存储在app.config中是否更好,并允许管理员在安装后手动更新它们,然后在UI中提供从测试到实时的转换?

我一般都在asp.net网站上工作,所有的东西都在web.config中幸福地生活,所以这是我的舒适区之外的一点点。我可以在书中看到很多选项,但我想知道是否有人对哪种技术最适合他们有任何建议?

我正在使用VB.Net 3.5(Visual Studio 2010)。这是一个Windows窗体项目,在解决方案中有一些.dll库,可以进行实际的数据库访问。

2 个答案:

答案 0 :(得分:1)

正如您已经写过的,您需要确保已保存的设置最终位于配置文件的漫游部分。这可以是注册表配置单元HKEY_CURRENT_USER或文件夹%APPDATA%,它解析为%USERPROFILE%\ AppData \ Roaming(在Vista和更新版本上,但也适用于旧操作系统上特定于语言环境的漫游AppData文件夹)。

在.NET中,用户特定的设置可以存储在用户配置文件的漫游和本地部分中。要使设置漫游,需要将“漫游”属性设置为true。请参阅此文章以获取解释以及实际保存设置的路径:

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

答案 1 :(得分:0)

如果您事先知道连接字符串,则可以将它们存储在app.config中,并在应用程序开始时请求用户通过ComboBox选择连接。

如果您事先不知道连接字符串,我可以考虑以下选项:
1-使用您知道其连接字符串的数据库或本地数据库SqlServerCE .sdf文件来存储这些信息。
2-使用.Net中的用户设置可通过C#中的Properties.Settings.Default.NameofSetting访问。