POP Article V2.0 设为主页
收藏本站
首 页交流论坛留 言
您现在的位置:首 页 >> 数据库编程 >> 开发工具 >> 查看文章
SQLite移植到了.NET
作者:Abel Avram  来源:www.sqlite.com.cn  时间:2009-11-13  【 字体: 】 〖 双击滚屏 〗

Noah Hart将SQLite3移植到了C#上。虽然此次移植版本比原始版本要慢,但是此项目可以让.NET托管项目在不使用任何P/Invoke和不安全代码的情况下使用SQLite。

C#-SQLite被寄放在Google Code上,是从SQLite 3.6.16到C#的完全移植,代码版权使用MIT License。C#-SQLite通过了超过3万个测试用例,只有9个没有通过。编译好的二进制exe文件只有528KB,和原始版本的506KB差不多。性能方面要比原始的C版本差一些,但是Hart说他还没有对代码做任何性能优化,而且他认为目前的性能还可以接受。所有的数据单位都是行/秒:

Test C#-SQLite SQLite
Insert 300K 1300K
Select 1500K 8450K
Update 60K 300K
Delete 250K 700K

Cory Nelson解释了为什么移植SQLite要比其它方式更好:避免P/Invoke带来的“速度超慢和无法移植”问题。而且C代码“充斥着goto语句,会使优化变得十分困难”。

很多产品-如Adobe AIR-都包含和使用了SQLite。或许C#-SQLite最能发挥的地方是Silverlight项目,Tim Anderson指出

可以在微软Silverlight中作为本地数据库使用,保存在isolated storage中。

……Silverlight不允许P/Invoke和不安全代码,由于原始版本的SQLite中使用了大量的指针,即使只有很少的P/Invoke,不安全的代码却一定有很多。

虽然Silverlight是实现在.NET Framework上的,却不包含System.Data命名空间,但包含了System.Linq。

C#-SQLite并不是SQLite的官方版本,Hart也与SQLite.org没有任何关系。SQLite的创造者和商标所有人Richard Hipp,在一开始并不同意将“SQLite”包含在项目名中,但是后来同意使用C#-SQLite。

除了这个项目,还有其它一些托管数据库,比如:Perstdb4oSilverlight DatabaseSystem.Data.SQLite

浏览次数:   【 打 印 】【 关 闭
上一篇:SQLite入门与分析(四)---Page Cache之事务处理(3)
下一篇:解密C#-SQLite是如何移植的
 论坛登陆
用户名:
密  码:
验证码: 
Cookie 选项:
正常登陆 隐身登陆
   
没有注册?
 文章搜索
 推荐文章
 酷站推荐
 热门文章
 网站统计
关于我们 | 网站地图 | 联系我们 | 网站历史 | 友情链接 | TOP
Copyright© 2006 Sqlite中文社区  程序开发: mistletoe  站长: 林轩 陈文成