8

对于 Silverlight 应用程序来说,什么是好的本地数据库?数据库的主要用途是为本地数据缓存和同步服务。我不相信 SQL Anywhere 或 SQLite 会起作用,因为它们使用不会在 silverlight 沙箱下运行的非托管代码

4

9 回答 9

2

为什么不使用 SL 2 中称为“隔离存储”的新功能?它完全支持本地数据库(如 Google Gear),但当然它不是数据库。您可以使用 XML 文件格式来保存它。

  • 优点;用户只需要安装 SL 运行时。
  • 缺点;它不完全是一个数据库

找到两个参考:

Moth 在他的博客中说http://www.danielmoth.com/Blog/2008/04/isolatedstorage-in-siverlight-2-beta-1.html Dino 在http://www.ddj 做了很好的总结。 com/windows/208300036?pgno=2

于 2008-11-26T04:47:32.233 回答
1

@亚伦菲舍尔,

我对这个问题也很感兴趣。我正在寻找 XBAP(浏览器中的 WPF)应用程序的数据库。这是我的问题“您可以推荐哪些具有独立存储支持的嵌入式数据库?”

SQLite 和 MSSQL CE(又名 SQL Anywhere)不起作用。

VistaDB 是在 .NET 中实现的,可以在约束下工作(它支持独立存储),但我正在寻找替代方案。

另一种选择是 Sybase iAnywhere - 但我不确定如何在最终用户机器上部署它。

我将尝试用于 Silverlight 的 DB4objects。如果可行,我会更新帖子。

于 2008-09-21T15:19:05.673 回答
1

答案是siaqodb。Siaqodb是真正的 Silverlight 客户端对象数据库,您只需一行代码即可存储对象并通过 LINQ 检索对象。有关更多信息,请查看http://siaqodb.com

于 2009-12-01T12:58:36.987 回答
0

根据这个例子,看起来可以使用 Google Gears 和 Sqlite。主要的缺点是集成工作量大,并且需要在客户的计算机上再安装一个平台。

于 2008-09-21T17:25:54.417 回答
0

我很想看到两件事。1.) 某种持久的本地数据库支持或 2.) 某种实际的数据库服务器支持,没有 Web 服务的麻烦。

就个人而言,我会选择 Access 和 OleDb。:)

于 2008-10-18T03:42:11.573 回答
0

最后一件事……数据库类型的功能是 Flash/Flex 不提供的……这将是 Microsoft 区分 Silverlight 并真正帮助它的好方法。

于 2008-10-18T03:43:13.457 回答
0

如果您的缓存需求足够基本,并且您没有太多的数据来减少 RAM 的使用,那么您甚至不需要一个成熟的数据库。您可以使用诸如字典之类的结构创建各种对象数据库,并将原本会成为表行的对象放入其中。然后,您可以将此数据序列化为本地存储中的文件,并在应用程序下次运行时对其进行反序列化。如果你的数据结构做得很好,你甚至可以使用 Linq 来查询你的对象数据库。

如果您的主要目标是尽量减少必须从服务器提取相同数据的次数,那么这可能是需要考虑的问题。

另一方面,如果您有太多数据或频繁写入数据库(因为它必须每次都将整个结构序列化到磁盘),这不是要走的路。

如果您确实有太多数据但仍想尝试此操作,您可以查看是否有一种合乎逻辑的方法将您的数据划分为多个不太可能同时需要的文件。然后,您可以将未使用的数据推送到磁盘,并在程序下次需要时将其加载回来。当然,如果你把这种方法走得太远,无论如何你最终都会编写自己的数据库系统。

于 2008-09-24T18:38:22.550 回答
0

现在有一个到 c# 的 sqlite 端口,称为csharp-sqlite ,一旦他们找到一个可接受的名称,它就会有承诺。

于 2009-09-01T22:31:44.540 回答
-2

是的,我认为 LINQ 提供程序是最佳解决方案。由于存储空间有限,您实际上并不需要表和索引,如果有一种简单的方法可以方便地通过 LINQ 在客户端存储和查询对象,而无需处理低级文件流。

于 2010-10-14T21:38:33.220 回答