首页>参考读物>计算机科学与技术>软件与程序设计

Delphi for .NET开发人员指南
作者 : (美)Xavier Pacheco
译者 : 马朝晖 等
出版日期 : 2004-12-31
ISBN : 7-111-15512-2
定价 : 78.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 614
开本 : 16开
原书名 : Delphi for .NET Developer’s Guide
原出版社: Sams Publishing
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

本书不只讲解Delphi和.NET Framework的基本特点,它还深入讨论了如何使用Borland最好的开发工具编写.NET应用程序。在本书中,你会找到关于如何高效地利用.NET Framework的实用范例、技术和原则。当前的Delphi用户通过掌握这种新的令人兴奋的技术可以将自己的技能提高到新的层次。Delphi for .NET的初学者可以快速掌握使用Delphi进行.NET开发的各个方面。
  本书内容丰富,包括Delphi语言、高级.NET开发概念(比如内存管理)、COM-Interop、反射、GDI+、Windows和Web Forms组件开发等等。在这里,你还会找到关于ADO.NET和ASP.NET等核心.NET技术的大量信息,以及演示有价值技术的范例。

图书特色

图书前言

《Delphi for .NET开发人员指南》是一本关于开发.NET程序,特别是使用Delphi开发.NET程序的书。本书并不是以前的《Delphi开发人员指南》的更新版。除了第5章“Delphi语言”之外,其他内容都是全新的。对于本书,我还采用了与以往稍微不同的方式。在这里,你会找到较多的说明几个或单一概念的范例,而将概念组合使用的大型范例比较少。这使你不会陷入无关的代码,能够更容易地研究技术。
  另外,我有意尽可能避免使用IDE的设施。例如,在关于ADO.NET的章节里,你会看到我通过程序来设置属性。我这样做,你就可以看到使用的是哪些属性,而且这可以避免大量描述IDE使用过程的文字,避免把描述实际技术的文字弄乱。但是,因为使用IDE对于开发效率很重要,第3章“Delphi for .NET和新IDE概述”重点讲解了某些能够帮助你提高开发效率的IDE功能。从本质上说,我的目标是写一本专门针对.NET的使用Delphi的面向技术的书,而不是写关于Delphi for .NET的书。

谁应该阅读本书
  正如本书的标题所表明的,本书是为开发人员,特别是使用Delphi的.NET开发人员而写的。具体地说,本书针对以下三类读者:
  ·那些希望将技能提升到更高水平并且对.NET感兴趣的专业开发人员。
  ·那些过去使用其他语言,现在希望学习如何使用Delphi开发.NET程序的.NET开发人员。
  ·那些希望学习.NET和使用一种强大且直观的语言来开发.NET程序的初学者。

本书是如何组织的
  《Delphi for .NET开发人员指南》分为五个部分:
  ·第一部分“.NET Framework概述”提供了几个关于.NET总体情况和.NET Framework特点的概述性的章。
  ·第二部分“Delphi for .NET编程语言”讨论了Delphi for .NET、IDE和Delphi语言的特点。
  ·第三部分“.NET Framework类库开发”讨论了开发.NET Framework时的核心概念。例如,在这一部分中,你将学习线程化、反射、流、内存管理等等。
  ·第四部分“用ADO.NET进行数据库开发”研究使用Delphi和ADO.NET创建数据库应用程序的细节。
  ·第五部分“用ASP.NET进行Internet开发”研究使用ASP.NET创建Web应用程序的各种技术。

配套光盘上有什么
  在本书的配套光盘上你会找到所有源代码和项目文件,以及我们无法放进本书中的源代码范例。源代码目录是按章和范例命名的,比如:
  \Code\Chapter 01\Ex01
  \Code\Chapter 01\Ex02
  \Code\Chapter 02\Ex01
