第1章 .NET Framework概述 1
1.1 .NET Framework 1
1.1.1 公共语言运行时 2
1.1.2 Framework类 17
1.2 .NET语言 18
1.2.1 C#简介 18
1.2.2 VB.NET综览 21
1.3 ASP.NET 23
1.3.1 HTML控件 23
1.3.2 Web控件 24
1.3.3 移动控件 26
1.3.4 Web服务 27
1.4 global.asax 29
1.4.1 应用程序指令 29
1.4.2 服务器端对象标记 30
1.4.3 服务器端的include指令 30
1.5 ADO.NET 30
1.5.1 数据访问 30
1.5.2 ADO与ADO.NET 30
1.5.3 XML和ADO.NET 31
1.6 小结 32
2.1.1 使用XML建立配置文件的好处 33
2.1 从.INI文件到现在的注册表 33
第2章 .NET Framework中的XML 33
2.1.2 配置文件的类型 34
2.1.3 配置文件的XML结构 35
2.2 XML代码文档 42
2.3 ADO.NET,数据和XML 45
2.3.1 ADO的局限性 45
2.3.2 进入ADO.NET 45
2.4 ASP.NET和XML 46
2.5 Web服务 46
2.6 XML串行化 47
2.7.1 System.xml简介 49
2.7 基于流和基于DOM的XML类 49
2.7.2 .NET中的MSXML 55
2.8 小结 56
第3章 读写XML 57
3.1 所用的技术 57
3.2 System.xml程序集 57
3.3 读取XML文档 57
3.3.1 XmlReader抽象类 58
3.3.2 xmlReader与SAX的比较 58
3.3.3 xmlTextReader类 58
3.4.1 xmlWriter抽象类 74
3.4 编写XML文档 74
3.3.4 xmlNodeReader类 74
3.3.5 xmlValidatingReader类 74
3.4.2 xmlTextWriter类 75
3.5 一个更复杂的示例 92
3.5.1 问题 92
3.5.2 解决方案:封装Reader和Writer 93
3.6 小结 98
第4章 XML的DOM导航 99
4.1 所用的技术 99
4.2 System.Xml程序集 99
4.3 理解DOM类 99
4.5.1 从URL打开文档 101
4.4 用法准则 101
4.5 打开一个已有文档 101
4.5.2 从文件打开文档 102
4.5.3 从内存字符串打开文档 102
4.6 在文档中导航 103
4.7 在文档中搜索内容 103
4.7.1 GetElementsByTagName()方法 103
4.7.2 GetElementByld()方法 106
4.7.3 SelectNodes()方法 108
4.7.4 SelectSingleNode()方法 110
4.8.1 元素 112
4.8 访问内容 112
4.8.2 文本 115
4.8.3 注释 117
4.8.4 处理指令 117
4.8.5 属性 119
4.8.6 实体处理 122
4.8.7 空白字符处理 122
4.8.8 命名空间支持 126
4.9 修改文档 128
4.9.1 删除内容 128
4.8.9 验证 128
4.9.2 修改内容 132
4.9.3 创建新内容 134
4.9.4 插入内容 136
4.9.5 加入属性 136
4.10 从头创建一个文档 138
4.11 一个更复杂的示例 140
4.11.1 一个商务问题 140
4.11.2 解决方案:扩展xmlDocument类 140
4.12 小结 147
5.2 System.xmlXsl命名空间 148
5.3 System.xml.XPath命名空间 148
5.1 所用的技术 148
第5章 XML的XSL转换 148
5.4 XSLT处理 149
5.4.1 XslTransform类 149
5.4.2 用msxsl:script编写嵌入式脚本语言 153
5.4.3 向一个转换传递参数 156
5.4.4 用扩展对象扩展样式表 160
5.4.5 调整XSLT转换以获得更佳姓能 164
5.5 其他XPath函数 170
5.5.1 XPathNavigator抽象类 170
5.5.2 用XPath表达式测试节点 171
5.5.3 用XPath表达式选择节点 173
5.5.4 预编译XPath表达式 176
5.6 小结 178
第6章 验证XML 179
6.1 为XML文档定义语法 179
6.1.1 用DTD定义语法 181
6.1.2 用Microsoft XDR模式定义语法 182
6.1.3 用XSD模式定义语法 183
6.2 在Visual Studio.NET中创建XSD模式 184
6.2.1 用XML Designer创建XSD模式 184
6.2.2 在数据库中创建XSD模式 187
6.2.3 使用XSD Generator创建XSD模式 191
6.3.1 模式对象模型类的层次结构 195
6.3 使用模式对象模型 195
6.3.2 使用模式对象模型创建模式 197
6.4 在.NET Framework中验证XML 208
6.4.1 链接XML文档到DTD或模式 208
6.4.2 执行验证 210
6.4.3 为模式建立缓存 215
6.5 小结 217
第7章 串行化XML 218
7.1 串行化一个对象为XML数据 219
7.1.1 定义一个用于串行化的类 219
7.1.2 创建用于串行化的类 220
7.1.3 创建一个XML串行化器 220
7.1.4 串行化对象 221
7.1.5 检查XML文档中已经串行化的数据 222
7.2 并行化XML数据到对象 223
7.2.1 定义用于并行化的类 223
7.2.2 创建用于特殊类型的XML串行化器 223
7.2.3 并行化对象 223
7.2.4 使用并行化对象 224
7.3 处理意外的XML内容 225
7.3.1 处理意外属性 226
7.3.2 处理意外元素 228
7.3.3 处理一般意外节点 229
7.4.1 串行化和并行化属性 231
7.4 串行化和并行化复杂对象 231
7.4.2 串行化和并行化枚举值 233
7.4.3 串行化和并行化数组 234
7.4.4 串行化和并行化复合对象 236
7.4.5 带继承的串行化和并行化 241
7.5 改进串行化过程 243
7.5.1 为串行化定义简单格式化 244
7.5.2 高级改进问题 249
7.6 在串行化中使用XSD模式 258
7.6.1 从类产生XSD模式 259
7.6.2 从XSD模式产生类 261
7.7 串行化对象图 265
7.8 小结 272
第8章 MSXML 273
8.1 什么是MSXML 273
8.2 MSXML对象模型 274
8.2.1 DOM Document和Free Threaded DOM Document 275
8.2.2 XMLHTTP 280
8.2.3 XSL Template 284
8.2.4 SAX 290
8.3 在.NET代码中使用MSXML 290
8.4 MSXML以后是什么 293
8.5 小结 294
9.1.1 为什么要使用一个XML接口 295
第9章 扩展Xml Reader和Xml Writer 295
9.1 为什么要扩展xml Reader和Xml Writer 295
9.1.2 为什么要使用xml Reader/XML Writer作为接口 296
9.2 工程的范围 296
9.3 设置这个工程 301
9.4 创建xml Simple Reader和xml Simple Node 302
9.5 创建xmlWord2000Reader 307
9.6 创建xmlSimpleWriter 313
9.7 创建xmlWord000Writer 315
9.8 创建xmlVisioReader 321
9.9 创建XmlVisioWriter 325
9.10 小结 330
第10章 ADO.NET 331
10.1 XML在ADO.NET中的作用 331
10.2 ADO.NET与ADO的比较 332
10.2.1 两者的相似点 332
10.2.2 两者的不同点 332
10.2.3 非连接数据 334
10.3 托管数据提供者 334
10.3.1 SQL Server.NET数据提供者 334
10.3.2 OLEDB.NET数据提供者 335
10.3.3 0DBCNET数据提供者Betal 335
10.3.4 公共模型 335
10.4 数据集(DataSets) 338
10.4.2 数据集与IDataReader的比较 339
10.4.3 数据集集合 339
10.4.1 数据集与ADORecordset的比较 339
10.5 用数据集读和写XML 354
10.5.1 WriteXml方法 354
10.5.2 WriteXmlSchema方法 355
10.5.3 GetXml和GetxmlSchema方法 355
10.5.4 ReadXml方法 359
10.5.5 把模式信息加载到数据集中 366
10.5.6 XML命名空间 371
10.5.7 强类型化的数据集 372
10.6.1 与一个数据集建立同步 375
10.6 XmlDataDocument 375
10.6.2 元素和行转换 383
10.7 从SQL Server2000获取XML 386
10.7.1 使用FORXML 386
10.7.2 SQLXML托管类 388
10.8 小结 390
第11章 ASP.NET 391
11.1 概述 391
11.2 什么是ASP.NET 391
11.2.4 服务器端控件 392
11.2.3 事件驱动的处理过程和Web Form 392
11.2.2 编译执行 392
11.2.1 语言无关执行 392
11.2.5 定制Web控件 393
11.2.6 错误处理和跟踪 394
11.2.7 服务器端缓存 394
11.2.8 配置和部署 394
11.2.9 ASP.NET与ASP的兼容性 394
11.3 ASP.NET与XML 395
11.3.1 Web Forms和Web控件 396
11.3.2 活动的web Form--用户反馈的web Form 398
11.3.3 常用Web控件 409
11.3.4 使用DataGrid显示XML文档 411
11.3.5 使用XML控件显示XML文档 419
11.4 ASP.NET应用程序配置 423
11.4.1 web.config文件的存放位置 424
11.4.2 web.config文件的结构 425
11.4.3 web.config文件的各个部分 426
11.5 使用web.config设置 430
11.6 小结 435
第12章 案例研究:使用ASP.NET与ADO.NET 436
12.1 DVD租借系统设计 437
12.1.1 应用范围 437
12.1.2 技术准备 438
12.2 设置环境 439
12.2.1 商品数据库 440
12.2.2 在浏览器上显示内容 442
12.3 ASP.NET代码 443
12.3.1 管理端应用程序 443
12.3.2 客户端应用程序 460
12.4 小结 469
第13章 Web服务与SOAP 470
13.1 Web服务概述 471
13.1.1 市场和技术影响 471
13.1.2 新的分布式计算模型 472
13.2 创建一个简单的Web服务 473
13.1.3 .NET与Web服务 473
13.3 Web服务协议 480
13.3.1 HTTPGET和HTTPPOST 480
13.3.2 SOAP 481
13.4 使用Web服务代理类 489
13.4.1 创建StockQuote Web服务 489
13.4.2 创建一个Web服务客户应用程序 491
13.5 目录、发现和描述 502
13.5.1 web服务目录--UDM 503
13.5.2 Web服务描述语言 506
13.6.1 使用Session对象 510
13.6 web服务中的状态管理 510
13.7 ASP.NETWeb服务中的事务支持 511
13.6.2 使用Application对象 511
13.8 Web服务的设计考虑 513
13.8.1 消息设计--更多的消息与更多的通信量的比较 513
13.8.2 无状态的环境 514
13.8.3 同步和异步web服务的比较 514
13.8.4 松散辊合的功能组件 514
13.9 小结 514
第14章 案例研究:使用Web服务 516
14.1 应用背景 516
14.2.1 工程需求调查 518
14.2 工程描述 518
14.2.2 功能需求 519
14.2.3 技术需求 521
14.2.4 使用说明 521
14.3 Web服务设计 524
14.3.1 日历服务组件 524
14.3.2 日历服务数据库结构 525
14.3.3 功能规范 530
14.4 日历服务的实现 536
14.5 日历服务客户程序的实现 557
14.5.1 建立一个ASP.NET web客户程序 557
14.5.2 创建桌面客户程序 566
14.6 小结 572
第15章 远程化概述 573
15.1 远程化基础知识 574
15.2 对象激活 576
15.3 远程化通道 584
15.4 小结 586
第16章 C#代码文档 587
16.1 C#中XML文档的优点 587
16.2 XML文档的编译 588
16.2.1 采用命令行编译 589
16.2.3 编译器提供的元素 591
16.2.2 采用VisualStudio.NET编译 591
16.3 XML文档中的元素 593
16.3.1 <summary>和<remarks> 593
16.3.2 <c> 594
16.3.3 <para> 595
16.3.4 <param>和<returns> 595
16.3.5 <paramref> 596
16.3.6 <permission> 597
16.3.7 <See>和<seealso> 598
16.3.8 <list> 600
16.3.9 <example>和<code> 603
16.3.10 <value> 604
16.3.11 <excephon> 605
16.3.12 <include> 607
16.3.13 可扩展性 609
16.4 在中间层中的实际用途 609
16.5 转换 610
16.5.1 转换应用程序示例 611
16.5.2 其他考虑 624
16.6 为VS.NET中的文档提供支持 625
16.7 小结 626
附录A System.XmI命名空间 628
A.1 System.xml类概览 628
A.1.2 xmlConvert类 630
A.1.1 xmlException类 630
A.1.3 xmllmplementation类 632
A.1.4 xmlNamedNodeMap类 632
A.1.5 xmlAttributeCollection类 633
A.1.6 xmlNamespaceManager类 634
A.1.7 xmlNameTable类 635
A.1.8 xmINode类 635
A.1.9 xmlAttribute类 638
A.1.10 xmlDocument类 638
A.1.11 xmlDataDocument类 641
A.1.12 XmIDocumentFragment 类 641
A.l.14 XmILinkedNode 类 642
A.I.13 XmIEntity 类 642
A.1.I5 XmICharacterData 类 643
A.l.16 XmICDataSection 类 643
A.l.17 XmIComment 类 643
A.1.18 XmISignificantWhitespace 类 644
A.l.19 XmIText 类 644
A.1.20 XmIWhitespace 类 644
A.l.2l XmIDeclaration 类 645
A.1.22 XmIDocumentType 类 645
A.l.23 XmIElement 类 646
A.l.25 XmIProcessinglnstruction 类 647
A.I.24 XmIEntityReference 类 647
A.I.26 XmINotation 类 648
A.l.27 XmINodeList 类 648
A.1.2S XmlParserContext 类 649
A.l.29 XmIQualifiedName 类 649
A.l.30 XmIReader 类 650
A.l.3l XmINodeReader 类 652
A.1.32 XmITextReader 类 652
A.l.33 XmIValidatingReader 类 653
A.l.34 XmIResolver 类 654
A.l.35 XmIUrIResolver 类 654
A.l.36 XmIWriter 类 655
A.1.37 XmITextWriter 类 657
附录B System.Xml.Xsl 和 System.Xml.XPath 命名空间 659
B.I System.Xml.Xsl 命名空间 659
B.1.1 System.Xml.Xsl 类概览 659
B.l.2 XsltArgumentList 类 659
B.1.3 XsltContext 类 660
B.1.4 XsltException 类 661
B.l.5 XsltCompileException 类 662
B.l.6 XsITransform 类 662
B.2.3 XPathException类 664
B.2.2 XPathDoeument 类 664
B.2.l System.Xml.XPath 类概览 664
B.2 System.Xml.XPath命名空间 664
B.2.4 XPathExpression类 665
B.2.5 XPathNavigator类 666
B.2.6 XPathNodeIterator类 668
附录C .NET术语 669
附录D 资源 674
D.1 Web站点 674
D.2 书目 674
D.3 技术文章与报告 675
D.4 规范 675
D.5 其他Web站点 676