Microsoft JET Engine的完美替代: SQL Server Compact Version 3.5和完美的Synchronizer库

喜欢自己写程序的人都知道,Microsoft JET Engine是一个非常好用的In-Process的基于文件(即Access的数据文件,后缀名为MDB)的数据库引擎,好些小网站也使用MDB文件作为数据库解决方案。一般而言,需要独立的数据库引擎进程的程序都是比较巨大的程序。

然而,使用过Microsoft JET Engine的兄弟都知道,这个引擎的优点跟它的缺点一样明显。撇开它安全性能较弱等缺点不论,我个人最近遇到的最大的缺陷就是这个引擎至今没有64-bit的版本,而且从MSDN Forum得到的一些微软员工的回答是,没有计划开发Microsoft JET Engine的64-bit的版本,估计这也是为什么Access 2007还是只有32-bit版本的原因。

回到正题,最近我从微软的官方网站下载了一个Visual Studio 2008 Beta 2 Professional(3.5GB, ISO格式)的版本来看看新版本有啥新东东,结果,个人感觉VS2008的IDE界面跟2005没啥本质的区别,就是MDI的Tab页变得漂亮了一些而已,同时对Vista有了比较完善的支持了,不像VS2005必须两个补丁才能正常运行。而查看它的安装列表的时候留意到它同时安装了一个SQL Server Compact Edition V3.5的数据库引擎(VS2005中捆绑的是SQL Server Compact Edition 3.1),同样是In-Process的基于文件的解决方案,却使用了类SQL Server的语法(所谓的类,其实就是T-SQL的真子集)。平心而论,就凭这个特性我也有打算放弃JET Engine而转投SQL Server Compact门下,同时维护过JET Engine和SQL Server两套SQL语言的兄弟都有这种体会吧。

然而,这个SQL Server Compact 3.5同样没有原生的64-bit的版本,事实上SQL Server 2005从Express版本以后就只有32-bit的版本了,因为Express 版本运行在独立进程,所以64-bit的程序可以运行无误。不过从它的官方下载页面可以清楚的看到native 64bit的Compact editon将在下一版本中release,祈祷微软能遵守承诺。

如果故事仅仅到这里就Over的话,我自己都怀疑能否说服自己来完成大批量的数据文件的转换。毕竟重新动手写一份数据格式转换程序也不是一个很轻松的工作,尤其鉴于Microsoft JET Engine的低保密性,我都是把数据库文件加密后保存,这样的结果就是在升级数据库版本或者转换格式时调试是个大麻烦。

故事的转折点出现在我发现另外一个非常有用的Library,注意,是一个Library,不是程序,这个Library的全称是:Microsoft Synchronization Services for ADO.NET,最新的版本也是Beta版。这个Library的作用跟它的名字一样,用来Synchronize数据库的。为啥会有这个Library,还得追溯到SQL Server Compact Edition的起源,这个数据库起源与SQL Server CE版本,所以这个Library很多namespace还沿用了CE的名称。Windows CE的资料需要跟Windows Desktop的数据进行同步,那就需要一个Synchronizer了。事实上微软还提供了一个Server端的同步工具,但是必须绑定IIS或者Server端必须是SQL Server Express以上版本。

简单介绍一下我理解中的这个Synchronizer,不论是2-tier还是n-tier的架构,总是把同步的双方区分为Client端和Server端,两端都提供各自的Provider,两个Provider通过一个SyncAgent的类来实现同步。具体的如何具备供同步的Tables以及同步的选项在此不再一一列出(主要的原因是我自己也没完全吃透)。

这个Library - Microsoft Synchronization Services for ADO.NET的出现的确让我很兴奋,按照官方文件的说法,Server的DB可以是任何格式。我一直懒于写我自己的程序(也就是HIH)的Server版本,主要原因就在于数据库之间的同步实在不是一个轻松的和愿意动手的工作,尤其是不同数据库格式之间。现在这个Library的出现,让我坚定信心不写Server版本,而是直接让两个Client之间进行同步了。当然,还得慢慢来,自己要先些个Demo才能真正断定这种方案的可行性。

SQL Server Compact Edition的官方页面:http://www.microsoft.com/sql/editions/compact/default.mspx

一个完整的例子来展现这个Microsoft Synchronization Services for ADO.NET风采(基于SQL Server Compact文件跟SQL Server的同步):http://www.codeproject.com/smartclient/takedataoffline.asp

PS. Microsoft为SQL Server Compact Edition 3.5和Synchronizer分别提供了Book Online。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值