...
  在各章中的每个程序清单之后,有一个引用指出清单的源代码在光盘上的什么地方。
  在光盘上,你还会找到完整的《Delphi 6 Developer’s Guide》,采用每章一个.pdf文件的形式提供。你会在\D6DG文件夹下找到它。还包括《Delphi 6 Developer’s Guide》的源代码(在\D6DG\Code文件夹里)。在本质上,你买这一本书,就得到了两本书。
  最后,你还会找到许多第三方工具/组件的演示版,可以在开发Delphi for .NET应用程序时使用。

本书中使用的约定
  本书中使用以下的印刷约定:
  ·代码行、命令、语句、变量、程序输出和屏幕上出现的任何文本用一种计算机字体印刷,代码清单加上了行号以便引用。
  ·你输入的内容用一种粗体计算机字体印刷。
  ·语法说明中的占位符用一种斜体计算机字体印刷。在实际编写代码时,用占位符代表的实际文件名、参数或任何元素来替代它。
  ·当技术术语在文中首次出现时,用粗体突出显示它们,有时候使用斜体强调重点。
  ·过程和函数用过程名或函数名后的一对圆括号来表示。尽管这不是标准的Pascal语法,但是这有助于使它们有别于属性、变量和类型。
  在每一章中,你会遇到一些“注意”、“提示”和“警告”,这些特殊段落强调了重点并且帮助你避开陷阱。
  《Delphi for .NET开发人员指南》网站
  本书网站的地址是www.DelphiGuru.com,在这里你会找到本书的更新、补充和勘误信息。还会找到本书中各个代码清单和范例的主题索引。

作者简介

(美)Xavier Pacheco:暂无简介

译者简介

马朝晖 等:暂无简介

图书目录

