论坛 产品库 视频 专题 CIO俱乐部 Windows8 实验室 CMO俱乐部 案例

.NET开源数据库的前世和今生

发布时间:2009-12-09 00:04:00 来源:比特网 作者:博客园/灵感之源
关键字:.NET 开源 数据库

  我们可以发现很多.NET的开源项目都是从优秀的Java项目移植过来的:我用得比较多像NHibernate、DotLucene(暂停开发...)、iTextSharp、Quartz.NET等。移植总比从头写轻松多了,不是吗?

  数据存储是软件中不可或缺的组成部分。我们所熟知和使用的,以前有Access,现在有MS SQL ServerOracle、DB2这些商业数据库,开源的有PHP用得最多的MySQL,有趣的是PHP内置了SQLite。比较少用Firebird、PostgreSQL、Berkeley DB等。

  几年前我写了一些开源项目的随笔,数据库是其中一种,不过当时还没有出现成熟的.NET开源数据库,写得最多的倒是在嵌入式应用最广泛c写的SQLite。我对嵌入式/轻量级的数据库有情结,对SQLite尤甚。SQLite的应用非常广泛,如官方所说的诺基亚开源手机操作系统塞班(Symbian)、Mozilla、Safari、Chrome和非常多的桌面应用等。

  后来出现了ADO.NET Provider for SQLite(for .Net 1.x的,现在停止开发),最后出现了现在.NET程序使用最多的来自phxsoftware的System.Data.SQLite,最出名的应用者估计就是飞信了。不过,这些都不是开源的.NET数据库,充其量其实包装(wrapper),而且是最原始的那种InterOp的做法,连Managed C++都不是。.NET都发展了9年多了,是时候有一个像样的数据库了。即便不是原创的,从Java移植一个成熟的也是不错的。

  差不多那个时候,出现了一个人,Mark Tutt,写了第一个.NET数据库(据我所知):SharpHSQL,这是从Java界应用非常广泛的HSQLDB移植过来的,而HSQLDB又是从HSQL衍生过来的,不过这是另外一个话题了。Mark Tutt移植完了就不继续维护了,这倒不是大问题,问题是他移植的版本根本保存不了数据到文件(所谓的持久化),在内存中跑完,程序关闭就没了,根本就没法用(你只想用纯内存版另当别论)。

 


比特微信账号
比特微信账号

微信扫一扫
关注Chinabyte

返回首页 长微博 返回顶部