我正在开发基于Windows的桌面应用程序,当应用程序启动时,我需要在某个地方存储一些小数据。
目的是在同一App的实例之间共享一些数据。同样,数据的大小非常小,在这种情况下,它只是一个字符串。
我做了一些研究,发现有以下选择:
现在我正在使用最简单的一个 - #3。我想知道其他人如何处理同样的问题?有什么建议吗?
谢谢
答案 0 :(得分:3)
添加5:.net配置模型。您可以在项目设置下设置字段 - >这些设置将在AssemblyName.Properties
对象的名称空间Settings
中提供。
如果您确实需要自己动手,我建议您将这些文件保存在%appdata%\YourProgramName
中。您可以通过Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
获取路径。
答案 1 :(得分:0)
答案 2 :(得分:0)
如果要存储的数据不敏感,可以将其存储在纯文本文件中。 使用%appdata%更集中,我喜欢这个主意。
答案 3 :(得分:0)
文件系统是保存数据的最佳位置。如果设置是每个用户,请将文件存储在用户的主文件夹中。如果用户之间共享设置,请将文件存储在共享数据目录中(上次使用Windows时为C:\Program Files
)。您应该在以下任一位置为应用程序创建一个子目录。
简单的文本文件适用于简单的字符串。
数据交换格式(如json或yaml)适用于复杂的数据结构。
数据库(例如SQLite(通常存储在.db文件中))适用于必须经常读取和写入磁盘的数据。
答案 4 :(得分:0)
我认为您使用哪种方法的问题的答案将取决于您正在使用的流程。如果您正在为开发运行更多的敏捷流程,那么在迭代期间我会做最少的工作,以便在您的应用之间成功存储和共享设置。随着关于应用程序需求或可能性能的更多要求成为问题,只需重新设计解决方案以满足新要求。
但是,如果您正在为您的开发(预先设计大型设计)执行更多的瀑布流程,并且您是否预期应用程序的要求将超出您目前所知的范围(这显然经常发生)然后我会设计并构建一个过去一直运行良好的解决方案。某种类型的数据库引擎,无论是重量级如MySQL还是微软的SQL Server,还是像SQLite这样的轻量级版本都将提供良好的结构机制,以便在多个应用程序之间共享数据。
关于是否使用SQLite或XML进行设置,stackoverflow上还有another discussion。
答案 5 :(得分:0)
我使用数据库组合来获得更安全和用户特定的数据,例如用户名和分数(我正在创建游戏),以及用于更多全局设置的注册表。