更新时间:2022-09-16 18:07:13
最近在选择Windows Phone 7的本地数据库,把经验记录下来。数据库的选择,我考虑以下几点: 性能, 稳定性, footprint(占用文件和内存大小),费用(许可证类型),易用性(访问方式,是否提供管理工具等)。下面讲述Windows Phone下我所了解到的一些数据库实现以及其优缺点。
Windows Phone 7 database是一个基于Isolated Storage (独立存储)来实现的数据库,发布在codeplex的开源数据库,使用MS开源许可证,可以***使用到开源或者商业项目中,优点是免费,footprint非常的小,支持LINQ。缺点是太新,没有商用经验,稳定性不明确,没有管理工具,不支持SQL。
http://sviluppomobile.blogspot.com/2010/03/sqlite-for-wp-7-series-proof-of-concept.html
Sqlite大名鼎鼎的嵌入式数据库,基本是智能手机设备的事实标准。Sqlite for Windows Phone 7修改自C# Sqlite,把存储介质改为Isolated Storage。其实我开始的时候偏向与使用Sqlite,因为其方便易用,移植性强,具有大量的商业经验,管理工具也十分的丰富,而且完全免费使用,没有许可证限制。但是Sqlite比较大,有514k,而且不支持LINQ,甚至不支持ADO.NET,只是支持sqlite原始的API,开发很不方便,例如读出的结果集不能放到DataSet和DataReader里面。
http://www.effiproz.com/product_wp.aspx
EffiProz Database 是另外一个开源的RDBMS数据库,支持Windows Phone,支持存储过程,触发器等功能,支持ADO.NET甚至Entity Framework,功能也异常强大。支持双许可证,开源使用MS开源许可证,商用单用户$400。可是这个数据库的footprint非常大,1361k,这么大的footprint令我失去了使用的兴趣了。同时开源版本不怎么更新,新功能模块都在商业版上实现。
我在看Windows Phone 7 database的源代码,Windows Phone 7 database支持从XAP中导出XML文件到Isolated Storage数据库中。 如果性能ok,我就选择Windows Phone 7 database了,但是担心这个数据库太新,以后还要自己修改源码来实现功能。也考虑是否购买siaqodb,这个数据库很不错,可惜不开源。
如果对Windows Phone 开发感兴趣,推荐阅读我的系列文章,适合具有.NET经验的开发者,入门Silverlight for Windows Phone的开发。