第1章 XML Web服务和.NET Framework简介 1
4.2.1 下载本章的示例文件 1
1.1 认识Web服务的实质 2
7.3.4 SoapFormatter类 2
3.5.3 修复Wizard创建的WSDL文件 2
1.2 Web服务体系结构 3
1.2.1 普通Web服务 3
1.2.2 XML Web服务 5
1.2.3 XML Web服务示例 7
3.2.1 OakLeaf客户电子订单测试程序 9
4.4 在引入的组件代码中创建ASP.NET Web服务 12
5.2.4 使用SqlDataReader对象 15
1.2.4 XML Web服务提供商的角色 18
1.2.5 XML Web服务的缺陷 18
1.3 核心XML Web服务“标准” 19
1.3.1 简单对象访问协议(SOAP) 20
8.3.2 生成汇总查询 24
l.3.2 Web服务描述语言(WSDL) 25
9.2.3 第三阶段:格式化表和添加属性值 26
9.4.4 设计使用Crystal Reports服务的ASP.NET页面 28
1.3.3 XML模式定义(XSD)语言 28
1.3.4 通用描述、发现和集成(UDDI) 30
l.3.5 W3C安全标准:XML签名、XML加密和XML密钥管理规范(XKMS) 31
1.3.6 Microsoft全球XML Web服务体系结构的扩展 31
1.3.7 其他被提议的XML Web服务语言 32
1.4 NET中的XML Web服务支持 33
1.4.2 ASP.NET Web服务项目 34
1.4.1 System.Web.Services命名空间 34
4.5.2 为远程XML Web服务建立Web引用 36
l1.5.1 UDDI.NET SDK1.76Beta版本 36
1.4.3 ASP.NET页面和基于COM的XML Web服务 36
4.5.3 用Web引用对象替换SoapClient 37
第2章 掌握SOAP和WSDL 40
2.1 比较SOAP/WSDL和DCOM的实现方法 40
2.1.1 使用DCOM的VisualBasic6.0ActiveX DLL 41
4.6.1 远程ASP.NET服务调试 41
2.1.2 使用SOAP Toolkit2.0的VisualBasic6.0ActiveX DLL 42
2.1.3 使用.NET Client Web引用的ASP.NET Web服务 43
2.2 交换SOAP消息 44
2.3 利用RPC样式的消息调用方法 48
2.3.2 处理RPC响应消息 49
2.3.1 发送RPC请求 49
5.2.3 托管事务处理 50
2.4 处理SOAP故障 52
5.3 使用并测试ADO.NET SqlConnection、SqlCommand以及SqlTransaction对象 53
2.5 研究WSDL文件 53
2.5.1 分析GetOrder.Wsdl文件 56
5.3.3 用SqlCommand代替ADODB.Command.Execate方法和标量Recordset 56
2.5.2 评审SOAP Toolkit自动生成的WSML文件 58
2.6 使用Header元素扩充SOAP消息 59
2.7 预览GetNwindOrderASP.NET Web服务 60
5.3.5 从Firehose游标移动到SqlDataReader对象 60
2.7.1 完成并测试Web服务 64
5.4.2 通过代码从DataRowCollection检索值 65
5.4.3 用DataTable对象替代GetDistInventory方法的rstBrand Recordset 66
2.7.2 分析ASP.NET的WSDL文档 66
第3章 使用Microsoft SOAP Toolkit2.0 71
3.1.1 订单处理 72
3.1 分析一个典型的B2C/B2B项目的工作流 72
3.1.2 运送及开发货单 78
6.1 使用新的ASP.NET Web窗体仿真Windows窗体 82
6.3 维护HTTP请求之间的可变状态 87
6.3.2 重新编写测试客户程序代码 88
3.2 使用OCE_Orders项目的测试客户程序 91
3.2.2 继续订单处理 92
3.3.1 指派一个IIS虚拟目录和服务器名 93
3.3 安装Microsoft SOAP Toolkit2.0并运行示例代码 93
3.3.2 运行VisualBasic calc RPC应用程序 94
3.3.3 分析SOAP客户代码 95
3.4 为Web服务创建ActiveX DLL 96
3.5.2 使用Wizard创建WSDL文件 99
3.5.1 为OCE_OrdersAX服务添加虚拟目录 99
3.5 利用SOAP Toolkit2.0Wizard使ActiveX组件受到SOAP支持 99
3.6 用SoapClient对象调用XML Web服务 105
3.6.1 后期绑定SoapClient对象 105
3.6.2 处理运行时错误 106
3.6.3 用OCE测试客户程序验证服务 107
3.7 使用Trace Utility调试消息 108
3.8 将XML Web服务部署到一个产品服务器 110
第4章 升级到ASP.NET XML Web服务 111
4.1 升级过程综述 112
4.2.2 从后期绑定向前期绑定迁移 113
4.2 将XML Web服务客户程序升级到VisualBasic.NET中 113
4.2.3 使用Upgrade Wizard创建OCE_TestClient 114
4.2.4 纠正构建和运行时错误 115
4.2.5 使程序集名称和命名空间相一致 116
4.3 将ActiveX DLL升级为VisualBasic.NET组件 117
4.3.1 创建包含升级ActiveX DLL的解决方案 117
4.3.2 在组件中消除ETC 118
4.3.3 改变对升级组什的客户引用 120
4.4.1 添加ASP.NET XML Web服务并复制方法代码 122
4.4.2 检查asmx文件的WSDL文档 124
4.4.3 添加XML Web服务描述 129
4.4.4 用帮助页面测试XML Web服务 131
4.4.5 将ASP.NET项目文件移动或复制到一个新的位置 132
4.5 将VisualBasic.NET客户应用程序迁移到Web Reference 133
4.5.1 为本地ASP.NET服务添加Web引用 134
4.6 调试本地及远程ASP.NET XML Web服务 140
4.6.2 关闭对远程XML Web服务的调试 142
4.7 处理与SOAP相关的错误 142
4.8 利用SoapClient对象使用ASP.NET XML Web服务 143
4.9 评估升级的.NET客户程序和XML Web服务的性能 143
第5章 从ADO2.5+转移到ADO.NET 146
5.1 从ADO视点观察ADO.NET 146
5.1.1 托管提供者 147
5.1.3 DataAdapter、DataSet和DataTable对象 148
5.1.2 数据命令和数据读取器 148
5.2.1 用SqlConnection和SqlCommand对象替换ADODB.Connection 149
5.2 使用SqlClient对象 149
5.2.2 执行SqlCommands 150
5.3.1 下载并安装本章的示例代码 154
5.3.2 将ADODB.Connection对象替换为SQLConnection 155
5.3.4 用Connection对象传递Transaction对象 158
5.3.6 在相同的SqlConnection上调用ExecuteReader和ExecuteNonQuery或者ExecuteScalar 162
5.4.1 用SQL DataAdapter填充DataTable对象 164
5.4 用DataTable对象替代Recordset对象 164
5.5.1 OmegaBank.NET组件和相关的Web服务 168
5.5 将XML Web服务迁移到ADO.NET 168
5.5.2 分销商NET组件和XML Web服务 175
5.6 比较ADO和ADO.NET组件及服务的性能 179
第6章 将XML Web服务测试客户程序转换到ASP.NET 181
6.2 粘贴和修复Web窗体的VisualBasic.NET后台代码 185
6.3.1 添加所需的TextBox控件 187
6.4 分析与Web有关的行为和性能的变化 189
6.4.1 比较逐步订单处理和添加一个订单的行为 189
6.4.2 评估ASP.NET的智能导航功能 190
6.4.3 将特定浏览器设置为目标 190
6.4.4 在页面级跟踪执行情况 191
6.4.5 添加Trace.Write语句以识别造成瓶颈的问题 193
6.4.6 在应用程序级跟踪 195
6.5.1 在DataGrid服务器控件中显示订单产品项 197
6.5 添加DataGrid服务器控件显示产品项和订单信息 197
6.5.2 滚动DataTable来显示订单信息 200
6.6 测试填充DataGrids对客户程序性能的影响 202
7.1.1 System.Web.Services类 204
7.1 探讨System.Web.Services命名空间 204
第7章 导航System.Web.Services和System.Xml命名空间 204
7.1.2 System.Web.Services.Protocols类 206
7.1.3 system.Web.Services.Configuration类 208
7.1.4 System.Web.Services.Description类 209
7.1.5 System.web.Services.Discovery类 209
7.2 添加和处理SOAP头 209
7.2.1 在XML Web服务中实现SOAP头 210
7.2.3 使用ASP.NET客户程序测试初始SOAP头的修改 212
7.2.2 从WSDL文档删除HTTP GET和POST协议 212
7.2.4 修改XML Web服务以便处理头值 214
7.3.1 System.Xml成员类 215
7.3 遍历System.Xml命名空间 215
7.3.2 System.Xml.Serialization类 216
7.3.3 其他System.Xml类 217
7.4 使用Microsoft SQLXML3.0创建XML Web服务 218
7.4.1 添加用于XML Web服务的存储过程 219
7.4.2 设置虚拟目录 219
7.4.3 运行SQLXML3Windows窗体项目 222
7.4.4 使用XmlTextReader处理以属性为中心的XML数据文档 223
第8章 使用XML Web服务发送报告 227
8.1 创建业务智能报告 228
8.1.1 模拟历史订单或发票数据 228
8.1.2 构建XMLBI报告文档 233
8.2.1 指定SOAP头 237
8.2 开发提供数据报告的XML Web服务 237
8.2.2 设计XML请求文档 238
8.2.3 分析Windows窗体测试工具要求 239
8.3 剖析CTHarness交叉表报告项目 239
8.3.1 读取请求文档 240
8.3.3 创建和填充中间交叉表数组 244
8.3.4 生成XML响应文档 247
8.4 将测试工具的代码迁移到XML Web服务 249
8.4.1 指派WebMethod和启用跟踪 250
8.4.2 将Web Reference添加到测试工具并测试性能 251
9.1 创建用于XML Web服务的产品级ASP.NET页面 253
第9章 利用XML Web服务设计表示层 253
9.1.1 第一阶段:使用XML Web服务的最初页面布局和代码 254
9.1.2 第二阶段:显示响应文档 255
9.1.3 第三阶段:添加格式和导航功能 255
9.1.4 第四阶段:修改最终的页面设计并调整Netscape浏览器 256
9.2 将XML交叉表报告转换为格式化的表 256
9.2.1 第一阶段:生成并发送请求文档 257
9.2.2 第二阶段:使用XmlTextReader对象填充表 259
9.2.4 第四阶段:使有效起始日期同日历的边界对齐 264
9.3 深入研究DHTML导航 266
9.3.1 客户端导航脚本 267
9.3.2 OpenTOc.aspx页面的后台VisualBasic.NET代码 270
9.3.3 GetTocByld和GetTocByLevel Web方法的VisualBasic.NET代码 272
9.4.1 创建vw2001OrdersByQuarter视图 276
9.4 使用Crystal Reports创建XML Web服务 276
9.4.2 将交叉表报告添加到Windows窗体 277
9.4.3 从Crystal Report生成XML Web服务 280
9.5 利用Excel2002使用Office XP Web Services Toolkit 282
9.5.1 分析Excel2002示例应用程序 283
9.5.2 修改ReportsWS服务 284
9.5.3 在Excel工作表中显示XML Web服务交叉表报告 285
第10章 应用高级XML Web服务技术 290
10.1 使用XSD模式验证XML请求和响应消息 290
10.1.1 使用Xsd.exe生成模式 291
10.1.2 消除嵌套关系错误 292
10.1.3 强制请求文档元素 293
10.1.4 编写XmlValidatingReader对象 295
10.2.1 Schema视图 300
10.2 使用Visual Studio.NET的XML Designer 300
10.2.2 Data视图 302
10.2.3 XML视图 303
10.3 在XML请求文档中指定XSD数据类型 303
10.3.1 创建强类型模式 304
10.3.2 修改客户应用程序以处理类型化的模式 306
10.3.3 调整ReportsWS XML Web服务 308
10.4 在XML Web服务中进行元素数据类型检查 308
10.4.1 将客户模式验证复制到新方法中 309
10.4.2 用产品版本替换第8章的CTReportsWS服务 310
10.4.3 验证XML Web服务有效性过程 311
10.5 用rpc/encoded格式替代document/literal SOAP消息格式 311
10.5.1 创建document/encoded Web服务的副本 312
10.5.2 添加SoapRpcMethod属性 313
10.5.3 使用客户程序的付费用户测试复制的Web服务 315
10.6 串行化复杂数据类型 315
10.6.1 从现有文档定义类 316
10.6.2 串行化类实例 317
10.6.3 将XmlRootAttribute添加到类声明 319
10.6.4 输入请求和响应类 320
10.6.5 使用Xsd.exe创建类声明 321
10.6.6 使用DataSet的强类型化服务 322
10.7 处理无效的或慢速Web服务 323
10.7.1 在同步或异步处理之间决定 323
10.7.2 采用向下的服务战略 324
10.7.3 处理同步超时 324
10.7.4 诱发延迟以模拟慢速或非响应服务 325
10.8 异步使用XML Web服务 326
10.9 添加SOAP扩展 327
10.9.1 回顾Visual Studio.NET的TraceExtension示例 328
10.9.2 使TraceExtension示例具有可操作性 328
10.9.3 启用消息日志和读取日志文件 332
10.10 高速缓存XML Web服务 335
第11章 用UDDI为公共Web服务做广告 336
11.1 浏览MicrOSOfl UDDl1.0注册库站点 337
11.1.1 业务实体页面 337
11.1.2 业务服务页面 343
11.1.3 实例细节和tModel页面 346
l1.2 在操作员站点注册服务 348
11.2.1 添加一个业务实体 349
11.2.2 指定业务以及地理分类 350
11.2.3 注册服务的tModel 351
11.2.4 添加业务服务 353
11.3 在UDDl注册库中添加Web引用 355
l1.4 审查UDDI规范 357
11.4.1 UDDI1.0和2.O通用规范 357
11.4.2 UDDI2.0中增加的规范 360
l1.5 使用UDDI.Net SDK 360
ll.5.2 UDDI.NET SDK2.0Betal版本 364
第12章 与第三方Web服务互操作 365
l2.1 使web服务互操作性标准化 366
12.1.1 web服务互操作性组织 367
12.1.2 SOAP创建者组织 368
12.2 查找用于.NET互操作性测试的Web服务 369
12.2.1 XMethods站点 369
12.2.2 SalCentral Web服务中间商 370
12.3 利用Windows窗体付费用户测试互操作性 370
12.4 利用标准模式 373
12.4.1 可扩展的业务报表语言 374
12.4.2 电子商务XML(ebXML) 376
12.4.3 XML.org的模式注册库 376
12.4.4BizTalk.org的模式注册库 377
l2.5 探讨商业ASP.NET Web服务 377
12.6 规划XMLWeb服务的未来 378
A.1 下载和安装OakLeaf Consumer Electronics数据库 380
附录A 安装样本数据库 380
A.1.1 添加SQL Server登录和数据库Users 381
A.1.2 验证数据库的正确安装 383
A.2 安装CFRSQL数据库 384
A.2.1 下载及连接数据库 385
A.2.2 建立全文本搜索 385
附录B 用CFRClient扩展CFRSQL数据库 387
B.1 安装CFRClient项目和解决方案 388
B.2 运行CFRClient程序 389
B.2.1 把部件记录添加到数据库 390
B.2.2 将区域文本添加到数据库 390
B.2.3 生成内容表 393
B.3 客户仿真程序表单的使用 394
B.3.1 显示区域文档 395
B.3.2 显示内容表 396
B.3.3 执行全文本检索 396