在哪里存储用户的界面选择?

sbe*_*rli 9 user-interface user-interaction

存储接口选择的广泛接受的方式是什么,例如"不再显示此消息"设置,以及用户的任何其他特定于接口的选择?注册?设置文件?我也可以将它们存储在数据库中,因为我的程序已经可以访问一个.

编辑 我当前的程序是本地的,但是将来我想把它做成基于网络的.

jdm*_*hal 7

非基于网络的计划:

我不会使用数据库.如果您决定切换数据库会发生什么?现在您必须迁移用户数据.卸载后会发生什么?

在Windows中,用户的AppData文件夹中的设置文件是合适的.在卸载时不删除这些也是可以接受的,因此设置将持续存在.我会回避用户设置的注册表.该区域更适合系统设置.

在*nix系统中有一个类似的区域,但我不确定我的头脑.这很久了.


具有本地设置的基于Web的程序:

Cookie几乎是基于Web的程序的唯一计算机专用选项.基于IP的过滤器是一个坏主意,因为大多数消费者互联网选项将每天一次IP转换为每周一次.您可以进行MAC过滤,但这将涉及使用原始套接字来获取MAC地址.即便如此,您可能最终得到路由器的地址,而不是计算机.意味着单个路由器上的两个人将获得相同的设置.


基于网络的全球设置程序:

您的程序应该查询Web服务.然后,该服务可以以当时最好的方式自由实施.数据库适合这种情况,因为您的用户数据可能已经存在并且已锁定在其中,从而提供了一种将数据与特定用户相关联的简便方法.

  • 关于"在卸载时不删除这些也是可以接受的"....但是在卸载例程中提供一个选项并不是一个坏主意,特别是如果它是大量数据.作为对用户的礼貌,如果没有别的. (4认同)
  • 我还想到了这样一个事实:用户可能正在卸载试图摆脱损坏的设置/配置,阻止他们使用应用程序(我们都在那里,我敢肯定!); 删除选项的另一个原因=) (2认同)