【问题标题】:How can I migrate my WP8 application to universal when it uses a local linq to sql db?当它使用本地 linq to sql db 时,如何将我的 WP8 应用程序迁移到通用?
【发布时间】:2014-05-18 19:46:53
【问题描述】:

编辑:澄清一下,我指的是本地数据库支持:Local Database for Windows Phone 8 使用 Microsoft.Phone.Data.Linq 命名空间。我相信该技术是基于 SQL CE 的。

我有一个现有的 Windows Phone 8 应用程序,我想迁移到新的通用 Windows 应用程序框架。该应用程序严重依赖于嵌入到 Windows Phone Silverlight API 中的 Linq to SQL。我知道我可以坚持使用 Silverlight,但在我看来,微软将我们全部推向 Universal 只是时间问题。此外,如果我也想将此应用程序呈现为 Windows 应用程序,这才有意义。

所以,我真的很苦恼如何进行这种过渡,而不是让现有用户失望。显然,我可以使用不同的数据层重新构建应用程序并让用户重新创建他们的配置,但这不是对待我的用户的理想方式。

我很高兴迁移到不同的持久性机制,但仍然存在如何让他们现有的配置来迁移数据的问题?我想出的唯一选择是使用 Silverlight 创建一个中间版本,将数据迁移到新格式,然后再将应用程序升级到通用。在这种情况下,如果用户错过了中间升级,仍然有可能在此过程中失去用户。

想法?

【问题讨论】:

标签: windows-phone-8 linq-to-sql windows-phone-8.1 win-universal-app


【解决方案1】:

执行迁移的 Silverlight 应用的中间版本是最好的方法。如果您在商店中拥有该版本一段时间,您应该让大多数用户过渡,尤其是在他们升级到默认情况下自动更新应用程序的 Windows Phone 8.1 后。

【讨论】:

  • 我要走这条路。使用将现有数据库复制到 SQLite 的迁移逻辑发布我的 8.0 应用程序的更新版本。使用 SQLite-Net 和 CSharp-SQLite。我应该能够以最少的代码更改重用我的对象。
  • 早期版本的用户会发生什么?
【解决方案2】:

Amm... 我不放心,但适用于 Windows 8.1 的 SQL 已经可用,适用于 Windows Phone 8.1 的 SQL 处于预览状态。它不是 LinqToSQL,但它可以工作。因此,我认为,您可以尝试使用它与用户客户端上的当前数据文件进行交互,直到它们也是 SQL 数据库。 试试这个:http://blog.tpcware.com/2014/04/universal-app-with-sqlite-part-1/

【讨论】:

  • 使用 SQLite 将是我可以去的方向,但是如何读取用户现有数据来执行转换?这就是挑战。
  • 糟糕...我忘记了“隔离存储功能”。那么 SkyDrive 集成呢?您可以在当前应用程序中进行少量更改以向用户显示通知,您将在其中解释,如果他们不备份数据,他们可能会丢失数据。 WP8.1 正式版还没有准备好,还有很多工作等着你来改变你的应用程序。因此,这可能是通知所有用户的好时机。
  • 嘿!我发现了这一点:msdn.microsoft.com/en-us/library/dn642081%28v=vs.105%29.aspx 在“升级已发布的 Windows Phone 8 应用程序”部分他们说,即使您升级到 8.1 Windows 运行时(以及 Silverlight 8.1),也可以保存隔离存储中的数据。感谢相关主题:stackoverflow.com/questions/23787815/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-06
相关资源
最近更新 更多