标题：MicrosoftMobile移动开发宝典
编辑推荐
移动应用开发者的理想参考书，本书围绕三大主题展开讨论：移动应用程序开发基础；移动应用程序高级开发；.NET Compact Framework 3.5新功能。
本书重要主题：为智能设备设计和优化用户界面；使用Windows Mobile API添加功能；设备数据的组织与存储；实现移动设备与后端服务器的数据同步；建立网络连接。并对网络状态变化做出响应；实现身份验证、对称加密和非对称加密算法；为资源有限的设备应用进行性能优化；通过Pinvoke和COM互操作与本地代码进行交互；洞悉.NET Compact Framework 3.5与Visual Studio 2008。
内容简介
本书基于Microsoft Mobile平台，围绕着三大主题讲解移动应用程序的开发：移动应用程序开发基础；移动应用程序高级开发；．NET Compact Framework 3．5新功能。具体主题包括：移动开发基础、GUI、性能优化、数据、部署、网络通信、安全、多线程、平台互操作、图形编程、3D、全球化支持、Windows Mobile开发等。同时还涉及一些新技术，包括：Visual Studio 2008，Compact WCF、LINQ、单元测试等。
通过书中包含的演示示例和说明，读者循序渐进地掌握移动开发要领。本书适合从事移动应用开发的读者参考和阅读。
作者简介
Andy Wigley，是Microsoft设备应用程序开发MVP，一家移动开发和咨询公司的创始人。他是Building Microsoft ASP.NET Applecation for Mobile Devices和Microsoft.NET Compact Framework Core Reference的合著者之一。
目录
第Ⅰ部分 移动应用程序开发基础
第1章　.NET Compact Framework移动平台
1.1　Visual Studio移动应用程序开发快速入门
1.1.1　Visual Studio版本的选择
1.1.2　其他软件
1.1.3 目标、半台：Pocket PC，Smartphone还是Windows CE
1.1.4　Windows CE与Windows Mobile的差异
1.1.5　选择.NET Compact Framework的版本
1.2 .NET Framework 2.0与.NET Compact Framework 2.0的差异
1.2.1　应用程序配置文件
1.2.2　ClickOnce
1.2.3　Ngen.exe
1.2.4　远程功能
1.2.5　序列化
1.2.6　打印
1.2.7　Web窗体
1.3 .NET Compact Framework 1.0版和2.0版的差异
1.3.1　Windows窗体
1.3.2　显示与布局的管州
1.3.3　数据
1.3.4　通信
1.3.5　COM互操作
1.3.6　图形编程
1.3.7　安全
1.3.8　线程
1.3.9　性能监视
1.4　.NET Compact Framework 3.5版简介
1.5　使用社区资源
1.5.1　Microsoft patterns&practices移动应用程序构建块
1.5.2　OpenNETCF Smart Device Framework
1.6　总结
第2章　构建Windows窗体GUI
2.1 了解2.0版本Windows窗休的改进
2.2　使用桌面应用程序丌发流程
2.3　设备屏幕与设备窗体的映射
2.3.1　屏幕的布局
2.3.2　窗体的关闭
2.3.3　窗体的导航
2.4　探究几个重要的Windows窗休控件
2.4.1 Panel
2.4.2 TabControl
2.4.3 Menu(软按键)与ToolBar
2.4.4 Microsoft.WindowsCE.Forms
2.4.5 创建自己的摔件
2.5 输入的处理
2.5.1 点选
2.5.2 SIP和QWERTY硬件键盘
2.5.3 硬件按钮
2.6 考虑屏幕的物理因素
2.6.1 方向(与大小)
2.6.2 分辨率
2.6.3 Microsoft patterns&practices Orientation—Aware控件
2.6.4　可选择式设计方案
2.7　针对Smarthone进行开发
2.7.1 控件行为
2.7.2　导航范式
2.7.3　InputModeEditor
2.7.4　利用Smartphone项目的IntelliSense
2.8　针对Windows CE设备进行开发
2.9 总结
第3章　使用SQL Server 2005　Compact Edition和其他数据存储
3.1 使用SQL Server 2005 Compact Edition数据库
3.1.1　使用Visual Studio 2005 创建数据库
3.1.2　使用SQL Server 2005 Management Studio创建数据库
3.1.3　连接到已存在的数据库
3.1.4　创建表、索引和外键
3.1.5　揭秘SqlCeException
3.2　在项目中创建与数据的连接
3.2.1　创建项目数据源
3.2.2　强类型的DataSet和SqlCeResultSet的设计与编程
3.3 构建数据绑定GUI
3.3.1　使用可视化工具构建Ouick UI
3.3.2 BindingSource控件编程.
3.3.3　细节窗体的数据绑定
3.3.4 使用SqlCeResultSet进行数据绑定
3.3.5　高级数据绑定
3.3.6　设置DataGrid控件的数据格式
3.4　在不使用数据库的情况下保存数据
3.4.1 DataSet对象的序列化
3.4.2　对象的序列化
3.5 总结
第4章　捕获错误，测试与调试
4.1 连接到目标
4.1.1 设备
4.1.2　仿真器
4.1.3　最佳选择
4.2　编译时错误
4.3　异常处理——与完整版.NET Framework一致
4.4　运行时异常
4.4.1　异常起因的诊断
4.4.2　这是您的失误
4.4.3　避免异常抛出
4.4.4　合理进行异常处理与恢复
4.4.5　保卫边界（全局异常处理：最后的防线）
4.5　全局异常处理
4.5.1 完整版.NET Framework中的GEH
4.5.2 .NET Compact Framework 1.0中的GEH
4.5.3 .NET Compact Framework 2.0中的GEH
4.5.4　选择GEH的处理方法：单方法与多方法的比较
4.6　不容忽视的重要异常
4.6.1 Web Exception
4.6.2　SocketException
4.6.3　SqlCeException
4.6.4 InvalidOperationException
4.6.5 MissingMethodExcepion
4.6.6 MissingManifestResource Exception
4.6.7 TypeLoadException
4.7 日志文件
4.7.1　加载程序同志
4.7.2　互操作日志
4.7.3 网络同志
4.7.4　错误日志
4.7.5　终结器日志(3.5版)
4.7.6　远程性能监视器
4.8　手段
4.8.1 断点
4.8.2　跟踪点
4.8.3 Debug.WriteLine
4.8.4　将追踪信息写入文件
4.9　单元测试
4.9.1 社区项目
4.9.2　部署到“我的电脑”
4.9.3 Patterns and Practices
4.9.4 Visual Studio 2008
4.10 总结
第5章 理解.NET Compact Framework与性能优化
第6章　完成应用程序：打包与部署
第Ⅱ部分　移动应用程序高级开发
第7章　与后端服务器的数据交换
第8章 网络
8.1 理解网络与移动设备的复杂性
8.2　使用Web服务
8.3　理解System.Net
8.3.1　WebRequest
8.3.2　套接字
8.4 使用IrDA与Bluetooth
8.5　使用串口
8.6　理解System.Messaging
8.7 总结
第9章　连接
9.1　理解Windows Mobile的连接
9.2　使用桌面间接连接
9.3　语音与数据呼叫
9.3.1 语音呼叫
9.3.2　数据呼叫的建立
9.3.3 Microsoft patterns&practices网络监视应用程序构建块
9.4　适配器的开启与关闭
9.4.1 蜂窝电话
9.4.2　WiFi
9.4.3 Bluetooth
9.4.4　SMS侦听
9.5 总结
第10章　移动应用程序安全编程
10.1 良好安全性的实现
10.1.1　执行安全审查
10.1.2　为何不能对保密信息进行硬编码
10.1.3　保密信息隐藏技术的优与劣
10.1.4 良好安全性的实现需要用户的输入
10.2　凭据与其他保密信息的安全存储
10.2.1　保护SQL Server CE数据库中的数据
10.2.2　使用Microsoft patterns&practices应用程序构建块进行安全方案编程
10.3　数据加密
10.3.1 使用AES对称算法的加密
10.3.2　使用RSA非对称算法的加密
10.4　网络连接的保护
10.4.1　安装在基于Windows Mobile的设备上的根证书
10.4.2　使用自签名证书
10.5　用户输入的有效性验证
10.6　边界安全：设备访问的防护
10.7　应用程序的签名
10.7.1　理解Windows Mobile的安全策略
10.7.2　基于Windows Mobile的设备配置
10.8　总结
第11章　线程
11.1　为什么使用线程
11.2　理解底层机制
11.2.1　Windows CE
11.2.2　System.Threading
11.3　及时响应用户接口的维护
11.3.1 消息泵
11.3.2　耗时的任务
11.3.3　演示示例
11.3.4　不理想的解决方案
11.3.5　使用线程来解决问题
11.3.6　BackgroundWorker
11.4　线程活动的同步与数据访问
11.4.1　竞态条件
11.4.2　监视器
11.4.3　线程安全
11.4.4　再论死锁
11.4.5 ManualResetEvent
11.5　ThreadPool
11.6　理解线程与程序的关闭
11.6.1　后台线程
11.6.2　线程的终止
11.7　使用.NET计时器
11.8　总结
第12章　图形编程
12.1 图像、文本与图形的绘制
12.1.1　理斛绘制的基本要素
12.1.2　图像的绘制
12.1.3　图像的缩放
12.1.4　背景的绘制
12.1.5　图形与文本的绘制
12.1.6　直线段的绘制
12.2　不同分辨率的处理
12.3　文本的旋转
12.4　使用双缓冲技术来减轻闪烁现象
12.5　使用高级格式化技术
12.5.1　使用渐变填充进行绘制
12.5.2　透明背景图片的绘制
12.5.3　Alpha混合图像的绘制
12.6 总结
第13章 Direct3D Mobile
13.1　Direct3D快速入门
13.1.1　在程序中使用Direct3D
13.1.2　Direct3D设备对象
13.1.3　绘制过程
13.1.4　使Direct3D程序运行起来
13.2　走进三维空间
13.2.1　三角形的渲染
13.2.2　理解坐标与视图
13.2.3　三维物体的移动
13.2.4　从程序员到导演
13.2.5　矩阵
13.2.6　透视与变换
13.2.7　变换与动画
13.2.8　复杂变换的添加
13.2.9　纹理的添加
13.2.10　复杂物体的创建
13.2.11 多个同类物体的绘制
13.2.12　光照
13.2.13 网格
13.2.14　网格的光照与材质
13.3 移动设备上的Direct3D
13.3.1　Direct3D与事件
13.3.2　屏幕方向改变的管理
13.3.3　Direct3D绘图性能
13.3.4　平台差异的处理
13.3.5　电量的消耗
13.4 总结
第14章　平台互操作
14.1　理解平台调用服务
14.1.1　封送
14.1.2　NativeMethods
14.1.3　Media示例
14.1.4　对托管代码进行回调
14.2　理解COM互操作
14.2.1　COM库的导入
14.2.2　接口的手动定义
14.2.3　AcfiveX控件
14.3 总结
第15章　自定义控件的构建
15.1　现有控件的扩展
15.2　创建自定义控件
15.2.1　UserControl
15.2.2　Control类
15.3　设计时体验编程
15.3.1　属性
15.3.2　添加到Visual Studio 2005工具箱
15.4　总结
第16章　国际化支持
16.1　全球化带来的问题
16.2 区域性
16.2.1　Culturelnfo
16.2.2　再论全球化问题
16.3　使用语言翻译(本地化)
16.3.1 资源文件的创建
16.3.2　资源的读取
16.3.3　区域性特定的资源与附属程序集
16.3.4　实际的文本翻译工作
16.4　总结
第17章　Windows Mobile的开发
17.1　PocketOutlook
17.1.1　个人信息管理
17.1.2　消息
17.2　状态与通知
17.3 图片
17.4 GPS
17.5　配置
17.5.1 以编码方式对设备进行配置
17.5.2　配置文件设置的部署
17.6 电话
17.7　Windows Mobile的早期版本
17.8　总结
第Ⅲ部分　.NET Compact Framework 3.5新功能
第18章　.NET Compact Framework3.5与Visual Studio 2008概览
18.1 .NET Compact Framework 3.5简介
18.2　Visual Studio 2008简介
18.3　使用.NET Compact Framework 3.5进行开发
18.3.1　Compact WCF编程
18.3.2　语言集成查询编程
18.3.3　System.IO.Compression编程
18.4 Visual Studio 2008 Team System中的单元测试
18.4.1 在Visual Studio 2008中编写单元测试
18.4.2 单元测试的运行
18.5 总结