好了,这次该说说另一位主角了:MS SQL Server 2005
Mobile Edition,名字够长吧?以后叫SQL
Mobile就好了,它是SQL
Server CE 2.0的升级版,其实就是SQL
CE 3.0。
SQL Mobile的变化很大,最大的变化就在于增加了多平台的支持。SQL Mobile会被Tablet PC和下一个版本的Pocket PC、Smartphone所支持,而且不需要进行转换。这其实没什么好奇怪的,在Windows
Mobile 2003里,在模拟器上生成的数据库文件可以在实际设备上运行,这就说明数据库格式是CPU无关的。另外还有消息说,SQL
Mobile数据库可以在PC上编辑,也就是说SQL Mobile也肯定支持PC平台(注意,免费的噢!)。而最大的进步在于Smartphone终于支持数据库了。
针对SQL CE的一些问题,进行了可靠性和效率方面的改进。改进主要包括三个方面:数据同步、存储管理和查询过程。
我们先来看数据同步:大家都知道SQL CE 2.0支持复制(Replication)和RDA两种同步方式。先来说复制,SQL
Mobile支持多重订阅,以前一个数据库只能支持一个订阅,如果开发者想发布多个数据源,就要创建单独的订阅数据库。而到了SQL Mobile中,多个订阅可以被包括在一个数据库中。
下面一个特性很重要,支持多用户访问和同步。大家都应该还记得,最早做SQL CE开发时,一旦打开查询分析器就不能成功访问数据库,这个问题终于被解决了。
同步状态反馈,开发者可以使用托管API了解同步状态的反馈,可以告诉用户同步的进程了。
Column-level
tracking,以前的SQL CE,如果一个数据行中的某个数据被修改了,在同步的时候,就会同步整个数据行,而现在只会同步那个被修改的数据项。大家都知道,以前的Tracking都是通过添加两个数据列完成的,不知道现在他们是怎么做的。不过总觉得这样做会浪费一些空间,希望SQL Mobile不是太慢才好。
接下来是存储引擎部分,微软的文档中说,SQL Mobile的存储引擎被重写,并且其架构适合移动设备电池及连通性方面的限制。所有的应用程序将会共享一个公共内存池,这可能也是因为增加了多用户支持的原因吧。
SQL Mobile为多用户支持提供了数据页的row-level locking,数据页级的locking和独立级别保证数据完整。
自动回收空数据页,SQL Mobile会自动归还不用的数据页,以节省设备的存储空间。
在查询过程访问,SQL Mobile提供了基于成本的优化,还提供了执行计划和查询提示,允许开发者查看查询计划,并根据CPU速度、媒体访问时间等设备细节,优化整个查询的计划。
SQL Mobile还提供了SqlCeResultSet对象,该对象是一个可更新、控制光标移动的数据访问对象,开发者可以利用这个对象直接访问数据库,而不需要双缓存数据。该对象也支持WinForm的数据绑定接口,可以被DataGrid、TextBox、ListBox等控件绑定。
SQL Mobile可以集成到SQL Server 2005和Visual Studio 2005中,为创建和测试SQL Server Mobile数据库创造方便。
先来说SQL Server 2005,提供了一个叫做SQL Server Management Studio的应用(还不知道中文名叫什么),来取代SQL Server的企业管理器和查询分析器。这个工具可以在PC上管理一个SQL
Mobile的数据库。呵呵,在PC和移动设备上用同样的数据库,是不是很吸引人?
SQL Server 2005提供了图形化的查询执行视图、新的订阅向导,改良了Web配置向导,新的配置向导支持Https的虚拟目录,并且能够配置远程IIS服务器。
数据转换服务(DTS)是新加入的功能,可以在SQL
Mobile数据库和Access、Oracle和IBM DB2之间转换数据。
SQL Editor将是SQL Server Management Studio的主要工具,用来设计和测试T-SQL的查询或脚本。
还有就是数据库部署,SQL Server Management Studio可以在本地机器上创建一个SQL Mobile数据库,设计数据表、填充数据,并发布到不同的设备中去。
下面来说下VS.NET 2005针对SQL Mobile的改进。开发者可以使用VS.NET 2005在桌面电脑和移动设备里管理SQL Mobile数据库。开发者可以拖拽一个SQL Mobile表到移动应用的一个控件中,控件会自动绑定到这个表上。
VS.NET 2005还提供了一个“My Computer Deployment”的功能,可以帮助你把SQL Mobile部署到你的PC上,这样移动应用就可以在.NET Framework的环境里运行了。大家都还记得,如果把一个带有SQL CE引用的程序在.NET里运行,会报一个系统不支持的异常,看来这次就不会了。
好了,这些就是关于SQL Mobile的一些信息。让我们期待Beta 2的早日到来吧。