第一部分 入门篇 1
第1章 Windows Phone简介 1
1.1 Windows Phone为3G而生 1
1.2 Windows Phone历史简介 2
1.3 Windows Phone与Windows CE的差异 3
第2章 Windows Phone内部机制 7
2.1 事件驱动模型 7
2.2 了解Windows Phone程序 9
2.3 Windows Phone通信机制 15
第3章 Windows Phone开发环境 18
3.1 环境搭建 18
3.2 模拟器联网 18
3.3 蜂窝仿真器 20
3.3.1 设置仿真器 20
3.3.2 给模拟器拨打电话 21
3.3.3 从仿真器拨打电话 22
3.3.4 向仿真器发送短信 22
3.3.5 选择网络 23
3.4 编译错误的改正 23
第二部分 编程篇 25
第4章 理解手机版.NET Compact Framework 25
4.1 方便易用的.NET Compact Framework 25
4.2 选择.NET Compact Framework的版本 26
4.3 .NET Compact Framework Service Pack 29
4.4 公共语言运行库 29
4.5 .NET Compact Framework类库 30
4.5.1 与窗体相关的类 30
4.5.2 移动数据的处理 31
4.5.3 XML Web Service 32
4.5.4 3D图形编程与GDI 32
4.5.5 基础类 33
4.5.6 红外线类库 33
4.5.7 访问Windows注册表 33
4.5.8 与COM组件互操作 33
4.5.9 安全性 34
4.5.10 远程处理支持 34
4.6 .NET Compact Framework不包括的功能 34
4.6.1 方法重载 34
4.6.2 删除的控件 34
4.6.3 二进制序列化 35
4.6.4 代码级别的安全性 35
4.6.5 不支持打印 35
4.6.6 不支持GDI+ 35
第5章 开发从窗体开始 36
5.1 如何为窗体布局 36
5.2 Windows Phone程序开发流程 41
5.3 Windows Phone常用控件 42
5.4 Windows Phone自定义控件 45
5.5 复合控件 45
5.5.1 创建复合控件 46
5.5.2 添加控件属性 46
5.5.3 添加控件方法 48
5.5.4 使用复合控件 49
5.6 学建扩展控件 49
5.6.1 创建扩展控件 50
5.6.2 添加控件属性 50
5.6.3 添加集合属性 51
5.6.4 控制属性值 52
5.6.5 属性的错误处理 53
5.6.6 重载控件属性 54
5.6.7 添加控件方法 54
5.6.8 重载控件方法 55
5.6.9 隐藏控件方法 55
5.6.10 添加控件事件 55
5.6.11 重载控件事件 56
5.6.12 使用扩展控件 56
5.7 创建自绘控件 57
5.8 构造控件界面 59
5.9 自定义组件 60
5.10 自定义控件的开发技巧和注意事项 62
5.11 让控件的位置不乱动 62
5.12 赋予控件双击事件 63
5.13 创建自定义图像按钮控件 65
5.14 使用泛型优化控件代码 68
5.15 今日插件的开发 69
第6章 移动数据的处理 73
6.1 手机版数据库 73
6.2 SQL Server Compact的安装与配置 74
6.3 使用Visual Studio 2008创建数据库 76
6.4 使用SQL Server 2005 Management Studio创建数据库 77
6.5 如何访问SQL Server数据库 78
6.6 使用SqlConnection连接数据库 79
6.7 使用SqlCommand查询数据库 79
6.8 向SQL语句传递参数 81
6.9 ExecuteReader方法 81
6.10 使用存储过程 83
6.11 DataSet和DataAdapter组件 86
6.12 使用事务 88
6.13 使用网格控件显示数据 89
第7章 GDI与3D图形编程 94
7.1 GDI绘图 94
7.2 基础知识 95
7.3 任意图形的绘制 98
7.4 处理图片 101
7.5 绘制图形报表 103
7.6 绘制具有透明度的图像 105
7.7 界面动画效果的实现 106
7.8 任意旋转文本 110
7.9 移动版3D编程类库 113
7.10 使用定点的顶点数据 114
7.11 管理设备资源 114
7.12 透明、半透明、3D效果实现 116
7.13 开发手指滑屏程序 118
第8章 3G手机的多线程处理与消息队列 127
8.1 何为手机的多线程 127
8.2 .NET Compact Framework线程 128
8.3 创建多线程 129
8.4 构建第一个多线程应用程序 130
8.5 一个多线程程序的改进版 131
8.5.1 创建线程 131
8.5.2 挂起或者停止线程 132
8.5.3 工作线程 133
8.5.4 线程优先级 134
8.5.5 线程池 136
8.5.6 用时间控制线程 138
8.5.7 通过线程访问控件 141
8.5.8 死锁风险 142
8.5.9 线程同步 144
8.5.10 线程的通信 145
8.5.11 Monitor和Mutex对象 146
第9章 操作Windows Phone的注册表 152
9.1 概述 152
9.2 何为Windows Phone注册表 153
9.3 使用注册表 154
9.3.1 创建注册表子项 154
9.3.2 读取注册表子项 155
9.3.3 创建注册表值项 156
9.3.4 读取注册表值项 157
9.3.5 删除注册表子项 158
9.3.6 删除注册表值项 159
9.3.7 注册表数据类型 159
9.4 实战注册表 162
第10章 开发3G标准的网站 164
10.1 概述 164
10.2 3G Web网站 164
10.2.1 移动Web网站布局 164
10.2.2 移动Web网站文件类型 165
10.2.3 移动Web网站路径 166
10.2.4 移动Web网站中的共享代码文件夹 167
10.2.5 移动Web应用程序生命周期 167
10.2.6 移动Web页面生命周期 169
10.2.7 自适应错误报告 169
10.3 3G版ASP.NET控件 170
10.4 设计支持3G的页面 171
10.4.1 简易的移动3G窗体 172
10.4.2 放置多个移动Web窗体 173
10.4.3 响应控件事件 174
10.4.4 显示菜单 176
10.4.5 显示文本 177
10.4.6 智能拨打页面上的电话 179
10.4.7 手机按键输入 180
10.4.8 验证用户的录入结果 183
10.4.9 页面自动分屏 184
10.4.10 筛选器 184
10.4.11 使用DeviceSpecific控件 185
10.5 多语言3G Web页面 186
10.5.1 编码规格 186
10.5.2 资源文件 187
10.5.3 使用资源文件 188
10.6 构建安全的3G网站 189
10.6.1 Windows集成验证 190
10.6.2 Passport身份验证 190
10.6.3 基于Cookie的身份验证 190
10.6.4 窗体验证 190
第三部分 动手实例篇 193
第11章 开发3G手机办公软件 193
11.1 如何利用Windows Phone移动办公 193
11.2 移动版Outlook对象模型 193
11.3 访问移动版OutLook 194
11.4 开发手机任务程序 195
11.4.1 任务属性 195
11.4.2 任务对象 195
11.4.3 查询任务 196
11.4.4 检索所选任务 197
11.4.5 显示任务 197
11.4.6 增加任务 198
11.4.7 修改任务 199
11.5 编写联系人程序 200
11.5.1 Contacts属性 200
11.5.2 搜索联系人 201
11.5.3 搜索特定联系人 202
11.5.4 显示联系人 202
11.5.5 添加联系人 203
11.5.6 修改联系人 204
11.6 开发约会功能 205
11.6.1 查询约会 206
11.6.2 显示约会 207
11.6.3 增加约会 208
11.6.4 修改约会 209
第12章 编写3G多媒体软件 211
12.1 使用红外线传输文件 211
12.2 开发蓝牙功能 216
12.3 开发WiFi无线网络程序 218
12.4 一个综合的多媒体程序 224
12.4.1 实例的操作逻辑 224
12.4.2 如何选择图片 227
12.4.3 捕获照片和视频 229
12.4.4 查看照片和视频 231
12.4.5 将媒体保存到数据库 232
12.4.6 多媒体功能之外的代码 233
12.5 媒体播放器控件 235
12.6 DirectShow 236
12.6.1 筛选器和筛选器图形 237
12.6.2 开发DirectShow应用程序 237
第13章 开发卫星定位程序 246
13.1 开发选择 246
13.2 一个GPS定位程序 246
第14章 开发3G电话的短信与拨打功能 250
14.1 短信接口的种类 250
14.2 开发具备短信功能的软件 251
14.3 开发拨打电话的程序 254
第15章 打包和部署程序到Windows Phone 3G手机 259
15.1 实现帮助 259
15.1.1 创建基于HTML的帮助 259
15.1.2 在代码中启动帮助主题 262
15.1.3 母目录 262
15.1.4 Windows Phone设备上的联机帮助 263
15.2 锁定程序 263
15.2.1 kiosk模式 264
15.2.2 硬件按钮 265
15.2.3 用户接口的锁定 265
15.2.4 第三方解决方案 266
15.3 部署运行库 266
15.4 安装工程 267
15.4.1 Visual Studio安装程序工具 267
15.4.2 设备安装程序项目类型 267
15.4.3 文件添加与目标设置 267
15.4.4 添加快捷方式 268
15.4.5 写入注册表设置 268
15.4.6 压缩 268
15.5 安全策略与代码签名 269
15.5.1 代码签名 270
15.5.2 设计规范与Mobile2Market 270
15.6 全局程序集缓存 270
15.6.1 对程序集进行强命名 270
15.6.2 何时以及如何使用全局程序集缓存 271
15.6.3 学用组件CESetup.dll 272
15.6.4 测试.cab文件 274
15.7 生成桌面安装程序 274
15.7.1 添加自定义的.cab项目 274
15.7.2 添加其他应用程序文件 275
15.7.3 使设备端的安装自动进行 275
15.7.4 添加自定义安装操作 275
15.7.5 运行安装程序 276
第16章 开发一款游戏 277
16.1 全屏游戏窗体 277
16.2 重写OnPaint和OnPaintBackground 278
16.3 用于绘画的离屏位图技术 278
16.4 子图形 279
16.5 颜色键透明 279
16.6 作为嵌入式资源的图像 280
16.7 优化绘图方法 280
16.8 脏区计算 281
16.9 冲突检测 282
16.10 子图形速度 283
16.11 如何让游戏运转 283
16.12 计时器回调 285
16.13 优化启动时间 287
16.14 游戏按钮 287
第17章 开发3G无线点菜系统 289
17.1 系统功能设计 289
17.1.1 业务流程描述 289
17.1.2 移动数据库 290
17.1.3 系统的数据库结构 290
17.1.4 数据表结构 290
17.1.5 数据表的关系 292
17.2 详细功能设计 292
17.2.1 桌子预订 292
17.2.2 并台 294
17.2.3 转台 294
17.2.4 点菜 295
17.2.5 显示未上菜品 295
17.2.6 结账 296