第一部分 .NET Framework概述 23
第1章 .NET概述 23
1.1 使用.NET的动机 23
1.1.1 .NET展望 24
1.1.2 .NET Framework组件——通用语言运行环境和类库 25
1.1.3 .NET应用程序的类型 25
1.1.4 VCL for .NET 26
1.2 通过Web服务进行分布式开发 26
1.2.1 Web服务定义 27
1.2.2 Web服务客户 28
1.2.3 Web服务开发工具 28
第2章 .NET Framework概况 30
2.1从开发到执行 30
2.2通用语言运行环境(CRL) 30
2.2.1 托管模块 31
2.2.2 配件 31
2.2.3 托管代码和非托管代码 31
2.2.4 MSIL和JIT编译和执行 32
2.3通用类型系统(CTS) 33
2.3.1 值类型 33
2.3.2 引用类型 33
2.4通用语言规范(CLS) 34
2.5.NET Framework和基本类库(FCL) 34
2.5.1 名字空间 34
2.5.2 System名字空间 34
2.5.3 主要的子系统名字空间 34
第二部分 Delphi for .NET程序设计语言 38
第3章 Delphi for .NET和新IDE概述 38
3.1 Delphi for .NET——更大的画面 38
3.2集成开发环境(IDE)概述 38
3.2.1欢迎页面 39
3.2.2 设计器 39
3.2.3 窗体 40
3.2.4 工具面板/代码片段 41
3.2.5 对象观察器 41
3.2.6 代码编辑器 41
3.2.7 项目管理器 43
3.2.8 模型视图 43
3.2.9 数据浏览器 43
3.2.10对象信息库 44
3.2.11代码浏览器 44
3.2.12 To-Do列表 44
第4章 程序、单元和名字空间 45
4.1托管模块结构 45
4.1.1 程序结构 45
4.1.2 单元结构 46
4.1.3 uses子句的语法 48
4.1.4 循环单元引用 48
4.2名字空间 48
4.2.1 名字空间声明 49
4.2.2 使用名字空间 49
4.2.3 namespaces子句 50
4.2.4 解析一般名字空间 50
4.2.5 单元别名 50
第5章 Delphi语言 51
5.1 一切都通过.NET 51
5.2 注释 52
5.3 过程和函数 52
5.3.1调用中的圆括号 52
5.3.2重载 53
5.3.3默认值参数 53
5.4 变量 54
5.5常量 55
5.6 操作符 56
5.6.1 赋值操作符 56
5.6.2 比较操作符 56
5.6.3 逻辑操作符 57
5.6.4 算术操作符 57
5.6.5 位操作符 58
5.6.6 递增和递减过程 58
5.6.7 运算-赋值操作符 59
5.7 Delphi语言类型 59
5.7.1 无处不是对象 59
5.7.2 类型的对比 60
5.7.3 字符 60
5.7.4 变体类型 61
5.8 用户定义的类型 64
5.8.1 数组 64
5.8.2 动态数组 64
5.8.3记录 66
5.8.4 集 67
5.8.5不安全的代码 68
5.8.6 指针 69
5.8.7 类和对象 71
5.8.8 类型别名 72
5.9 强制类型转换和类型转换 73
5.10 字符串资源 73
5.11测试条件 74
5.11.1 if语句 74
5.11.2 case语句 75
5.12 循环 75
5.12.1 for循环 75
5.12.2 while循环 76
5.12.3 repeat..until 77
5.12.4 Break语句 77
5.12.5 Continue语句 77
5.13 再论过程与函数 78
5.13.1 传递参数 79
5.14 有效范围 80
5.15 单元和名字空间 81
5.15.1 uses子句 82
5.15.2 循环单元引用 83
5.16 包和配件 83
5.17 面向对象的程序设计 83
5.18 使用Delphi对象 84
5.18.1 声明和实例化 84
5.18.2 析构 84
5.18.3对象的祖先 85
5.18.4 字段 85
5.18.5 方法 86
5.18.6 方法类型 86
5.18.7 类引用 88
5.18.8 属性 89
5.18.9 事件 89
5.18.10 可见性指示符 92
5.18.11“友元”类 93
5.18.12 类辅助器 93
5.18.13 嵌套的类型 94
5.18.14 操作符重载 95
5.18.15 特性 95
5.18.16接口 96
5.19结构化异常处理 98
5.19.1 异常类 100
5.19.2 执行流 101
5.19.3重新引发异常 103
第三部分 .NET Framework类库开发 104
第6章 配件——库和包 104
6.1 核心配件 105
6.2查看配件内容和依赖性 105
6.3 GAC 105
6.4 建立配件 106
6.4.1 为什么要使用配件? 106
6.4.2 使用包建立配件 106
6.4.3使用库建立配件 111
6.5在Delphi中使用配件 114
6.6在C#中使用Delphi配件 114
6.7将包安装进Delphi IDE 115
6.8强命名的配件 115
6.9动态装载配件 116
第7章 GDI+编程——.NET中的绘图 117
7.1 基本概念 117
7.1.1 GDI+名字空间 117
7.1.2 Graphics类 117
7.1.3 Windows坐标系统 118
7.2绘制直线 118
7.2.1 Pen和Brush类 119
7.2.2 绘制直线 119
7.2.3直线端点样式 120
7.2.4 连接直线——GraphicsPath类 122
7.3 绘制曲线 122
7.3.1基数样条 123
7.3.2 贝济埃样条 123
7.4绘制形状 125
7.4.1 绘制矩形 125
7.4.2 绘制椭圆 125
7.4.3 绘制多边形 126
7.4.4绘制饼图 126
7.4.5 再论LinearGradientBrush 127
7.5 GraphicsPath和Region 127
7.5.1 用GraphicsPath类进行绘制 127
7.5.2 Region类 128
7.5.3修剪Region 129
7.6 使用图像 130
7.6.1 图像类 130
7.6.2 装载和创建位图 131
7.6.3 修改图像的分辨率 131
7.6.4 绘制图像 132
7.6.5插值 132
7.6.6产生镜像效果 133
7.6.7使用变换方法 134
7.6.8创建缩略图 135
7.7 再论坐标系统 136
7.8 动画范例 137
第8章 Mono——一个跨平台.NET项目 143
8.1 Mono的特点 143
8.2 Mono的历史 144
8.3 为什么要学习Mono? 144
8.4 Mono的发展计划 145
8.4.1 Mono 1.0目标 145
8.4.2 Mono 1.2目标 145
8.4.3 Mono 1.4目标 146
8.5 安装/设置 146
8.5.1 使用Red Carpet进行Mono安装 146
8.6创建你的第一个Mono程序 147
8.7在Mono下运行Delphi产生的配件(在Linux上) 148
8.8跨平台ASP.NET 151
8.8.1将ASP.NET部署到Mono 152
8.8.2 XSP配置 152
8.8.3 XSP运行参数 152
8.8.4 对范例的一些警告和一个次要的扩展 153
8.9 ADO.NET与Mono 154
8.10 Mono和Apache 156
8.11 Mono和System.Windows.Forms 157
第9章 内存管理和垃圾回收 158
9.1 垃圾回收如何起作用 158
9.1.1 代式垃圾回收 159
9.1.2调用垃圾回收器 159
9.2 构造器 160
9.3 终结 160
9.4 dispose模式——IDisposable 161
9.4.1 IDisposable范例 161
9.4.2自动实现IDisposable 162
9.5与终结有关的性能问题 163
第10章 集合 164
10.1 System.Collections接口 164
10.1.1 IEnumerable接口 165
10.1.2 ICollection接口 165
10.1.3 IList接口 165
10.1.4 IDictionary接口 165
10.1.5 IEnumerator接口 166
10.2 System.Collections类 166
10.2.1 Stack集合 166
10.2.2 Queue类 168
10.2.3 ArrayList类 171
10.2.4 HashTable类 174
10.3创建强类型的集合 176
10.3.1 从CollectionBase进行派生 176
10.3.2 使用强类型集合 179
10.4 创建强类型词典 180
10.4.1 从DictionaryBase进行派生 180
10.4.2 使用强类型词典 183
第11章 使用String和StringBuilder类 185
11.1 System.String类型 185
11.1.1 .NET中的字符串不可变性 186
11.1.2 字符串操作 187
11.2 StringBuilder类 190
11.2.1 StringBuilder方法 190
11.2.2 StringBuilder的使用方法 191
11.3 字符串格式化 191
11.4 格式指示符 192
11.4.1 数值格式指示符 192
11.4.2日期和时间格式指示符 195
11.4.3 枚举格式指示符 198
第12章 文件和流操作 200
12.1 System.IO名字空间类 200
12.2操作目录系统 201
12.2.1创建和删除目录 201
12.2.2 移动和拷贝目录 202
12.2.3 查看目录信息 204
12.3 操作文件 204
12.3.1 创建和删除文件 205
12.3.2 移动和拷贝文件 205
12.3.3 查看文件信息 205
12.4 流 206
12.4.1 操作文本文件流 206
12.4.2 操作二进制流 208
12.5 异步流访问 210
12.6 监视目录活动 212
12.7 串行化 214
12.7.1 串行化如何工作 215
12.7.2 格式化器 215
12.7.3 串行化/反串行化范例 216
第13章 开发定制的WinForms控件 219
13.1组件构造基础知识 219
13.1.1 什么时候需要编写组件 219
13.1.2 组件的编写步骤 220
13.1.3 决定祖先类 220
13.1.4 创建组件单元 221
13.1.5 创建属性 223
13.1.6 创建事件 231
13.1.7 创建方法 236
13.1.8 构造器和析构器 236
13.1.9 设计时行为 237
13.1.10 测试组件 238
13.1.11 提供组件图标 238
13.2 组件范例 238
13.2.1 ExplorerViewer:UserControl范例 238
13.2.2 SimpleStatusBars:使用扩展器提供器 247
13.3用户绘制:PlayingCard控件 250
第14章 Delphi for .NET中的线程化 258
14.1 进程 258
14.2 线程化 259
14.3线程化.NET风格 259
14.4 AppDomain 260
14.5 System.Threading名字空间 260
14.5.1 System.Threading.Thread类 260
14.5.2 System.Threading.ThreadPriority 265
14.5.3 System.Threading.ThreadState 265
14.5.4 System.Threading.ApartmentState枚举 266
14.5.5 System.Threading.ThreadPool类 266
14.5.6 System.Threading.Timer类 268
14.5.7 代理 269
14.6 编写线程安全代码的.NET风格 270
14.6.1 锁机制 271
14.6.2 事件 274
14.6.3 线程局部存储 275
14.6.4 Win32进程间通信 276
14.6.5 线程安全的.NET Framework类和方法 276
14.7 用户界面问题 276
14.7.1 System.Windows.Forms.Control.Invoke()方法 277
14.7.2 System.Windows.Forms.Control.InvokeRequired属性 277
14.7.3 System.Windows.Forms.Control.BeginInvoke()方法 278
14.7.4 System.Windows.Forms.Control.EndInvoke()方法 278
14.7.5 System.Windows.Forms.Control.CreateGraphics()方法279
14.8 线程化异常 281
14.8.1 System.Threading.ThreadAbortException 281
14.8.2 System.Threading.ThreadInterruptedException 284
14.8.3 System.Threading.ThreadStateException 284
14.8.4 System.Threading.SynchronizationLockException 284
14.9 垃圾回收 284
第15章 反射API 285
15.1 对配件进行反射 285
15.2 对模块进行反射 287
15.3 对类型进行反射 289
15.4对类型的成员的运行时调用(晚绑定) 290
15.4.1 为了效率而调用成员的类型 292
15.4.2成员调用的另一个范例 293
15.5通过反射产生MSIL 296
15.5.1 用于产生MSIL的工具/类 296
15.5.2 产生过程 297
15.5.3 System.Reflection.Emit范例 297
第16章 互操作性——COM Interop和平台调用服务 300
16.1为什么需要互操作性 300
16.2 常见的互操作性问题 301
16.3在.NET代码中使用COM对象 301
16.3.1 晚绑定Automation 301
16.3.2 值、引用和可选参数 303
16.3.3 早绑定COM 304
16.3.4 Interop配件 305
16.3.5 创建Interop配件 306
16.3.6 Interop配件中有什么? 307
16.3.7 使用COM事件 307
16.3.8 COM生存周期控制 309
16.3.9 错误处理 309
16.3.10 主Interop配件 309
16.3.11 定制Interop配件和PIA 310
16.4 在COM代码中使用.NET对象 311
16.4.1 为Automation注册.NET配件 311
16.4.2 晚绑定Automation 312
16.4.3 Interop类型库 313
16.4.4 Interop类型库中有什么? 313
16.4.5 实现接口 314
16.4.6 参数类型和遍组 315
16.4.7 错误处理 317
16.5 在.NET代码中使用Win32 DLL导出 317
16.5.1 传统Delphi语法 318
16.5.2 定制特性语法 319
16.5.3 参数类型和遍组 320
16.5.4 错误处理 322
16.5.5 Win32错误码 323
16.5.6 HResult错误码 324
16.5.7 性能问题 325
16.6 在Win32代码中使用.NET例程 328
16.6.1 传统的Delphi语法 329
16.6.2 参数类型和遍组 330
第四部分 使用ADO.NET进行数据库开发 334
第17章 ADO.NET概况 334
17.1 设计原则 334
17.1.1 不连接的数据体系结构 334
17.1.2 与XML集成 335
17.1.3 通用数据表示 335
17.1.4 在.NET框架上进行构建 335
17.1.5 利用现有技术手段 335
17.2 ADO.NET对象 335
17.2.1 连接的类 336
17.2.2 不连接的类 337
17.3 .NET数据提供器 337
第18章 使用Connection对象 339
18.1 连接功能 339
18.2 设置ConnectionString属性 339
18.2..1 指定SqlConnection.ConnectionString 340
18.2.2 指定OleDbConnection.ConnectionString 340
18.2.3 指定OdbcConnection.ConnectionString 340
18.2.4 指定OracleConnection.ConnectionString 341
18.3 打开和关闭连接 341
18.4 Connection事件 342
18.5 连接池 343
第19章 使用Command和DataReader对象 344
19.1 执行命令 344
19.1.1 IDbCommand接口 344
19.2 非查询命令 345
19.3 获得单一值 346
19.4 执行数据定义语言(Data Definition Language,DDL)命令 347
19.5 使用IDbParameter指定参数 349
19.6 执行存储过程 350
19.7 派生参数 352
19.8 使用DataReader查询Resultset 353
19.8.1 IDataReader接口 353
19.9 查询Resultset 354
19.10 使用DataReader查询多个Resultset 354
19.11 使用DataReader获得BLOB数据 355
19.12 使用DataReader获得计划信息 357
第20章 DataAdapter和DataSet 360
20.1 DataAdapter 360
20.1.1 DataAdapter构成 360
20.1.2 创建DataAdapter 361
20.1.3 获得查询结果 361
20.1.4 映射查询结果 363
20.2 使用DataSet 366
20.2.1 DataSet构成 366
20.2.2 DataSet操作 367
20.3 使用DataTable 368
20.3.1 定义列 368
20.3.2 定义主键 369
20.3.3 使用约束 369
20.3.4 使用DataRelation 372
20.3.5 操作数据——使用DataRow 374
20.3.6 搜索、排序和过滤数据 375
第21章 使用WinForm——DataView和数据绑定 378
21.1 使用DataView和DataViewManager显示数据 378
21.1.1 DataView类 378
21.1.2 DataViewManager类 379
21.1.3 使用DataView和DataViewManager的项目范例 379
21.2 数据绑定 388
21.2.1 数据绑定接口 388
21.2.2 简单绑定和复杂绑定 388
21.2.3 WinForm数据绑定类 388
21.2.4 构建数据绑定的Windows窗体 389
第22章 将数据存入数据源 399
22.1 使用SQLCommandBuilder更新数据源 399
22.2 使用定制的更新逻辑更新数据源 401
22.2.1 使用Command类 401
22.2.2 使用SqlDataAdapter类 407
22.2.3 使用存储过程进行更新 412
22.2.4 处理并发 418
22.2.5 在更新数据后刷新数据 420
第23章 使用事务和强类型的DataSet 423
23.1 事务处理 423
23.1.1 简单的事务处理范例 423
23.1.2 使用DataAdapter时的事务 426
23.1.3 隔离级别 427
23.1.4 保存点 428
23.1.5 嵌套事务 428
23.2 强类型的DataSet 429
23.2.1 优点/缺点 429
23.2.2 创建强类型的DataSet 429
23.2.3 查看强类型DataSet的.pas文件 430
23.2.4 使用强类型的DataSet 437
第24章 Borland数据提供器 439
24.1 体系结构概述 439
24.2 Borland数据提供器类 439
24.2.1 BdpConnection 440
24.2.2 BdpCommand 441
24.2.3 BdpDataReader 442
24.2.4 BdpDataAdapter 443
24.2.5 BdpParameter/BpdParameterCollection 443
24.2.6 BdpTransaction 444
24.3 IDE内的设计器 445
24.3.1 连接编辑器 445
24.3.2 命令文本编辑器 446
24.3.3 参数集合编辑器 446
24.3.4 Data Adapter Configuration对话框 446
第五部分 用ASP.NET进行Internet开发 447
第25章 ASP.NET基础 447
25.1 Web技术-Web技术如何工作 447
25.1.1 HTTP协议概述 447
25.1.2 HTTP请求包 448
25.1.3 HTTP响应包 448
25.2 ASP.NET-ASP.NET如何工作 449
25.2.1 简单的Web应用程序 450
25.2.2 ASP.NET页面结构 450
25.2.3事件驱动的通信 452
25.2.4 VIEWSTATE和状态维护 453
25.2.5 codebehind 453
25.3 ASP.NET类 454
25.3.1 HTTPResponse类 454
25.3.2 HTTPRequest类 456
25.3.3 HTTPCookie类 458
25.3.4 处理回送事件 458
第26章 构造ASP.NET Web页面 460
26.1 使用ASP.NET控件构造Web页面 460
26.1.1 下载请求窗体范例 461
26.1.2 页面布局 461
26.1.3 创建窗体 461
26.1.4 处理装载事件 462
26.1.5 从ASP.NET应用程序内保存文件 462
26.1.6 Web窗体的事件处理顺序 464
26.2 预填充列表框控件 464
26.3 执行Web窗体检验 465
26.3.1 客户端和服务器端的检验 465
26.3.2 BaseValidator类 466
26.3.3 RequiredFieldValidator 466
26.3.4 CompareValidator 467
26.3.5 RegularExpressionValidator 468
26.3.6 RangeValidator 469
26.3.7 CustomValidator 469
26.3.8 ValidationSummary 470
26.4 Web窗体格式化 470
26.4.1 WebControl的强类型属性 470
26.4.2 层叠式样式表 471
26.4.3 使用Style类 472
26.5 在Web窗体之间导航 473
26.5.1 通过POST传递数据 473
26.5.2 使用Response.Redirect()和QueryString 473
26.5.3 使用Server.Transfer()方法 474
26.5.4 使用会话变量 475
26.6 提示和技巧 476
26.6.1 使用面板控件进行多窗体模拟 476
26.6.2 从客户上传文件 477
26.6.3 从窗体发送电子邮件响应 478
26.6.4 显示图像 480
26.6.5 动态地添加控件——基于缩略图的图像浏览器 480
第27章 构造数据库驱动的ASP.NET应用程序 483
27.1 数据绑定 483
27.1.1 简单数据绑定 483
27.1.2 复杂数据绑定 487
27.2 数据绑定列表控件 487
27.2.1 CheckBoxList控件 487
27.2.2 DropDownList控件 489
27.2.3 ListBox控件 490
27.2.4 RadioButtonList控件 491
27.3 数据绑定重复控件 492
27.3.1 Repeater控件 493
27.3.2 DataList控件 495
27.4 使用数据网格 499
27.4.1数据网格分页 500
27.4.2 编辑数据网格 502
27.4.3 把数据添加到数据网格 507
27.4.4 数据网格排序 507
27.5 数据库驱动的下载请求窗体和管理程序 508
第28章 建立Web服务 513
28.1 Web服务的相关术语 513
28.2 构造Web服务 513
28.2.1 [WebService]特性 516
28.2.2 从Web服务返回数据 516
28.2.3 [WebMethod]特性讲解 517
28.3 使用Web服务 518
28.3.1 发现过程 518
28.3.2 构建代理类 519
28.3.3 使用代理类 519
28.3.4 使用来自Web服务的数据集 523
28.3.5 调用异步的Web服务方法 525
28.4 Web服务的安全 525
第29章 .NET Remoting和Delphi 529
29.1 现在可用的Remoting技术 529
29.1.1 套接字 529
29.1.2 RPC 529
29.1.3 Java RMI 530
29.1.4 CORBA 530
29.1.5 XML-RPC 530
29.1.6 DCOM 530
29.1.7 COM-Interop 530
29.1.8 SOAP 530
29.1.9 .NET Remoting 531
29.2 分布式体系结构 531
29.2.1 客户/服务器 531
29.2.2 对等 532
29.2.3 多层 532
29.3多层应用程序开发的优势 533
29.3.1 可伸缩性和容错性 533
29.3.2 开发和部署 533
29.3.3 安全 534
29.4 .NET Remoting基础 534
29.4.1 体系结构概述 534
29.4.2 应用程序域 534
29.4.3 System.Runtime.Remoting名字空间 534
29.4.4 可远程化的对象 536
29.4.5 对象激活 537
29.4.6 租用和发起者 538
29.4.7 代理 538
29.4.8 通道 538
29.5 第一个.NET Remoting应用程序 538
29.5.1 建立项目 539
29.5.2 添加引用 539
29.5.3 BankPackage.dll:客户和服务器之间的合约 540
29.5.4 实现服务器 541
29.5.5 实现客户 544
第30章 使用.NET Remoting 547
30.1 模板项目 547
30.2 跟踪消息 547
30.3 分析SOAP包 548
30.4 客户激活 550
30.4.1 工厂模式 550
30.4.2 运行时的范例 556
30.4.3 CAO的问题 556
30.5 生存周期管理 556
30.6 租用更新失败 558
30.7 配置文件 559
30.7.1 服务器配置 560
30.7.2 客户配置 561
30.8 从HTTP切换到TCP通信 566
30.9 从SOAP切换到二进制Remoting 567
30.10 SOAP和二进制编码之间的区别 568
第31章 保护ASP.NET应用程序的安全 570
31.1 ASP.NET安全方法 570
31.2 验证 570
31.2.1 配置ASP.NET的验证模型 570
31.2.2 Windows验证 571
31.2.3 基于窗体的验证 572
31.2.4 护照验证 577
31.3 授权 578
31.3.1 文件授权 578
31.3.2 URL授权——<authentication>部分 578
31.3.3 基于角色的授权 579
31.3.4 冒名 580
31.4 注销 581
第32章 ASP.NET的部署和配置 582
32.1 部署ASP.NET应用程序 582
32.1.1 简单部署的考虑因素 582
32.1.2 XCOPY部署 583
32.2 配置设置 584
32.2.1 machine.config文件 584
32.2.2 web.config文件 585
32.3 配置技巧 589
32.3.1 处理错误重定向 589
32.3.2 工作者进程重启 590
32.3.3 为性能进行输出缓冲 591
32.3.4 监视ASP.NET进程 592
32.3.5 跟踪应用程序 592
32.4 添加/获得定制的配置设置 594
32.4.1 添加和读取<appSettings> 594
32.4.2 添加和读取定制的配置部分 595
第33章 在ASP.NET应用程序中进行缓存和管理状态 596
33.1 缓存ASP.NET应用程序 596
33.1.1 页面缓存 596
33.1.2页面片断缓存 599
33.1.3 数据缓存 599
33.1.4 缓存文件依赖性 602
33.1.5扩展文件依赖性以便在SQL Server中使用 603
33.1.6 缓存回调方法 604
33.2 ASP.NET应用程序中的状态管理 605
33.2.1使用cookie管理状态 606
33.2.2 使用ViewState 607
33.2.3 会话状态管理 609
33.2.4 在会话状态服务器中存储会话数据 610
33.2.5 在SQL Server中存储会话 611
33.2.6 会话事件 611
33.2.7 应用程序状态管理 612
33.2.8 使用Cache和应用程序状态的比较 613
第34章 开发定制的ASP.NET服务器控件 614
34.1 用户控件 614
34.1.1 一个非常简单的用户控件 615
34.1.2 查看简单的控件 615
34.1.3 用户登录用户控件 617
34.2 Web控件 618
34.2.1构建一个非常简单的Web控件 618
34.2.2 持久化值 621
34.2.3 添加一些定制的显示 622
34.2.4 确定HTML块类型 624
34.2.5 处理回送数据 625
34.2.6 TPostBackInputWebControl 625
34.2.7 合成控件 629
34.2.8实现合成控件——TNewUserInfoControl 629

教学资源推荐
作者: [美] 卢博米尔·佩尔科维奇(Ljubomir Perkovic) 著
作者: 施霞萍 王瑾德 史建成 马可幸 张欢欢 编著
作者: 刘奇志 尹存燕 曹迎春 编著
参考读物推荐
作者: [英]邓肯·麦格雷戈(Duncan McGregor),[英]纳特·普莱斯(Nat Pryce) 著
作者: [美]凯·S.霍斯特曼(Cay S. Horstmann) 著
作者: 孟灿 编著