【问题标题】:Most efficient way to store data that changes infrequently in Xarmin.Forms在 Xamarin.Forms 中存储频繁更改的数据的最有效方式
【发布时间】:2019-07-09 22:07:41
【问题描述】:

我是应用程序开发的新手,我正在 Visual Studio 2017 社区中做一个概念验证应用程序。目标是有安卓和IOS版本。

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

例如一个 25 岁男性 1 级的测试目标可能

  1. 俯卧撑目标 22
  2. 穿梭机在 60 秒内运行目标 20 等等

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

这些目标不会经常更改,但可能会每年审核一次并更改

在 WPF 中,我将创建一个包含此数据的 csv 或 Json 文件作为资源,并在纯 C# 类中读取它以对目标进行建模。然而,在阅读时,人们担心这些静态文件会“膨胀”完成的应用程序的大小,以及在使用时创建目标列表的延迟,并且没有原生 csv 库

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

请问最有效的方法是什么

【问题讨论】:

  • 创建一个 API REST 服务,应用可以在需要时拉取数据
  • 我正在为一个小型空手道协会写这篇文章,因此无法访问 API 网站。我认为首席讲师有一个这些目标的 excel 表,他们可以生成(xml 或 csv?)更新目标的文件并发布到 Facebook 组,供学生下载和更新应用程序。此外,当测试完成时,课堂上可能没有 wifi 覆盖,所以不是 API
  • 如果您的数据不包含敏感信息,您可以将其放在 JSON 文件中并从保管箱共享链接中提取
  • 是的,好的。有 xarmin 的 Dropbox 库吗?以及如何实现这一点的例子,就像我说的那样:-)
  • c-sharpcorner.com/article/… 我认为您不需要特殊的库,因为它将是不需要身份验证的共享链接

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


【解决方案1】:

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

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

【讨论】:

  • 您好,您的理解是正确的。我来看看。但我希望针对用户、年龄、性别和级别的所有变化有两百行目标。特别是,如果我考虑 sqlite(我已经在 prohect 中使用它来存储学生信息和 reaults),我正在考虑如何为初始数据表播种。如果我在第一次启动时通过静态资源文件进行编码,我可以读取数据文件 (xml / csv /json) 并播种数据并稍后替换该文件以使用应用程序设置重新导入以表示数据的重新播种表是必需的,但担心我是否“膨胀”
【解决方案2】:

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

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

【讨论】:

  • 好的,这在概念上是有道理的,但不确定如何实现搜索短语以找到任何好的例子来工作
猜你喜欢
  • 2015-04-30
  • 2017-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-23
  • 1970-01-01
相关资源
最近更新 更多