在C#WinForms应用程序中处理大量设置?

时间:2009-07-28 11:01:42

标签: c# .net migration visual-foxpro foxpro

我希望(希望)能够开展一个大型项目,将企业Visual FoxPro应用程序迁移到.NET 3.5上的C#3.0。我知道这个应用程序有大量的设置会影响从多用户/多站点配置到报告属性的所有内容。目前全球范围内至少有150种不同的设置。

这些设置当前只是作为位存储在应用程序的数据库中,这可以防止它们在用户级别进行更改,因为所有实例共享同一个数据库。

我的问题是,你知道有没有办法处理这些设置的存储,这些设置允许每个用户更改它们而不牺牲性能/它还需要以允许值为的方式存储在应用程序运行时更改。任何想法都将不胜感激。

4 个答案:

答案 0 :(得分:4)

我认为标准的Settings.Settings文件为您提供此功能,包括应用程序或用户范围的变量。虽然我不确定是否在不重新启动应用程序的情况下获取更改。

有关详细信息,请参阅此处: MSDN:Using Settings in C#

答案 1 :(得分:1)

如果您想要“企业”,可以尝试使用设置定义表,与用户设置表配对。

设置定义将具有由域列定义的PK(用于UI设置,连接设置,语言设置等......)和设置标识符。第三列将定义默认/全局值。

用户设置将PK设置为设置定义'PK +用户ID和设置值列varchar(x)。

如果应用程序可识别语言,则应将语言ID列添加到两个表中。

将用户更改保存到用户设置表应该是微不足道的。在全局设置更改时收到通知会更复杂。

编辑:要记住的一件事是始终回退到某些默认值:全局设置/默认语言。

答案 2 :(得分:0)

将User域添加到应用程序数据库中存储设置的表中,然后将当前用户作为参数添加到该表的所有读/写调用中。

答案 3 :(得分:0)

您可能必须逻辑地处理数据/应用程序特定的项目与特定于用户的项目。在VFP(foxpro)中,无论用户如何,表及其各自的主键显然是相同的。其他内容,例如默认值,可以根据个人用户,帐户,访问权限,添加/编辑/删除功能等进行自定义。

HTH