在Xarmin.Forms中存储不经常更改的数据的最有效方法

时间:2019-02-15 18:06:16

标签: c# xamarin.forms xamarin.android xamarin.ios visual-studio-2017

我是应用程序开发的新手,我正在Visual Studio 2017社区中做概念证明应用程序。目的是拥有Android和IOS版本。

该应用程序的目的是每次测试记录五个练习结果,并根据每个练习的一组目标给出通过/失败结果。测试目标将取决于完成测试的人的年龄,性别和水平

例如,可能是针对25岁1级男性的测试目标

  1. 俯卧撑目标22
  2. 班车在60秒内到达目标20 等等

我希望针对用户,年龄,性别和水平的所有变化制定200条目标。特别是,如果我考虑使用sqlite(我已经在项目中使用它来存储学生信息和结果),我正在考虑如何播种初始数据表。如果我在第一次启动时通过静态资源文件进行编码,那么我可以读取数据文件(xml / csv / json)并播种目标的数据表,并稍后替换该文件以使用应用程序设置重新导入以表示重新种子数据表是必需的,但是我担心我正在“膨胀” App的大小,并且想知道哪种格式更有效地读取

这些目标不会经常更改,但可以每年检查一次并更改

在WPF中,我将使用此数据作为资源创建一个csv或Json文件,并在普通C#类中读取它以对目标进行建模。但是,在阅读时,会担心此类静态文件会“膨胀”完成的应用程序的大小,并且在使用时会延迟创建目标列表,并且没有本机csv库

我还希望能够将新数据(目标)导入资源文件

请最有效的方法是什么

2 个答案:

答案 0 :(得分:1)

如果我正确理解了您的情况,则需要为每个用户保存5个targt,那么Xamarin.Essentials: Preferences可能值得考虑。它在Android上使用共享首选项,在iOS上使用NSUserDefaults。

如果要保存更多信息,那么SQLite似乎是一个不错的选择。

答案 1 :(得分:1)

查看选项,将“初始” DB文件作为资源。因此,您可以准备作为数据库结构作为种子数据。初次启动时,仅需要将应用程序复制到文档目录并使用它(按原样对资源进行简单的二进制复制)。

稍后,您将需要某种代码片段,以将更改后的数据从新的“初始DB文件”合并到文档目录中的本地文件。

相关问题