EffiProz:面向.NET 程序员的跨平台嵌入式数据库

  • Jonathan Allen
  • 张龙

2010 年 8 月 25 日

话题:.NETDevOps语言 & 开发架构

EffiProz是个完全由 C# 编写的嵌入式数据库,它有两种模式:磁盘模式与内存模式。这样,其开发者就可以将它移植到具备 CLR 的大多数环境中,包括.NET Compact、Mono、Windows 7 以及 Silverlight。EffiProz 的下一版本将会扩展到移动平台上。

在被问到为何要使用 EffiProz 而不是 SQL Server Compact 或是 SQLite 时,EffiProz 的作者Irantha Suwandarathna回应到:

如果人们对以下特性感兴趣,那么他们就会使用 EffiProz:

  • 非常棒的性能
  • ACID 事务
  • 功能完备、兼容于 SQL 的支持(支持的特性比 SQLite 和 SQLCE 还要多)
  • 完整的代码数据库引擎
  • 希望同样的数据库能够用在.NET、Compact Framework、Silverlight、Mono、Windows Phone、Moonlight(未来还有 Android 与 iPhone)应用上(或是可以在这些平台间迁移数据库文件,由于初步兼容于 HSQL,你甚至还可以在.NET 与 JAVA 应用间交换相同的数据库文件)。

此外,EffiProz 还支持 Entity Framework,下一版本(1.3)将支持 MonoTouch。对 MonoDroid 的支持也在计划当中。

由于应用的质量在很大程度上依赖于所用的组件质量,因此我们就有关测试与质量保证过程的问题进行了咨询。

我们的回归测试套件的代码已经超过了 10,000 行。在目前的 1.2 版中,我们达到了 74% 左右的代码覆盖率并且期望在 1.3 版中能将这一数字提升至 80%。我们会对每个存储层重复执行该测试套件,并且会重新运行这些测试用例 2 次:一次是测试事务日志恢复,然后测试常规的关闭。除了这个自动化的回归测试套件外,我们还会进行更广泛的手工测试。

HSQLDB 是个开源的 Java 数据库,它构成了 EffiProz 产品的基础。

一开始,EffiProz 是 HSQLDB 到.NET 框架的移植。但现在,EffiProz 已经具备了 HSQLDB 所不具备的众多特性(比如,EffiProz 具有兼容于 SQL Server 的 UniqueIdentifier 数据类型)。HSQLDB 基于自由的 BSD 许可,而 EffiProz 对于非商业应用是免费的(比如学术、研究等等)。如果用于商业目的,则需要购买许可。

查看英文原文:EffiProz: A Cross-Platform Embedded Database for .NET Programmers

.NETDevOps语言 & 开发架构