1、Windows CE系统应用开发编程 Windows CE Embedded System Development第1章 Windows CE 6.0概述了解Windows CE操作系统的定义与特性了解Windows CE发展历程了解Windows CE 6.0的功能特性理解Windows CE 6.0体系结构组成掌握Windows CE 6.0开发流程本章学习目标本章学习目标Windows CE Embedded System Development1.11.1、什么是、什么是Windows CEWindows CE操作系统操作系统Windows CE是微软公司针对嵌入式设备自行开发的操作系
2、统产品,它是一个基于32位,嵌入式、多任务、实时性能好,通信能力强大以及具有模块化特性的操作系统。Windows CE Embedded System DevelopmentWindows CE主要具有以下四个方面的特性主要具有以下四个方面的特性 模块化和小尺寸 跨平台支持 友好的图形界面 高效的开发工具支持Windows CE Embedded System Development常用的Windows CE嵌入式设备Windows CE Embedded System Development1.2 Windows CE 6.0发展历程Windows CE操作系统是微软公司为嵌入式设备精心打造
3、的32位、多任务、模块化操作系统产品,从当初1996年发布的1.0版本到现在的Windows CE6.0版本,如图所示 W i n d o w s CE1.0Windows CE2.0W i n d o w s CE3.0W i n d o w s CE4.0W i n d o w s CE5.0W i n d o w s CE6.0 1996年 1997年 2000年 2001年 2004年 2006年Windows CE Embedded System Development1.3 Windows CE 6.0的功能特性Windows CE 6.0版本提供 32 位本地硬实时、映像占用空间
4、量少、重构的内核以及功能强大的嵌入式开发工具,具体功能主要体现在以下几方面:映像占用空间量少支持更多并发进程高品质设备驱动程序功能更强大的模拟器。多媒体及图形图像设备上实现Web ServiceWindows CE Embedded System Development1.4 Windows CE 6.0体系结构Windows Embedded CE 6.0中将OEM层、操作系统层、应用程序层可以划分为User Mode(用户模式)和Kernel Mode(内核模式)两个“层”。CoreDll.dll(用户模式)用户模式驱动/服务额应用程序硬件OALKITL内核(Kernel.)K.CoreD
5、ll.dll(内核模式)文件系统图形窗口事件管理器设备管理器内核模式驱动/服务用户模式内核模式Windows CE Embedded System DevelopmentWindows CE 6.0的系统架构进行细化,分别表示出用户空间、内核空间以及系统硬件的主要组成模块。硬件NK.EXEBootloaderKernel.DLLFileSys.DLLGWES.DLLDevice.DLL 内核驱动程序K.CoreDLL.DLLCoreDLL.DLLShellService.EXEUdevice.EXEApplication用户模式内核模式Windows CE Embedded System De
6、velopment1.5 Windows CE 6.0开发流程一般来说,基于Windows CE的嵌入式系统开发的主要内容有:设计系统硬件定制BSP定制操作系统模块完成以上定制后,编译形成nk.bin或者nk.nb0 文件,至此 Windows CE 的内核定制完成定制与安装SDK,联机调试建立开发环境开发应用程序,最后形成用户程序文件.exe通过同步软件ActiveSync 或者网络功能下载至Flash,脱机运行Windows CE Embedded System DevelopmentWindows CE系统开发的一般流程 定制Windows CE操作系统提交BSP包创建和添加功能组件修改
7、配置文件Windows CE平台编译和下载内核映像到目标设备导出SDKPC端VS.NET开发平台下载应用程序到OEM厂商搭建配置硬件平台Windows CE Embedded System Development第第2章章Windows CE 6.0开发环境和工具开发环境和工具 了解 ARM9硬件平台组成架构 掌握Windows CE 6.0操作系统定制过程 掌握Windows CE 6.0操作系统映像烧写步骤 掌握基于C#的智能设备Windows CE应用程序开发流程 掌握Windows CE 6.0远程工具使用本章学习目标本章学习目标Windows CE Embedded System D
8、evelopment2.1Windows CE 6.0硬件平台简介本书开发所选用的是SinoSys-PI2440a硬件平台(HMI)如图所示,HMI 为英文Human-Machine Interface 的缩写。其广义的解释就是“使用者与机器间沟通、传达及接收信息的一个接口”。具体的讲,就是利用类似于像PC平板电脑一样的HMI设备,用户通过输入单元(如触摸屏、键盘、鼠标等)写入工作参数或输入操作命令,可以实现与机器信息交互。Windows CE Embedded System Development2.2 Windows CE硬件平台架构Nand FlashCPUS3C2440ASDRAMJT
9、AGLCDUSBUARTCAN485TouchScreenNetWork图SinoSys-PI2440a硬件架构Windows CE Embedded System Development2.3构建Windows CE 6.0操作系统映像2.3.1 安装Microsoft Platform Builder for Windows CE 6.0微软将Platform Builder for Windows CE 6.0作为VS.NET2005的一个插件,因此在安装Windows CE 6.0之前,必须先安装VS.NET2005,在顺利安装完成VS.NET2005之后,才能安装Platform B
10、uilder for Windows CE 6.0。Microsoft Visual Studio 2005安装 安装Visual Studio 2005 Service Pack 1安装Windows Embedded CE 6.0评估版 安装Windows Embedded CE 6.0 Platform Builder Service Pack 1安装Windows Embedded CE 6.0 R2安装Windows Embedded CE 6.0 R3Windows CE Embedded System Development2.3.2 安装BSP板级支持包BSP(Board Su
11、pport Package)板级支持包是开发Windows CE操作系统运行时映像所需的一个重要组件。一般来说,只要从硬件(OEM)厂商购买了目标硬件平台,提供BSP安装包,这里选择Sinosys厂商的BSP安装包进行安装。Windows CE Embedded System Development2.3.3 构建Windows CE 6.0操作系统工程定制OS总的分为三步来引导用户完成定制过程选择一个BSP 一个设计模板添加或者删除目标组件到定制工程中。2.3.4 添加支持硬件平台应用的特性组件通过工程向导创建了Windows CE 的操作系统项目,只是基本的完成了Windows CE所具有
12、的通用特性功能设置,为了支持后面的应用程序运行,需要对Windows CE OS添加一些应用程序运行所支持的组件。Windows CE Embedded System DevelopmentWindows CE Embedded System Development2.3.5 编译生成Windows CE 6.0操作系统运行时映像完成OS定制后,先对生成的项目进行设置,设置操作如下:Windows CE Embedded System Development编译成功后在VS2005的调试输出口会出现类似提示信息。可以看到此次项目生成成功,error数为0,warning数为228。Warnin
13、g数的多少对项目映像生成和正常的运行没有任何影响。Windows CE Embedded System Development2.4下载Windows CE 6.0映像到目标平台 在最终产品发布的时候,嵌入式产品是脱离 PC机的,因此,我们必须让嵌入式产品能加电自启动,这就需要把映象文件固化到flash里。利用DNW下载工具通过USB将OS映象先存放到SDRAM中,然后利用u2440mon.bin程序将存放在SDRAM中的OS映象固化到Nand Flash中。Windows CE Embedded System Development2.5 ActiveSync同步工具Microsoft Ac
14、tiveSync是Windows CE设备与PC机之间进行同步通信的软件,ActiveSync运行界面如图所示,通过ActiveSync软件一方面实现PC机与设备进行即时通信,另一方面借助ActiveSync还可以实现PC机端访问Windows CE设备上的文件信息。Windows CE Embedded System Development2.6 创建C#智能设备应用程序2.6.1VS.NET2008平台安装简介 微软推出的VS.NET2008平台可用来开发基于Windows CE 平台上应用程序,它既可以开发基于.NET Compact Framework3.5下的托管应用程序,也可以使用
15、C+语言开发(非托管)本地应用程序。Windows CE Embedded System Development2.6.2在Windows CE目标设备上部署C#应用程序1、通过ActiveSync程序建立PC端与目标设备的通信连接将VS.NET2008中Windows CE的C#应用程序部署到目标设备平台上运行之前,需要通过ActiveSync加USB接口实现与设备端之间的连接。Windows CE Embedded System Development2、在线调试部署MyFirstApp应用程序Windows CE Embedded System Development2.7 Window
16、s CE 6.0远程工具VS.NET2008包含了6个远程工具,它们用于在开发平台与实际平台间执行一些调试工作。利用它们可以在开发平台中得到实际运行平台上的文件、监视实际平台上进程或线程的状况、测试实际平台上应用程序的性能以及获得实际平台上运行程序的截图等。在使用远程工具之前需要在设备端加载相应的服务和做一些适当的配置。1、建立PC端与设备端通信 2、远程工具的使用远程工具按照功能可以分成二类,一类是进行调试的,如Remote Heap Walker、Remote Process Viewer及Remote Spy。另一类是进行远程信息管理的,如Remote File Viewer、Remot
17、e Registry Editor及Remote Zoom-in。Windows CE Embedded System Development第第3章章 屏幕图形图像应用开发屏幕图形图像应用开发本章学习目标了解GDI+图形设备接口掌握常用的GDI+图形绘制掌握图像的绘制方法掌握图形编程方法Windows CE Embedded System Development3.1 基于基于GDI屏幕绘图屏幕绘图 3.1.1 GDI+简介简介GDI+:Graphics Device Interface Plus也就是图形设备接口,也就是图形设备接口,它提供了各种丰富的图形图像处理功能,在它提供了各种丰富的
18、图形图像处理功能,在Windows CE系系统中,它充当应用程序和硬件设备之间的中间层,封装与统中,它充当应用程序和硬件设备之间的中间层,封装与硬件交互所需的低级硬件交互所需的低级API,这些,这些API函数可用于绘制图形和函数可用于绘制图形和文本。文本。在在.NET Compact Framework中,中,GDI+通过一套部署为托通过一套部署为托管代码的类来展现,这套类被称为管代码的类来展现,这套类被称为GDI+的的“托管类接托管类接口口”,GDI+主要提供了以下三类服务主要提供了以下三类服务:Windows CE Embedded System Development 二维矢量图形:二维
19、矢量图形:GDI+提供了存储图形基元自身信息的类提供了存储图形基元自身信息的类(或或结构体结构体)、存储图形基元绘制方式信息的类以及实际进行绘制、存储图形基元绘制方式信息的类以及实际进行绘制的类。的类。图像处理:大多数图片都难以划定为直线和曲线的集合,图像处理:大多数图片都难以划定为直线和曲线的集合,无法使用二维矢量图形方式进行处理。因此,无法使用二维矢量图形方式进行处理。因此,GDI+为我们提为我们提供了供了Bitmap、Image等类等类,它们可用于显示、操作和保存它们可用于显示、操作和保存BMP、JPG、GIF等图像格式。等图像格式。文字显示:文字显示:GDI+支持使用各种字体、字号和样
20、式来显示文支持使用各种字体、字号和样式来显示文本。本。我们要进行图形编程,就必须了解我们要进行图形编程,就必须了解Graphics类,同时我们还必类,同时我们还必须掌握须掌握Pen、Brush和和Rectangle等这几种类。等这几种类。Windows CE Embedded System Development3.1.2 设备绘图表设备绘图表面面在嵌入式设备上使用在嵌入式设备上使用GDI+进行绘图时,得到的图形可以进行绘图时,得到的图形可以放在两种目标环境中,一种是屏幕上窗口,另一种是内放在两种目标环境中,一种是屏幕上窗口,另一种是内存中的位图。每一个环境都有一个绘图表面,而绘图表存中的位图
21、。每一个环境都有一个绘图表面,而绘图表面包括两种,矢量表面和光栅表面。面包括两种,矢量表面和光栅表面。1、矢量表面、矢量表面2、光栅表面、光栅表面在矢量表面上,图元是用一种实体表示的,该实体在矢量表面上,图元是用一种实体表示的,该实体具有特定的坐标、方向、大小等属性。具有特定的坐标、方向、大小等属性。在光栅表面上,图元是一组着了色的像素集合在光栅表面上,图元是一组着了色的像素集合。Windows CE Embedded System Development3、使用、使用Graphics类创建绘图表面类创建绘图表面在在GDI+中可以利用中可以利用Graphics类创建一个与目标环境相关类创建一个
22、与目标环境相关的绘图表面,即产生对应的的绘图表面,即产生对应的Graphics对象,对象,Graphics对象对象与特定的设备上下文关联,并提供绘制图形图像到显示与特定的设备上下文关联,并提供绘制图形图像到显示设备的方法,这样就可以在该表面上进行图形组件的绘设备的方法,这样就可以在该表面上进行图形组件的绘制。制。有四种方法可以创建有四种方法可以创建Graphics对象,分别如下:对象,分别如下:(1)Graphics.FromHdc方法方法 该方法用于从一个设备环境句柄中创建一个绘图表面,该方法用于从一个设备环境句柄中创建一个绘图表面,在编程中用这种方法创建绘图表面可以将在编程中用这种方法创建
23、绘图表面可以将GDI+中托管对象中托管对象和非托管对象联系在一起。和非托管对象联系在一起。Windows CE Embedded System Development(2)Graphics.FromImage方法方法 该方法用于从内存中的一个位图对象去创建绘图表面,该方法用于从内存中的一个位图对象去创建绘图表面,这样在绘图表面上绘制的图形都将被保存在位图中。这样在绘图表面上绘制的图形都将被保存在位图中。例如:Bitmap m_bitmp=new Bitmap(My.bmp);Graphics g=Graphics.FormImage(m_bitmp);(3)使用控件类的使用控件类的Create
24、Graphics方法方法调用某控件或窗体的调用某控件或窗体的CreateGraphics方法以获取对方法以获取对Graphics对象的引用,该对象表示该控件或窗体的绘图图面对象的引用,该对象表示该控件或窗体的绘图图面。例如:Graphics g=this.CreateGraphics()Windows CE Embedded System Development(4)在窗体或控件的在窗体或控件的Paint事件处理方法中创建事件处理方法中创建Graphics对象对象通过窗体或控件触发通过窗体或控件触发Paint事件,并在事件,并在Paint事件中接收事件中接收对图形对象的引用对图形对象的引用。例
25、如:private void Form1_Paint(object sender,System.Windows.Forms.PaintEventArgs e)Graphics g=e.Graphics;也可以直接重载控件或窗体的OnPaint方法,如下所示:protected override void OnPaint(PaintEventArgs e)Graphics g=e.Graphics;Windows CE Embedded System Development3.1.3 绘图操作工具绘图操作工具在创建了在创建了Graphics对象后,就可以用它开始绘图了,如可对象后,就可以用它开始
26、绘图了,如可以画线、填充图形、显示文本等等,其中主要用到的对以画线、填充图形、显示文本等等,其中主要用到的对象有:象有:Pen、Brush、Color、Font、Point以及以及Rectangle 对象。对象。1、Pen类类Pen类用于绘制直线或曲线对象,通过它本身的属性能类用于绘制直线或曲线对象,通过它本身的属性能够绘制具有指定宽度和样式的直线。够绘制具有指定宽度和样式的直线。例如:创建Pen对象的两种方法:Pen redPen=new Pen(Color.Red)Pen redPen=new Pen(Color.Red,3)Windows CE Embedded System Devel
27、opment2、Brush类类Brush类定义用于填充图形形状内部的对象,类定义用于填充图形形状内部的对象,Brush类是一类是一个抽象基类,不能进行实例化处理。如果需要创建一个画个抽象基类,不能进行实例化处理。如果需要创建一个画刷对象,则需要刷对象,则需要Brush类的派生类。类的派生类。SolidBrush类和类和TextureBrush类都是类都是Brush类的子类,位于类的子类,位于System.Drawing命命名空间中名空间中 。例如,下面的代码创建了一个实心画刷和位图画刷。SolidBrush myBrush=new SolidBrush(Color.Blue);TextureB
28、rush tBrush=new TextureBrush(Properties.Resources.Bitmap);Windows CE Embedded System Development3、Color结构结构GDI+用用System.Drawing.Color结构来描述颜色,结构来描述颜色,在在.NET CF类库中类库中GDI+使用使用RGB颜色。颜色。例如:Color mm=Color.FormArgb(0,255,0);4、Font类类Font类定义特定文本格式,包括字体、字号和字类定义特定文本格式,包括字体、字号和字形属性形属性。例如:Font font=new Font(“Ari
29、al”,16,FontStyle.Bold);Windows CE Embedded System Development5、Point类类Point类对象用于指定坐标初始化类对象用于指定坐标初始化Point类的新实例。类的新实例。例如:Point pt1=new Point(30,30);6、Rectangle类类Rectangle类对象存储一组整数,共四个,表示一个矩类对象存储一组整数,共四个,表示一个矩形的位置和大小。形的位置和大小。Rectangle结构的构造函数为:public Rectangle(int x,int y,int width,int height);Windows C
30、E Embedded System Development3.1.4 常用图形的绘制常用图形的绘制方法名称说明DrawLine绘制线条DrawRectangle绘制矩形DrawPolygon绘制多边形DrawEllipse绘制椭圆形FillEllipse填充椭圆FillRectangle填充矩形通过通过GDI+可以绘制直线、矩形、椭圆、弧线、多边形可以绘制直线、矩形、椭圆、弧线、多边形和基数样条等矢量图形和基数样条等矢量图形。Windows CE Embedded System Development1、画直线、画直线2、画椭圆、画椭圆3、画矩形、画矩形使用Graphics类的DrawLine
31、方法。格式为:DrawLine(画笔,x1,y1,x2,y2)使用Graphics类的DrawEllipse方法。格式1为:DrawEllipse(画笔,矩形结构数据)。使用Graphics类的DrawRectangle方法。格式1为:DrawRectangle(画笔,矩形结构数据)。Windows CE Embedded System Development4、画多边形、画多边形5、填充椭圆、填充椭圆6、填充矩形、填充矩形使用Graphics类的DrawPolygon方法。格式为:DrawPolygon(画笔,Point points)使用Graphics类的FillEllipse方法。格式
32、1为:FillEllipse(Brush F,矩形结构数据)使用Graphics类的FillRectangle方法,格式1为:FillRectangle(Brush F,矩形结构数据)Windows CE Embedded System Development3.1.5 绘制文本绘制文本在在.NET Compact Framework中,利用中,利用GDI+库中的库中的Graphics类的类的DrawString方法可以实现文本的绘制工作。方法可以实现文本的绘制工作。1、对于Graphics类的DrawString方法有四个重载方法:(1)public void DrawString(stri
33、ng str,Font ft,Brush bh,RectangleF rf);(2)public void DrawString(string str,Font ft,Brush bh,RectangleF rf,StringFormat ft);(3)public void DrawString(string str,Font ft,Brush bh,float x,float y);Windows CE Embedded System Development(4)public void DrawString(string str,Font ft,Brush bh,float x,float
34、 y,StringFormat ft);3.1.6 绘制图像绘制图像1、用屏幕作绘图表面进行绘图、用屏幕作绘图表面进行绘图(1)在指定的位置按原始大小绘制指定的Image图像。方法为:public void DrawImage(Image image,int x,int y)(2)对Image图像进行缩放方法为:public void DrawImage(Image image,Rectangle destRect,Rectangle srcRect,GraphicsUnit srcUnit)Windows CE Embedded System Development2、用内存中位图作绘图表面
35、、用内存中位图作绘图表面例如下面MyDrawBitMap方法表示用指定大小的内存位图创建一个绘图表面:private void MyDrawBitMap()/Bitmap m_bmp=new Bitmap(width,height);Graphics g=Graphics.FromImage(m_bmp);g.FillRectangle(参数);g.DrawString(参数);private void MainForm_Paint(object sender,EventArgs e)e.Graphics.DrawImage(m_bmp,0,0);/将内存中绘制完成的位图显示在屏幕上。Wind
36、ows CE Embedded System Development3、将、将Image图像保存为文件图像保存为文件在一个内存位图的绘图表面上完成绘图工作以后,希望将图像结果保存为文件,以备今后浏览或使用,Bitmap类提供了Save方法用于完成这一工作。方法为:public void Save(string filename,ImageFormat format);Windows CE Embedded System Development3.2 手写笔签名程序开发手写笔签名程序开发3.2.1 程序功能设计程序功能设计1、功能描述、功能描述 程序实现的功能是在程序实现的功能是在Windows
37、 CE设备上用手写笔点设备上用手写笔点下并划动触摸屏时,将记录所有经过的点,并将它们下并划动触摸屏时,将记录所有经过的点,并将它们连接在一起,这样整个图形就可以看成是由一个个线连接在一起,这样整个图形就可以看成是由一个个线条构成的,如果单击清除按钮,则擦除刚刚所写的内条构成的,如果单击清除按钮,则擦除刚刚所写的内容,单击保存文件按钮,就会保持前一次所写内容,容,单击保存文件按钮,就会保持前一次所写内容,单击转载文件按钮,将前一次保持的文件装载并显示单击转载文件按钮,将前一次保持的文件装载并显示在屏幕正下方。在屏幕正下方。Windows CE Embedded System Developmen
38、t2、手写笔事件响应处理、手写笔事件响应处理程序手写笔事件处理说明手写笔事件程序事件对应的操作Click事件当手写笔单击触摸屏时,响应事件。MouseDown事件当手写笔接触到触摸屏时,开启一个新的线条MouseMove事件当手写笔接触到触摸屏并移动手写笔时,陆续连接手写笔经过的一个个连续的点,以便构成一个线条。MouseUp事件 当手写笔离开触摸屏时,结束连接当前的最后一个点。Windows CE Embedded System Development3.2.2 程序功能实现程序功能实现1、创建手写笔程序工程项目、创建手写笔程序工程项目2、SignatureControl组件类功能实现组件类
39、功能实现Windows CE Embedded System Development3、项目窗体功能设计、项目窗体功能设计Windows CE Embedded System Development手写笔运行界面手写笔运行界面Windows CE Embedded System Development3.3 图片浏览程序开发图片浏览程序开发3.3.1 程序功能设计程序功能设计图片浏览程序功能有三部分:图片浏览程序功能有三部分:定时在触摸屏中显示每一张图片。定时在触摸屏中显示每一张图片。当显示完每一张图片之后,再把刚才显示的所有图片当显示完每一张图片之后,再把刚才显示的所有图片以小以小 画面的形
40、式重新展现在屏幕中。画面的形式重新展现在屏幕中。当用手写笔点击屏幕中所有图片中的任意一个小画面当用手写笔点击屏幕中所有图片中的任意一个小画面时,该图片将进行放大显示。如果手写笔离开触摸屏时,该图片将进行放大显示。如果手写笔离开触摸屏时,放大显示的图片消失。时,放大显示的图片消失。Windows CE Embedded System Development3.3.2 程序功能实现程序功能实现1、创建图片浏览程序工程项目、创建图片浏览程序工程项目打开VS.NET2008开发平台,创建基于Windows CE的C#设备应用程序 Windows CE Embedded System Developme
41、nt从工具栏中将PictureBox控件拖放至MainFrm窗体设计界面正上方,调整至合适的高度和宽度,然后再从工具栏中将定时器控件timer1拖放至窗体内,用于定时显示图片,最后再添加一个Button按钮,用于开始图片浏览。2、窗体界面设计、窗体界面设计Windows CE Embedded System Development3、界面运行效果、界面运行效果Windows CE Embedded System Development3.3.3 部署安装应用程部署安装应用程序序当在桌面计算机上完成了Windows CE应用程序开发和测试工作之后,就需要将其制作CAB安装包部署到嵌入式设备中去运
42、行。Windows CE Embedded System Development第第4章章Windows CE 6.0数据库应用开发数据库应用开发 了解嵌入式数据库的基本概念 理解Sql Server Compact数据访问 掌握ADO.NET数据访问技术 掌握Windows CE下的数据库编程方法本章学习目标本章学习目标Windows CE Embedded System Development4.1 嵌入式设备数据存储简介现代嵌入式设备中所运行的程序需要大量的数据,其主要目的是运算数据、处理数据和传输数据。目前在嵌入式设备中存储数据的方式有两种:一种是以xml文件方式存储数据,另一种是以数
43、据库方式存储数据。在以xml文件方式存储数据的时候,其优点是xml文件可以跨操作系统平台进行访问,不管什么应用平台、什么开发工具,都可以按照文本文件的方式来解析,同时在VS.NET开发平台下具有良好的托管代码支持。Windows CE Embedded System Development4.2 SQL Server Compact 数据访问4.2.1SQL Server Compact简介 SQL Server Compact 3.5 Edition是在SQL Server Mobile Edition基础上增加了桌面系统的支持,这种精简的数据库可以跨平台运行在桌面操作系统包括Window
44、XP/Window Vista、Windows 2003系统,也可以运行在Windows CE操作系统中。整个Sql Server Compact 3.5版本体积很小,只有7个dll文件,大约1.7M左右,这种数据库的安全性是通过一种类似于文档的安全模式,支持为数据库文件设置密码。Windows CE Embedded System DevelopmentSQL Server Compact 3.5 Edition数据库的使用环境包括设备端和服务器端两部分,设备端中包含SQL Server Compact数据库文件,数据库引擎和客户端代理。客户端(设备端)嵌入式设备 应用程序 SQL Serv
45、erCompact 客户端代理 (Client Agent)SQLServerCompact数据库 服器端 IIS SqQLServer Compact服务器代理 (Server Agent)SQL Server 2005/2008 数据库 ActiveSync HTTP HTTP Windows CE Embedded System Development4.2.1SQL Server Compact设备端安装与配置当嵌入式开发人员在设计开发基于Windows CE数据库应用程序时,为了能使Sql Server Compact 3.5数据库应用程序能正常运行在Windows CE嵌入式设备中
46、,在定制Windows CE操作系统时,需要将支持Sql Server Compact 3.5本地数据库管理组件选择进Windows CE操作系统。Windows CE Embedded System DevelopmentWindows CE Embedded System Development打开Windows CE 6.0操作系统中的Windows文件夹,可以查看到SQL Server Compact数据库组件,如图所示,这里包含7个跟数据库有关的Dll文件,它们分别是sqlceca35.dll、sqlcecompact35.dll、sqlceer35en.dll、sqlceme35.
47、dll、sqlceoledb35.dll、sqlceqp35.dll、sqlcese35.dll。Windows CE Embedded System Development4.3 ADO.NET数据访问4.3.1ADO.NET概述ADO.NET是微软.NET平台中新的数据访问技术,它实现了对关系数据库以及XML数据源的一致访问,基于Windows CE嵌入式应用程序通过ADO.NET可以与Sql Server Compact 3.5数据库轻松地进行通信和管理。ADO.NET有两个核心组件构成:数据集(DataSet)与.NET Compact Framework数据提供程序。.NET Com
48、pact Framework数据提供程序包括Connection、Command、DataReader和DataAdapter对象。Windows CE Embedded System Development图 ADO.NET架构Windows CE Embedded System Development4.3.2 使用ADO.NET进行数据访问SQLCeConnection对象SQLCeCommand对象SqQLCeDataReader对象DataSet对象SQLCeDataAdapter对象SQLCeParameter对象BindingSourceWindows CE Embedded S
49、ystem Development4.4 LINQ to ADO.NET4.4.1LINQ to ADO.NET简介 Linq是Language-Integrated Query 语言集成查询的缩写,在针对嵌入式移动设备数据应用开发中,Linq作为VS.Net2008平台中的一个重要的特性,包含在.Net Compact Framework 3.5框架中,它为C#和VB.NET语言语法提供了强大的查询功能。.Net Compact Framework 3.5为Linq提供了完整的语言支持,它即支持标准的查询运算符,也支持Linq的类和方法,在嵌入式移动设备中Linq能够实现Linq to ob
50、ject、Linq to DataSet以及Linq to Xml三种核心功能。Windows CE Embedded System DevelopmentLinq to DataSetADO.NETADO.NETDataSetConnection CommandDataReaderADO.NET数据提供程序Sql Server Compact图 Linq to DataSet 与 ADO.NET 和数据存储区的关系Windows CE Embedded System Development4.4.2使用LINQ to DataSet1、通过具有筛选信息的查询创建 DataView2、使用 R