第1章 入门 1
1.1 背景 1
1.1.1 两种用户界面 1
1.1.2 支持ARM设备 1
1.1.3 接受度 2
1.1.4 快速的发布周期 2
1.1.5 微软应用商店 2
1.1.6 Windows 8.1的新增功能 2
1.2 Windows的设计原则 2
1.2.1 快速流畅 3
1.2.2 出色的尺寸调节功能 3
1.2.3 使用正确的合约 3
1.2.4 打造精致的磁贴 3
1.2.5 网络连接和实时性 3
1.2.6 可利用云平台 3
1.2.7 遵守现代应用程序的设计原则 4
1.2.8 UX设计指导原则 4
1.3 工具 4
1.3.1 Visual Studio 2013 5
1.3.2 Blend for Visual Studio 2013 10
1.4 Git 12
1.5 NuGet 16
1.5.1 安装NuGet 16
1.5.2 启用程序包恢复功能 17
1.5.3 安装第一个程序包 19
1.6 小结 20
第2章 创建第一个Windows 8应用 21
2.1 Windows的体系结构(面向开发者) 21
2.2 创建第一个应用 22
2.2.1 应用项目概述 22
2.2.2 App.xaml文件 27
2.2.3 MainPage.xaml文件 27
2.3 Model View ViewModel 27
2.3.1 模式 27
2.3.2 创建模型 28
2.3.3 创建视图模型 31
2.3.4 更新隐藏代码 32
2.3.5 创建视图 32
2.3.6 测试应用 33
2.3.7 指导原则 34
2.4 导航 34
2.4.1 创建新页面 35
2.4.2 向主页面添加导航功能 36
2.4.3 处理NavigatedTo事件 37
2.4.4 后退按钮 37
2.5 小结 38
第3章 主题、面板和控件 39
3.1 选择一种主题 39
3.2 使用面板 41
3.2.1 画布 41
3.2.2 网格 43
3.2.3 堆积面板 47
3.2.4 边框控件 47
3.3 使用控件 48
3.3.1 文本块和文本框 49
3.3.2 拼写检查 51
3.3.3 标题和水印 51
3.3.4 密码框 53
3.3.5 按钮和事件处理程序 54
3.3.6 复选框、切换开关和单选按钮 56
3.3.7 列表框、列表视图和组合框 58
3.3.8 图像控件 60
3.3.9 滑块 61
3.3.10 进度条 62
3.3.11 工具提示 62
3.3.12 日期选取器和时间选取器 63
3.3.13 弹出菜单 63
3.4 了解依赖属性 65
3.4.1 数据隐藏 65
3.4.2 依赖属性 66
3.5 小结 68
第4章 绑定 69
4.1 数据上下文 69
4.2 创建简单的绑定 70
4.3 数据绑定语句 71
4.4 绑定错误 72
4.4.1 FallbackValue 73
4.4.2 TargetNullValue 73
4.5 绑定元素 74
4.6 绑定模式 75
4.7 UpdateSourceTrigger 76
4.8 INotifyProPertyChanged 76
4.9 绑定集合对象 78
4.9.1 创建集合 79
4.9.2 创建已绑定数据的ListView控件 81
4.9.3 创建已绑定数据的GridView控件 82
4.9.4 INotifyCollectionChanged 83
4.10 数据转换器 84
4.11 小结 86
第5章 视图 87
5.1 GridView控件和ListView控件 87
5.1.1 创建样本 87
5.1.2 支持代码 93
5.1.3 调整应用的宽度 94
5.1.4 创建ListView控件 95
5.1.5 切换视图 96
5.1.6 处理调整尺寸事件 100
5.2 网格应用程序模板 101
5.2.1 网格应用程序模板的组成部分 101
5.2.2 通过多种方式将数据整合到网格应用程序项目中 104
5.2.3 将自定义数据整合到SampleDataSource类中 104
5.3 拆分布局应用程序模板 110
5.4 小结 111
第6章 本地数据 112
6.1 应用程序数据 112
6.1.1 设置容器 112
6.1.2 保存、读取和删除本地数据 113
6.2 创建数据层次 115
6.2.1 创建存储库接口 115
6.2.2 创建数据模型 116
6.2.3 创建视图模型 116
6.3 本地数据 119
6.3.1 使用JSON格式化数据 119
6.3.2 本地数据容器 120
6.3.3 创建文件存储库 120
6.3.4 创建视图 123
6.3.5 漫游 127
6.4 用户指定的存储位置 127
6.4.1 创建FileOperations类 127
6.4.2 为JSON文件添加文件关联 129
6.5 SQLite 131
6.6 小结 136
第7章 远程数据和服务 137
7.1 远程数据服务 137
7.2 REST 138
7.3 常见的API格式 138
7.3.1 XML 139
7.3.2 JSON 139
7.4 ASP.NET Web API 140
7.4.1 使用ASP.NET Web API创建服务 140
7.4.2 通过Web API约定代替配置 144
7.4.3 Entity Framework 144
7.5 通过Windows 8.1 客户端访问ASP.NET Web API服务 148
7.5.1 通过NuGet添加Web API客户端程序包 148
7.5.2 添加Contact类 150
7.5.3 编辑SampleDataSource类 150
7.5.4 调用LoadDataAsync方法 152
7.5.5 运行客户端 153
7.6 在Windows 8.1中使用OData数据 154
7.7 小结 159
第8章 搜索和共享合约 160
8.1 搜索 161
8.1.1 为应用添加基于超级按钮的搜索功能 161
8.1.2 创建样本数据来匹配搜索关键词 164
8.1.3 使用搜索框执行搜索操作 168
8.2 共享 171
8.2.1 结构 172
8.2.2 实现 172
8.3 创建共享目标 175
8.4 小结 177
第9章 通知 178
9.1 通知的显示选项 178
9.2 通知的传送选项 179
9.3 动态磁贴 179
9.3.1 创建样本数据 180
9.3.2 手动添加动态磁贴 183
9.3.3 通过NotificationsExtensions添加动态磁贴 186
9.3.4 重置磁贴 188
9.4 辅助磁贴 188
9.4.1 创建项目 189
9.4.2 创建辅助磁贴 189
9.4.3 回应辅助磁贴的启动 192
9.5 Toast通知 194
9.5.1 创建带Toast通知功能的应用 194
9.5.2 更新清单文件 195
9.5.3 手动创建Toast通知 196
9.5.4 通过NotificationsExtensions项目创建Toast通知 197
9.5.5 回应Toast通知的启动 198
9.6 通过Windows推送通知服务和Windows Azure移动服务推送通知 200
9.6.1 WNS交互功能概述 200
9.6.2 为什么使用WAMS 201
9.6.3 WAMS日志 217
9.7 小结 217
第10章 应用的生命周期 218
10.1 三种应用状态 218
10.1.1 正在运行 219
10.1.2 已挂起 219
10.1.3 已终止 219
10.2 状态转换 219
10.2.1 启动 220
10.2.2 激活 220
10.2.3 挂起 220
10.2.4 继续 220
10.2.5 终止 220
10.2.6 杀掉进程 221
10.3 使用挂起管理器 221
10.3.1 使用异步方法 221
10.3.2 在空白应用程序中添加SuspensionManager类 221
10.4 创建应用 223
10.4.1 添加导航参数类 224
10.4.2 创建详细信息页面 224
10.4.3 创建主页面 225
10.4.4 添加/编辑列表项 226
10.5 回应挂起操作 227
10.5.1 注册根帧 227
10.5.2 OnSuspending事件 227
10.5.3 保存会话数据 228
10.5.4 保存会话状态 228
10.6 回应激活操作 229
10.6.1 确定上一个状态 229
10.6.2 对恢复导航状态进行测试 230
10.6.3 恢复会话信息 230
10.6.4 对恢复会话信息进行测试 231
10.7 小结 231
第11章 获取利润 232
11.1 选择获利方案 232
11.1.1 免费 232
11.1.2 销售 232
11.1.3 应用内购物支持 233
11.1.4 应用内广告支持 233
11.2 实现获利方案 233
11.2.1 通过程序方式检查许可状态 233
11.2.2 设置应用内购物功能 236
11.2.3 将试用版转换为正式版 240
11.2.4 应用内广告 241
11.3 小结 247
第12章 发布应用 248
12.1 注册开发者账号 248
12.2 提交应用清单 249
12.2.1 选择应用名称 250
12.2.2 设置销售详细信息 251
12.2.3 年龄分级和分级认证 254
12.2.4 加密 254
12.2.5 程序包 254
12.2.6 提要 258
12.2.7 测试人员说明 263
12.2.8 提交应用进行认证 263
12.3 小结 264