第1章 分布式应用程序 1
1.1 什么是分布式数据应用程序 1
1.1.1 我们的定义 2
1.1.2 为什么需要分布 2
1.2 如何在Internet上进行分布式工作 3
1.2.1 Internet协议 4
1.2.2 Internet客户机 4
1.3 分布式应用程序的元素 5
1.3.1 客户机设备和客户机应用程序 7
1.3.2 服务器端数据存储 8
1.3.3 处理和表示信息 10
1.3.4 数据访问技术概述 13
1.3.5 关于“关系”数据访问 14
1.3.6 ADO.NET数据访问类 15
1.4 深入理解System.Xml 22
1.4.1 表示数据和信息 22
1.4.2 System.Xml类 26
1.5 数据访问和N层模型 28
1.5.1 数据的用途是什么 29
1.5.2 一些N层数据访问情形 31
1.6 小结 36
第2章 组件和数据访问 38
2.1 不同类型的组件 38
2.1.1 .NET组件 38
2.1.2 COM和COM+组件 41
2.1.3 用户控件 42
2.1.4 包含文件 43
2.1.5 服务器控件 44
2.2 访问与展示数据 44
2.2.1 向胖客户机传递数据 44
2.2.2 为低端客户机管理数据 44
2.2.3 显示XML数据 45
2.3 DataSet对象 45
2.3.1 DataSet对象的结构 45
2.3.2 何时使用DataSet 48
2.4 关系数据访问组件示例 48
2.4.1 建立示例 48
2.4.2 访问及返回关系数据 49
2.5 小结 76
第3章 访问XML文档 78
3.1 XML数据访问组件示例 78
3.2 小结 103
第4章 应用程序管道化 105
4.1 客户机端技术概论 105
4.2 远程传输数据到客户机 110
4.2.1 将关系数据远程传送到客户机 110
4.2.2 远程传送XML数据到客户机 112
4.2.3 在客户机上运行.NET Framework 114
4.3 使用ASP.NET会话 125
4.3.1 ASP.NET中的会话配置 125
4.3.2 检测会话支持 127
4.4 客户机检测示例 128
4.4.1 检测过程概述 129
4.4.2 检测客户机类型 129
4.4.3 default.aspx页面 132
4.4.4 检测客户机端脚本支持 134
4.4.5 设备特有的主页 136
4.4.6 浏览结果 139
4.5 小结 143
第5章 处理低端客户机 144
5.1 多客户机订单应用程序 144
5.2 检测客户机类型 146
5.3 数据访问层 149
5.4.1 工作流程 150
5.4 HTML版本的订单应用程序 150
5.4.2 搜索顾客 151
5.4.3 显示顾客列表 153
5.4.4 显示订单列表 159
5.4.5 显示订单详细记录 167
5.5 订单列表应用程序的移动式版本 171
5.5.1 工作流程 172
5.5.2 从服务器提取数据 173
5.5.3 移动式页面的内容 177
5.6 小结 190
第6章 处理胖客户机 192
6.1 使用XML 192
6.1.1 为什么是XSL和XSLT 192
6.1.2 展示并传递XML 193
6.2 在IE5及以上版本中使用XML 194
6.2.1 建立中间层 194
6.2.2 选择顾客 200
6.2.3 选择订单 211
6.2.4 查看订单的详细信息 217
6.3 在IE5及以上版本中使用Web服务 221
6.3.1 了解顾客数据Web服务 222
6.3.2 建立中间层 224
6.3.3 IE5的WebService行为 228
6.4 一个超文本应用程序示例 232
6.4.1 运行超文本应用程序示例 233
6.4.2 建立中间层 235
6.4.3 HTA页面内容 236
6.4.4 选择订单 241
6.5 处理带定界符的文本数据 242
6.5.1 为什么使用带定界符的文本数据 242
6.5.2 建立中间层 242
6.5.3 选择顾客 247
6.5.4 选择并查看订单 253
6.5.5 使用XML的客户机端数据绑定 258
6.6 小结 259
第7章 远程访问.NET客户机 260
7.1 远程访问——一个新事物 260
7.2 远程访问对象 261
7.2.1 可远程访问的对象类 261
7.2.2 远程服务器 261
7.2.3 远程客户机 263
7.2.4 IIS掌管的服务器 265
7.2.5 部署对象 266
7.3 Windows应用程序 267
7.3.1 设计选择 268
7.3.2 远程访问Windows应用程序的数据 269
7.3.3 使用Web服务 274
7.4 增量下载 278
7.4.1 创建下载窗体 278
7.4.2 动态加载订单窗体 278
7.4.3 下载高速缓存 281
7.5 部署 282
7.6 安全措施 284
7.7 动态应用程序 291
7.8 小结 292
第8章 在低端客户机上更新数据 293
8.1 更新数据存储概览 293
8.1.1 尽可能使处理过程高效率 294
8.1.2 权衡结果并提供反馈 295
8.1.3 通过控制访问来保护数据 295
8.1.4 控制并发数据更新 296
8.2 .NET中的数据更新技术 297
8.2.1 在更新数据时使用事务处理 303
8.2.2 更新时管理并发操作 306
8.3 HTML3.2客户机的数据更新示例 309
8.3.1 应用程序概览 309
8.3.2 显示和编辑订单 314
8.3.3 显示和编辑订单内容 341
8.4 移动设备的数据更新示例 353
8.4.1 应用程序设计 353
8.4.2 查看应用程序 355
8.5 小结 357
第9章 更新远程高速缓存数据 359
9.1 架构回顾 359
9.1.1 在客户机上高速缓存更新 360
9.1.2 将更新回送给服务器 361
9.1.3 加载一个DataSet 362
9.2 执行更新过程 377
9.2.1 提供来自更新过程的反馈 377
9.2.2 更新过程详述 380
9.2.3 一个数据更新过程示例 382
9.3 小结 397
第10章 更新数据的组件 398
10.1 UpdateDataSet组件 398
10.1.1 利用组件技术使跟踪成为可能 399
10.1.2 组件中通用的方法 401
10.1.3 管理插入行的IDENTITY列 402
10.1.4 UpdateAllOrderDetails方法 413
10.1.5 创建参数化的Command对象 424
10.2 使用UpdateDataSet组件 430
10.3 小结 440
第11章 胖客户机更新应用程序 441
11.1 应用程序概述 442
11.2.1 从数据访问层中获取数据 444
11.2 中间层ASP.NET页面 444
11.2.2 提供给客户机的数据 445
11.3 在客户机上加载Diffgram 445
11.3.1 加载订单数据 446
11.3.2 加载承运商数据 447
11.3.3 加载产品数据 448
11.4 编辑.NET DataSet Diffgram 449
11.4.1 浏览更新的diffgram 450
11.4.2 更新的diffgram格式 453
11.5 edit-orders.aspx页面代码和HTML 457
11.5.1 创建订单列表 457
11.5.2 向服务器传递更新的diffgram 458
11.5.3 显示所选择的订单详细记录 461
11.5.4 创建订单行列表 467
11.5.5 讨论无效数据 468
11.5.6 更新订单diffgram 469
11.6 小结 489
第12章 协调更新错误 490
12.1 协调更新错误概述 490
12.2 协调的详细过程 495
12.3 借助于Web服务的胖客户机更新 520
12.3.1 问题和解决办法 520
12.3.2 中间层Web服务组件 521
12.3.3 Web服务客户机应用程序 523
12.4 其他的胖客户机更新技术 537
12.3.1 采用界定符的胖客户机更新 537
12.4.2 超文本应用程序更新 538
12.5 小结 539
第13章 远程.NET应用程序的数据更新 540
13.1 Windows Forms应用程序 540
13.2 新的可编辑的订单表单 545
13.2.1 DataGrids和TableStyles 546
13.2.2 Windows表单数据绑定 546
13.2.3 维护当前行 550
13.2.4 到目前为止的代码 552
13.3 处理数据更改 554
13.3.1 添加行 554
13.3.2 删除行 554
13.3.3 取消编辑 555
13.4 将更改送到数据库中 557
13.5 并发冲突的处理 559
13.5.1 ErrorProvider对象 560
13.5.2 错误处理表单 560
13.5.3 识别错误 562
13.5.4 更改视图 567
13.5.5 纠正错误 570
13.5.6 导航 574
13.5.7 被删除行的处理 575
13.5.8 保存被纠正的数据 577
13.6 实际应用中的应用程序 578
13.7 小结 579
后话 580