2009-04-19 153 views
6

我有一个桌面应用程序,它会将soap与服务器进行通信。通信速度非常慢,所以我想先从我的本地数据库下载大量的数据并进行查询。我希望这个本地数据在应用程序关闭后继续存在,所以这样做的最佳方式是什么。 。 。有没有什么好的产品/例子可以做到这一点。 。有大约25张桌子,我正在缓存。快速本地数据库

回答

14

SQLite是完美的。几年前,我编写了一个“智能客户端”应用程序,我维护了一个本地缓存,以便用户仍可以离线使用该应用程序。我使用SQLite,没有问题,它非常小,很快就会保持,大多数现代ORM都支持它。 (我使用NHibernate)

http://www.sqlite.org/

+0

SubSonic也支持它。 – flipdoubt 2009-04-19 13:05:50

2

H2数据库也可能会满足您的需求。 Microsoft提供了一个精简版的SQL Server:SQL Server Mobile Edition。如果SQL Server和TSQL是你的事情,这可能是一个不错的选择。

+0

我已通过IKVM在.Net中成功使用H2。 H2文档在“高级”部分有关于此的简要部分。 – 2009-04-19 13:03:29

0

考虑使用Firebird,我相信他们也有一个ADO.NET扩展。

1

您可以随时使用Access数据库,通常非常简单,可以在.NET应用程序中进行创建,并且不需要在客户端上安装或配置任何服务器。

0

我会考虑SQL Server Express甚至SQL Server Compact Edition,它可以像Access一样对单个数据库文件进行操作。尽管如此,它仍然是SQL Server。

+0

因为安装和部署仍然是一场噩梦,所以我会远离SQL Server Express。尽管如此,SQL Server Compact Edition也是一个不错的选择。 – 2009-04-19 14:41:11

3

Berkeley DB是一个很好的独立的数据库。您还应该考虑内置于Windows中的ESENT。这是Ayende的write-up

0

您也可以考虑在Sun的Glassfish Java EE服务器中使用Apache Derby