Silverlight本地数据库

时间:2008-09-21 15:12:59

标签: .net silverlight

Silverlight应用程序的本地数据库是什么?数据库的主要用途是本地数据缓存和同步服务。我不认为SQL在任何地方或SQLite都可以工作,因为他们使用的是非托管代码,而这些代码不会在silverlight沙盒下运行

9 个答案:

答案 0 :(得分:2)

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

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

找到两个参考文献:

Moth在他的博客中说过http://www.danielmoth.com/Blog/2008/04/isolatedstorage-in-siverlight-2-beta-1.html 迪诺在http://www.ddj.com/windows/208300036?pgno=2

做了很好的总结

答案 1 :(得分:1)

@Aaron Fischer,

我也对这个问题很感兴趣。我正在寻找DB for XBAP(浏览器中的WPF)应用程序。这是我的问题"What embedded database with Isolated Storage support can you recommend?"

SQLite& MSSQL CE(也就是任何地方的SQL)都行不通。

VistaDB是在.NET中实现的,可以在限制条件下工作(它支持隔离存储),但我正在寻找替代方案。

另一个选项是Sybase iAnywhere - 但我不确定如何在最终用户计算机上部署它。

我要为Silverlight尝试DB4objects。如果它可行,我会更新帖子。

答案 2 :(得分:1)

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

答案 3 :(得分:0)

根据此example,可以使用Google Gears,从而使用Sqlite。主要的缺点是集成工作量以及在客户端计算机上再安装一个平台的需求。

答案 4 :(得分:0)

如果您的缓存需求足够基础并且您没有那么多数据来实现它以最大限度地减少RAM使用,那么您甚至可能不需要一个完整的数据库。您可以使用诸如字典之类的结构创建各种对象数据库,并将对象放入其中,否则这些对象将成为您的表行。然后,您可以将此数据序列化到本地存储中的文件,并在下次应用程序运行时对其进行反序列化。如果您的数据结构运行良好,您甚至可以使用Linq查询对象数据库。

如果您的主要目标是尽可能减少从服务器提取相同数据的次数,则可以考虑这一点。

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

如果您确实有太多数据但仍希望尝试此操作,则可以查看是否有合理的方法将数据分区为多个同时不太可能需要的文件。然后,您可以将未使用的数据推送到磁盘,并在下次程序需要时将其加载回来。当然,如果你采用这种方法太过分,那么你最终还是会编写自己的数据库系统。

答案 5 :(得分:0)

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

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

答案 6 :(得分:0)

最后一件事......数据库类型的功能是Flash / Flex不提供的......这对于微软来说是一个很好的方式来区分Silverlight并真正让它起步。

答案 7 :(得分:0)

现在有一个名为csharp-sqlite的c#的sqlite端口 一旦找到可接受的名字,这就有希望。

答案 8 :(得分:-2)

是的,我认为LINQ提供商是最佳解决方案。由于存储空间有限,您实际上并不需要表和索引,通过LINQ在客户端上存储和查询对象的简单方法会很方便,而不必处理低 - 级文件流。