Windows Phone支持的数据库有哪些,不同数据库有什么优缺点,搜索了网上的相关资源,整理一下:
Windows Phone 7 database
Windows Phone 7 database是一个基于Isolated Storage (独立存储)来实现的数据库,发布在codeplex的开源数据库,使用MS开源许可证,可以自由使用到开源或者商业项目中,优点是免费,footprint非常的小,支持LINQ。缺点是太新,没有商用经验,稳定性不明确,没有管理工具,不支持SQL。
Perst Embedded Database For Microsoft Windows Phone 7
Perst是一个开源的对象数据库(object-oriented embedded database system),有.NET和Java的实现。 .NET的实现支持Silverlight和Windows Phone 7。这是双许可证,GPL和商用。GPL免费用在开源项目,商用需要购买许可证。支持多平台:.NET, .NET Compact Framewrok, Silverlight, Windows Phone.支持LINQ和JSQL,丰富的文档和例子程序。Footprint不大也不小,499k。
db4o
db4o 是老牌的对象数据库(object-based database), 有Java和.NET版本的实现。 db4o for Silverlight版本可以用于Windows Phone。 db4o文档和例子程序都非常的丰富。支持Mono, .NET, .NET Compact Framework和Silverlight等平台,是最为成熟的产品。 其支持LINQ也同时支持原生查询,功能非常强大。db4o采用双许可证,GPLv2和商用,开源免费使用,商用需要购买。由于功能十分强大,footprint也非常的大,光Db4objects.Db4o.dll就有688k,加上其他组件差不多1M的大小。
siaqodb
siaqodb 是一个非开源的对象数据库, 可以运行在.NET 3.5+, Mono 2.4+, Silverlight 3/4 以及Windows Phone. LINQ是唯一支持的接口,不支持SQL,由于只是支持高版本,没有兼容性问题,footprint非常的小,只有128k,非常适合使用在Windows Phone上。而且siaqodb包含了Windows Phone 7的例子程序,方便开发,文档也比较全,还有包含查询工具,非常好用。是我觉得比较好的选择。唯一考虑的是非开源,只有商业许可证,$180个人许可证。还在考虑是否购买ing。
Sqlite for Windows Phone 7
Sqlite大名鼎鼎的嵌入式数据库,基本是智能手机设备的事实标准。Sqlite for Windows Phone 7修改自C# Sqlite,把存储介质改为Isolated Storage。其实我开始的时候偏向与使用Sqlite,因为其方便易用,移植性强,具有大量的商业经验,管理工具也十分的丰富,而且完全免费使用,没有许可证限制。但是Sqlite比较大,有514k,而且不支持LINQ,甚至不支持ADO.NET,只是支持sqlite原始的API,开发很不方便,例如读出的结果集不能放到DataSet和DataReader里面。
EffiProz Database for Windows Phone 7
EffiProz Database 是另外一个开源的RDBMS数据库,支持Windows Phone,支持存储过程,触发器等功能,支持ADO.NET甚至Entity Framework,功能也异常强大。支持双许可证,开源使用MS开源许可证,商用单用户$400。可是这个数据库的footprint非常大,1361k,这么大的footprint令我失去了使用的兴趣了。同时开源版本不怎么更新,新功能模块都在商业版上实现。
SQL Server CE
Windows Phone的本地数据库SQL Server CE是7.1版本即芒果更新的新特性,所以你要在应用程序中使用SQL Server CE数据库必须使用Windows Phone 7.1的API才行。
参看文献:
Windows Phone 本地数据库概述
浅谈Windows Phone 7本地数据库的选择
Windows Phone 7 本地数据库SQL Server CE(芒果更新)