您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > Mobile最佳移动数据应用-MicrosoftCor
MBL324使用SQLServerEverywhere开发WindowsMobile最佳移动数据应用课程内容概述什么是SQLServerEverywhereSQLEverywhere与SQLExpressSQLEverywhereClickOnce功能WindowsMobile的本地数据存储SqlCeResultSetBaseTableCursor来自移动设备的挑战你的数据非常重要你的目标平台是Mobile或单机桌面PC你的程序要面向多个平台你想远程部署你的应用程序你的程序可以与其他计算机共享数据SizePerformanceSecurityDataintegrityEaseofdevelopmentEaseofdatatransferPlatformsupportWirelessconnectivity移动设备存储的关键SQLServerEverywhere什么是SQLServerEverywhere嵌入到Mobile和桌面应用程序中的轻量级、关系型数据库SSEv是SQLMobile运行于Win32平台的实现SSEv定位于桌面级数据库,不支持基于Web的应用程序ClickOnce、DataDirectory支持运行于WindowsXP,Windows2003,VistaB2WindowsMobileVisualStudio2005、SQLServer200工具支持安装文件MSIClickOnceBookOnlineSQLEverywhere功能1.4MB存储空间,7个DLL和一张软盘空间一样小手工和自动两种部署方式文件型数据库,数据包含在一个文件中(.sdf)运行于应用程序的进程内不会作为一个Service运行每个数据库最多4GB数据支持多个数据连接同时进行操作通过密码进行简单的安全与加密查询处理支持Transaction支持公共编程接口ADO.NETSystem.Data.SqlServerCe支持.NET(ADO.NET)、C++(OLEDB)和VB(ADOCE)调用多种数据同步方式RemoteDataAccess(RDA)MergeReplicationSQLServerEverywhere不支持功能存储过程,视图,函数数据库运行在应用程序的进程中支持TSQL的子集可以使用托管代码来编写函数触发器触发器依赖于TSQLSQLEverywhere只包含数据,不包括代码未实现事件通知机制复杂User规则管理不能为每个用户创建不同的安全规则网络连接访问不支持IIS/ASP.netHostApp数据访问VisualStudio2005创建SQLServerEverywhere桌面应用SQLEverywhere附加功能Runtime增强功能支持ADO.NET部署到GAC|DataDirectory|宏动态控制数据库文件的路径.\Northwind.sdf成为|DataDirectory|\Northwind.sdfVSDesigner增强功能支持ClickOncebootstrapper支持私有部署部署方式SingleCentralInstall(MSI)使用MicrosoftUpdate更新需要管理权限ClickOnceBootstrapper私有部署(ISVOption)通过应用程序将dll进行私有部署不需要管理员权限不支持MicrosoftUpdate将SQLEverywhere作为应用程序的一部分DeploymentOptionsClickOncewithSQLEverywhereBootstrapperClickOncewithPrivateDLLDeploymentSQLEv私有部署显式安装的SQLEv优先级高于私有部署版本SQLEv运行于GAC中,需要设置管理权限改变System.Data.SqlServer.dll引用为CopyLocal拷贝sqlce*.dll’s%ProgramFiles%\MicrosoftSQLServerEverywhere\v3.1不支持MicrosoftUpdate只能为宿主应用程序使用SQLServer/SQLExpress你的企业数据已经存在需要更多的安全性、功能和可升级特性VisualStudio2005中的数据工具SQLServer2005数据管理工具程序不能在网络连接无效的情况下独立运行在移动设备上在没有administrativeprivileges的情况下无法安装基于Web的安装占用大量空间在服务器上作为一个Service运行缺点是什么?LocalDatabaseOptionsServer(1000’sofusers)Workgroup(Dozensofusers)Desktop(SingleUser)LaptopTabletPCWindowsCEDevicePocketPCSmartphoneWin32SQLMobileSQLExpressSQLServerSQLServerEverywhereMultiUserSingleUserScenarios使用SqlCeResultSet编写PC与Mobile程序SQLEverywhere程序真的可以在多个平台上运行吗?.NETCompactFramework2.0的高效率数据访问什么是SqlCeResultSetSqlCeResultSet是一个特殊的DataReader(实现IDataReader)但是不像一般的DataReader,你可以向前或向后来查看数据而且可以将修改的数据Update到数据库中因为实现了IListSource,所以支持被WinForm控件进行数据绑定始终与数据库连接,不像DataSet,可以实时显示被其他连接改变的数据.NETCompactFramework2.0支持SqlCeResultSetClass创建SqlCeResultSetSqlCeResultSet使用SqlCeCommand.ExecuteResultSet方法TypedResultSet使用VisualStudio2005DataSourcewizard将.xsdfileCustomTool属性改为MSResultSetGenerator为了增加适应性,通过partialclasse扩展产生typedSqlCeResultSet代码在DataSource页中使用数据绑定控件TypedResultSet可以通过new操作符来创建TypedSqlCeResultSets支持每个数据列的强命名属性方法AddrecordDeleterecordBindtoBindingSourceOpenMoveToRowIscolumnnullSetcolumnnull优势–Intellisense和编译期检查不影响执行效率支持窗体编辑器中的数据绑定控件ResultSetOptions使用SqlCeCommand.ExecuteResultSet创建对象无须设置ResultSetOptions参数(对象按照默认行为执行)Insensitive-不会发现其他数据连接对数据源的改变Sensitive-察觉来自其他数据连接的改变Basetablecursors的属性始终为sensitiveTableDirectcommandtype=basetablecursorScrollable-你可以向前或向后读取数据,使用内部的BookmarkArrayUpdatable-允许更新None–只读,单向浏览数据BaseTableCursor可以设置index,用于查询指定值、排序、设置范围获取一个数据行中的所有项,不能根据Select语句获取数据子集从数据表中读取所有列的速度最快Example://CreateandexecuteSqlCeCommandSqlCeCommandcmd=newSqlCeCommand(“Authors,cnn);cmd.CommandType=CommandType.TableDirect;SqlCeDataReaderdr=cmd.ExecuteReader();//RetrieveResultswhile(dr.Read()){MessageBox.Show(Name=+dr[au_lname]);}dr.Close();dr.Dispose();//CreateResultSetSqlCeResultSetrs=cmd.ExecuteResultSet(ResultSetOptions.Scrollable|ResultSetOptions.Updatable);Seek/SetRange:基本用法用于打开表的index选择值的范围的最快方法Example:cmd.CommandType=CommandType.TableDirect;cmd.CommandText=Orders;//Assume:Indexcontainsonecolumn[datetime]cmd.IndexName=SomeIndex;object[]start=newobject[1];object[]end=newobject[1];start[0]=newSqlDateTime(2001,1,1);end[0]=newSqlDateTime(2002,2,3;cmd.SetRange(DbRangeOptions.Match,start,end);SqlCeDataReaderdr=cmd.ExecuteReader();dr.Seek(DbSeekOptions.FirstEqual,newSqlDateTime(2001,3,4));while(dr.Read()){}//ReaddataintheusualwaySqlCeResultSet真的最快吗?DataSet,DataReader和SqlCeResultSetPerformanceResultsonPocketPCLoad10000Read1000ReadStoreUpdate4000SQLSyntaxSQLstatementTableDirect47500DataSet136611401900DataReaderSQLstatementTableDirect306ListT700ResultSetSQLstatementTableDirect200003507*ListT73019006000PerformanceResultsonTabletPCLoad100000Read10000ReadStoreUpdate40000SQLSyntaxSQLstatementTableDirect18000DataSet3282701100DataReaderSQLstatementTableDirect00ListT219ResultSetSQLstatementTableDirect12000500*ListT21911002300.NETCF效率总结桌面PC比移动设备上应用程序速度要快很多在两个平台上SqlCeResultSet都比SqlCeDataAdapter要快–使用TableDirect从数据库中读取数据SqlCeResultSet几乎与SqlCeDataReader一样快更新单独的数据,仍然是SqlCeResultSet比较快插入新记录时,SqlCeResultSet最快在批量更新时,使用UPDATESQL语句最快加密存储时性能的损失比较小–大约10%或者更少概要对于移动和单机桌面应用程序来说,SQLServer2005EverywhereEdition是极好的本地数据库可以在不同的平台中使用相同的代码,但是需要引用不同的SqlServerCeDLLSqlCeResultSet是可双向浏览、可更新的数据容器,执行效率最高VisualStudio2005中使用SQLServerEverywhere和SqlCeResultSet更加容易!SQLServerEverywhere网站http://www.microsoft.com/sql/everywh
本文标题:Mobile最佳移动数据应用-MicrosoftCor
链接地址:https://www.777doc.com/doc-936 .html