同学们肯定想知道这个这个项目的性能:
简单的来看,检索/循环的速度跟SQLitel差异不大,插入和删除就只有SQLite的50%不到。
除此之外,最关心的还是怎样获取代码。请访问这里获取代码,csharp-sqlite比较特别,没有采用常见的CVS、SVN这两种项目代码控制服务,而用了比较冷门的HG,不过跟TortoiseCVS、TortoiseSVN一样,我们还有TortoiseHg,不过同样地让人不爽的是:TortoiseHg一样会强制关闭Explorer.exe来让资源管理器插件生效,现在的安装程序都把自己当大爷,颇为毫不客气。当然,你也可以直接点击这里下载,内含最新代码和已编译DLL。
在使用TortoiseHg获取代码之后,就会遇到编译问题,如果你新建一个项目,把*.cs放进去,然后编译,问题就会出来了,因为csharp-sqlite一样学了c那套复杂的编译条件。
不过,需要注意的是,csharp-sqlite只是Noah Hart的个人行为,跟SQLite的官方没有任何关系,所以当初为了这个项目的名称,还跟SQLite之父D. Richard Hipp鱼雁传情好几回,最后在承诺撇清与SQLite的官方关系之后(就是不想做额外的售后服务),才得了这个名字。可见D. Richard Hipp还相当懒惰的。
csharp-sqlite的实际使用并不是传统的ADO.NET那样,因为它没有提供这个接口,你只能直接调用跟所谓的Native接口。当然,作者还是做了一些封装,你可以用类似Command接口的SQLiteDatabase,进行ExecuteQuery(返回DataTable)、ExecuteNonQuery。
另外,csharp-sqlite的稳定性还是让人担心的,虽然作者宣称已经通过了SQLite官方的99.99%的测试,但他却是这样回答是否可以在正式产品中使用的:“我也想知道,如果你用了,请告诉我情况。”
有趣的是,Tim Anderson弄了个在Silverlight跑的Quick and dirty版本,不过这仅仅是一个概念验证罢了,因为屏蔽了原来csharp-sqlite中为了实现文件锁而调用的Win32 API,只能单线程跑。值得一说的是,这厮抢注了这个域名相当不错。
最后,我对于作者连基本的代码和编译好的压缩包都不提供这种行为表达相当的不爽和最强烈的反对。