《Delphi for.NET开发人员指南》PDF下载

  • 购买积分:18 如何计算积分?
  • 作  者:(美)Xavier Pacheco等著;马朝晖,顾良翠等译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2005
  • ISBN:7111155122
  • 页数:614 页
图书介绍:本书不只讲解Delphi和.NET Framework的基本特点,它还深入讨论了如何使用Borland最好的开发工具编写.NET应用程序。在本书中,你会找到关于如何高效地利用.NET Framework的实用范例、技术和原则。

1.1使用.NET的动机 2

1.1.1 .NET展望 2

第一部分 .NET Framework概述 2

第1章 .NET概述 2

1.1.3 .NET应用程序的类型 4

1.1.2 .NET Framework组件——通用语言运行环境和类库 4

1.2通过Web服务进行分布式开发 5

1.1.4 VCL for.NET 5

1.2.1 Web服务定义 6

1.2.3 Web服务开发工具 7

1.2.2 Web服务客户 7

2.1 从开发到执行 9

第2章 .NET Framework概况 9

2.2.3托管代码和非托管代码 10

2.2.2配件 10

2.2通用语言运行环境(CLR) 10

2.2.1 托管模块 10

2.2.4 MSIL和JIT编译和执行 11

2.3.1 值类型 12

2.3通用类型系统(CTS) 12

2.5.3 主要的子系统名字空间 13

2.5.2 System名字空间 13

2.3.2引用类型 13

2.4通用语言规范(CLS) 13

2.5 .NET Framework和基本类库(FCL) 13

2.5.1名字空间 13

3.2集成开发环境(IDE)概述 18

3.1 Delphi for.NET——更大的画面 18

第二部分 Delphi for.NET编程语言 18

第3章 Delphi for.NET和新IDE概述 18

3.2.2设计器 19

3.2.1欢迎页面 19

3.2.3窗体 20

3.2.4工具面板/代码片段 21

3.2.6代码编辑器 22

3.2.5对象观察器 22

3.2.8模型视图 24

3.2.7项目管理器 24

3.2.12 To-Do列表 25

3.2.11代码浏览器 25

3.2.9数据浏览器 25

3.2.10对象信息库 25

4.1.1程序结构 27

4.1托管模块结构 27

第4章 程序、单元和名字空间 27

4.1.2单元结构 28

4.1.3 uses子句的语法 29

4.2.1名字空间声明 30

4.2名字空间 30

4.1.4循环单元引用 30

4.2.2使用名字空间 31

4.2.5单元别名 32

4.2.4解析一般名字空间 32

4.2.3 namespaces子句 32

5.1一切都通过.NET 33

第5章 Delphi语言 33

5.3.1调用中的圆括号 34

5.3过程和函数 34

5.2注释 34

5.3.3默认值参数 35

5.3.2重载 35

5.4变量 36

5.5常量 37

5.6.2比较操作符 38

5.6.1赋值操作符 38

5.6操作符 38

5.6.4算术操作符 39

5.6.3 逻辑操作符 39

5.6.6 递增和递减过程 40

5.6.5位操作符 40

5.7.3字符 41

5.7.2类型的对比 41

5.6.7 运算-赋值操作符 41

5.7 Delphi语言类型 41

5.7.1 无处不是对象 41

5.7.4变体类型 42

5.8.1数组 45

5.8 用户定义的类型 45

5.8.2动态数组 46

5.8.3记录 47

5.8.4集 48

5.8.5不安全的代码 49

5.8.6指针 50

5.8.7类和对象 52

5.8.8类型别名 53

5.10字符串资源 54

5.9强制类型转换和类型转换 54

5.11.1 if语句 55

5.11测试条件 55

5.12.1 for循环 56

5.12循环 56

5.11.2 case语句 56

5.12.3 repeat...until 57

5.12.2 while循环 57

5.13再论过程与函数 58

5.12.5 Continue语句 58

5.12.4 Break语句 58

5.15单元和名字空间 61

5.14有效范围 61

5.15.1 uses子句 62

5.17面向对象的程序设计 63

5.16包和配件 63

5.15.2循环单元引用 63

5.18.1声明和实例化 64

5.18使用Delphi对象 64

5.18.4字段 65

5.18.3 对象的祖先 65

5.18.2析构 65

5.18.6方法类型 66

5.18.5方法 66

5.18.7类引用 68

5.18.8属性 69

5.18.9事件 70

5.18.10 可见性指示符 72

5.18.12类辅助器 73

5.18.11 “友元”类 73

5.18.14操作符重载 74

5.18.13嵌套的类型 74

5.18.16接口 75

5.18.15特性 75

5.19结构化异常处理 78

5.19.1异常类 80

5.19.2执行流 81

5.19.3重新引发异常 82

6.2查看配件内容和依赖性 84

6.1核心配件 84

第三部分 .NET Framework类库开发 84

第6章 配件——库和包 84

6.3 GAC 85

6.4.2使用包建立配件 86

6.4.1为什么要使用配件 86

6.4建立配件 86

6.4.3使用库建立配件 90

6.6在C#中使用Delphi配件 93

6.5在Delphi中使用配件 93

6.9动态装载配件 94

6.8强命名的配件 94

6.7将包安装进Delphi IDE 94

7.1.3 Windows坐标系统 96

7.1.2 Graphics类 96

第7章 GDI+编程——.NET中的绘图 96

7.1基本概念 96

7.1.1 GDI+名字空间 96

7.2.2绘制直线 98

7.2.1 Pen和Brush类 98

7.2绘制直线 98

7.2.3直线端点样式 100

7.2.4 连接直线——GraphicsPath类 101

7.3.2贝济埃样条 102

7.3.1基数样条 102

7.3绘制曲线 102

7.4.2绘制椭圆 105

7.4.1绘制矩形 105

7.4绘制形状 105

7.4.4绘制饼图 106

7.4.3绘制多边形 106

7.5.1用GraphicsPath类进行绘制 107

7.5 GraphicsPath和Region 107

7.4.5再论LinearGradientBrush 107

7.5.2 Region类 108

7.5.3修剪Region 110

7.6.1 图像类 111

7.6使用图像 111

7.6.3修改图像的分辨率 112

7.6.2装载和创建位图 112

7.6.5插值 113

7.6.4绘制图像 113

7.6.7使用变换方法 115

7.6.6产生镜像效果 115

7.7再论坐标系统 118

7.6.8创建缩略图 118

7.8动画范例 119

8.1 Mono的特点 125

第8章 Mono——一个跨平台.NET项目 125

8.3为什么要学习Mono 126

8.2 Mono的历史 126

8.4.2 Mono 1.2目标 127

8.4.1 Mono 1.0目标 127

8.4 Mono的发展计划 127

8.5安装/设置 128

8.4.3 Mono 1.4目标 128

8.6创建你的第一个Mono程序 130

8.7在Mono下运行Delphi产生的配件(在Linux上) 131

8.8跨平台ASP.NET 134

8.8.3 XSP运行参数 135

8.8.2 XSP配置 135

8.8.1将ASP.NET部署到Mono 135

8.9 ADO.NET与Mono 136

8.8.4对范例的一些警告和一个次要的扩展 136

8.10 Mono和Apache 139

8.11 Mono和System.Windows.Forms 140

9.1.1代式垃圾回收 141

9.1垃圾回收如何起作用 141

第9章 内存管理和垃圾回收 141

9.1.2调用垃圾回收器 142

9.2构造器 143

9.3终结 144

9.4.1 IDisposable范例 145

9.4 dispose模式——IDisposable 145

9.4.2自动实现IDisposable 146

9.5与终结有关的性能问题 147

10.1 System.Collections接口 148

第10章 集合 148

10.2 System.Collections类 149

10.1.5 IEnumerator接口 149

10.1.1 IEnumerable接口 149

10.1.2 ICollection接口 149

10.1.3 IList接口 149

10.1.4 IDictionary接口 149

10.2.1 Stack集合 150

10.2.2 Queue类 152

10.2.3 ArrayList类 154

10.2.4 HashTable类 156

10.3.1从CollectionBase进行派生 159

10.3创建强类型的集合 159

10.4.1从DictionaryBase进行派生 162

10.4创建强类型词典 162

10.3.2使用强类型集合 162

10.4.2使用强类型词典 165

11.1 System.String类型 166

第11章 使用String和StringBuilder类 166

11.1.1 .NET中的字符串不可变性 167

11.1.2字符串操作 168

11.2.1 StringBuilder方法 171

11.2 StringBuilder类 171

11.3字符串格式化 172

11.2.2 StringBuilder的使用方法 172

11.4.1数值格式指示符 173

11.4格式指示符 173

11.4.2 日期和时间格式指示符 175

11.4.3枚举格式指示符 178

12.1 System.IO名字空间类 179

第12章 文件和流操作 179

12.2.1创建和删除目录 180

12.2操作目录系统 180

12.2.2移动和拷贝目录 181

12.2.3查看目录信息 182

12.3.3查看文件信息 183

12.3.2移动和拷贝文件 183

12.3操作文件 183

12.3.1创建和删除文件 183

12.4.1操作文本文件流 184

12.4流 184

12.4.2操作二进制流 186

12.5异步流访问 188

12.6监视目录活动 190

12.7.1 串行化如何工作 192

12.7串行化 192

12.7.3串行化/反串行化范例 193

12.7.2格式化器 193

13.1.1什么时候需要编写组件 196

13.1组件构造基础知识 196

第13章 开发定制的WinForms控件 196

13.1.3决定祖先类 197

13.1.2组件的编写步骤 197

13.1.4创建组件单元 198

13.1.5创建属性 200

13.1.6创建事件 208

13.1.8构造器和析构器 213

13.1.7创建方法 213

13.1.11提供组件图标 214

13.1.10测试组件 214

13.1.9设计时行为 214

13.2.1 ExplorerViewer:UserControl范例 215

13.2组件范例 215

13.2.2 SimpleStatusBars:使用扩展器提供器 223

13.3用户绘制:PlayingCard控件 226

14.1进程 233

第14章 Delphi for.NET中的线程化 233

14.3线程化.NET风格 234

14.2线程化 234

14.4 AppDomain 235

14.5.1 System.Threading.Thread类 236

14.5 System.Threading名字空间 236

14.5.3 System.Threading.ThreadState 240

14.5.2 System.Threading.ThreadPriority 240

14.5.5 System.Threading.ThreadPool类 241

14.5.4 System.Threading.ApartmentState枚举 241

14.5.7代理 243

14.5.6 System.Threading.Timer类 243

14.6.1锁机制 245

14.6编写线程安全代码的.NET风格 245

14.6.2事件 249

14.6.4 Win32进程间通信 250

14.6.3线程局部存储 250

14.7用户界面问题 251

14.6.5线程安全的.NET Framework类和方法 251

14.7.2 System.Windows.Forms.Control.InvokeRequired属性 252

14.7.1 System.Windows.Forms.Control.Invoke()方法 252

14.7.4 System.Windows.Forms.Control.EndInvoke()方法 253

14.7.3 System.Windows.Forms.Control.BeginInvoke()方法 253

14.7.5 System.Windows.Forms.Control.CreateGraphics()方法 254

14.8线程化异常 256

14.8.1 System.Threading.ThreadAbort-Exception 256

14.9垃圾回收和线程化 258

tionLockException 258

14.8.2 System.Threading.ThreadInter-ruptedException 258

14.8.3 System.Threading.ThreadState-Exception 258

14.8.4 System.Threading.Synchroniza- 258

15.1 对配件进行反射 259

第15章 反射API 259

15.2对模块进行反射 261

15.3对类型进行反射 263

15.4对类型的成员的运行时调用(晚绑定) 264

15.4.2成员调用的另一个范例 267

15.4.1 为了效率而调用成员的类型 267

15.5通过反射产生MSIL 269

15.5.3 System.Reflection.Emit范例 270

15.5.2产生过程 270

15.5.1用于产生MSIL的工具/类 270

16.1 为什么需要互操作性 273

第16章 互操作性——COM Interop和平台调用服务 273

16.3.1晚绑定Automation 274

16.3在.NET代码中使用COM对象 274

16.2常见的互操作性问题 274

16.3.2值、引用和可选参数 276

16.3.3早绑定COM 278

16.3.4 Interop配件 279

16.3.5创建Interop配件 280

16.3.7使用COM事件 281

16.3.6 Interop配件中有什么 281

16.3.10主Interop配件 283

16.3.9错误处理 283

16.3.8 COM生存周期控制 283

16.3.11定制Interop配件和PIA 284

16.4在COM代码中使用.NET对象 285

16.4.1为Automation注册.NET配件 286

16.4.3 Interop类型库 287

16.4.2晚绑定Automation 287

16.4.5实现接口 288

16.4.4 Interop类型库中有什么 288

16.4.6参数类型和遍组 290

16.5在.NET代码中使用Win32 DLL导出 292

16.4.7错误处理 292

16.5.2定制特性语法 293

16.5.1传统Delphi语法 293

16.5.3参数类型和遍组 295

16.5.5 Win32错误码 297

16.5.4错误处理 297

16.5.6 HResult错误码 299

16.5.7性能问题 300

16.6.1传统的Delphi语法 304

16.6在Win32代码中使用.NET例程 304

16.6.2参数类型和遍组 305

17.1.2与XML集成 310

17.1.1不连接的数据体系结构 310

第四部分 用ADO.NET进行数据库开发 310

第17章 ADO.NET概况 310

17.1设计原则 310

17.2 ADO.NET对象 311

17.1.5利用现有技术手段 311

17.1.3通用数据表示 311

17.1.4在.NET框架上进行构建 311

17.2.2不连接的类 312

17.2.1连接的类 312

17.3.NET数据提供器 313

18.2设置ConnectionString属性 314

18.1连接功能 314

第18章 使用Connection对象 314

18.2.4指定OracleConnection.Connection-String 315

18.2.3 指定OdbcConnection.Connection-String 315

18.2.1 指定SqlConnection.Connection-String 315

18.2.2 指定OleDbConnection.Connection-String 315

18.4 Connection事件 316

18.3打开和关闭连接 316

18.5连接池 318

19.1执行命令 319

第19章 使用Command和DataReader对象 319

19.2非查询命令 320

19.3获得单一值 321

19.4执行数据定义语言(Data Definition Language,DDL)命令 322

19.5使用IDbParameter指定参数 323

19.6执行存储过程 325

19.7派生参数 327

19.9查询Resultset 328

19.8使用DataReader查询Resultset 328

19.10使用DataReader查询多个Resultset 329

19.11使用DataReader获得BLOB数据 330

19.12使用DataReader获得计划信息 331

20.1.2创建DataAdapter 333

20.1.1 DataAdapter构成 333

第20章DataAdapter和DataSet 333

20.1 DataAdapter 333

20.1.3获得查询结果 335

20.1.4映射查询结果 337

20.2.1 DataSet构成 339

20.2使用DataSet 339

20.2.2 DataSet操作 340

20.3.1 定义列 341

20.3使用DataTable 341

20.3.2定义主键 342

20.3.3使用约束 343

20.3.4使用DataRelation 345

20.3.5操作数据——使用DataRow 347

20.3.6搜索、排序和过滤数据 349

21.1.1 DataView类 351

21.1 使用DataView和DataViewManager显示数据 351

第21章 使用WinForm——DataView和数据绑定 351

21.1.3 使用DataView和DataView-Manager的项目范例 352

21.1.2 DataViewManager类 352

21.2.3 WinForm数据绑定类 361

21.2.2简单绑定和复杂绑定 361

21.2数据绑定 361

21.2.1数据绑定接口 361

21.2.4构建数据绑定的Windows窗体 362

22.1使用SQLCommandBuilder更新数据源 371

第22章 将数据存入数据源 371

22.2.1使用Command类 373

22.2使用定制的更新逻辑更新数据源 373

22.2.2使用SqlDataAdapter类 379

22.2.3使用存储过程进行更新 383

22.2.4处理并发 389

22.2.5在更新数据后刷新数据 391

23.1.1简单的事务处理范例 394

23.1事务处理 394

第23章 使用事务和强类型的DataSet 394

23.1.3隔离级别 397

23.1.2使用DataAdapter时的事务 397

23.1.4保存点 398

23.2.1优点/缺点 399

23.2强类型的DataSet 399

23.1.5嵌套事务 399

23.2.2创建强类型的DataSet 400

23.2.3查看强类型DataSet的.pas文件 401

23.2.4使用强类型的DataSet 407

24.1体系结构概述 408

第24章 Borland数据提供器 408

24.2.1 BdpConnection 409

24.2 Borland数据提供器类 409

24.2.2 BdpCommand 410

24.2.4 BdpDataAdapter 411

24.2.3 BdpDataReader 411

24.2.5 BdpParameter/BdpParameter-Collection 412

24.2.6 BdpTransaction 413

24.3.4 Data Adapter Configuration对话框 414

24.3.3参数集合编辑器 414

24.3 IDE内的设计器 414

24.3.1连接编辑器 414

24.3.2命令文本编辑器 414

25.1.1 HTTP协议概述 418

25.1 Web技术 418

第五部分用ASP.NET进行因特网开发 418

第25章 ASP.NET基础 418

25.1.3 HTTP响应包 419

25.1.2 HTTP请求包 419

25.2.1简单的Web应用程序 420

25.2 ASP.NET 420

25.2.2 ASP.NET页面结构 421

25.2.3事件驱动的通信 423

25.2.5 CodeBehind 424

25.2.4 VIEWSTATE和状态维护 424

25.3.1 HTTPResponse类 425

25.3 ASP.NET类 425

25.3.2 HTTPRequest类 428

25.3.3 HTTPCookie类 429

25.3.4处理回送事件 430

26.1使用ASP.NET控件构造Web页面 431

第26章 构造ASP.NET Web页面 431

26.1.2页面布局 432

26.1.1下载请求窗体范例 432

26.1.4处理装载事件 433

26.1.3创建窗体 433

26.1.5从ASP.NET应用程序内保存文件 434

26.1.6 Web窗体的事件处理顺序 435

26.2预填充列表框控件 436

26.3.2 BaseValidator类 437

26.3.1客户端和服务器端的检验 437

26.3执行Web窗体检验 437

26.3.4 CompareValidator 438

26.3.3 RequiredFieldValidator 438

26.3.5 RegularExpressionValidator 440

26.3.7 CustomValidator 441

26.3.6 RangeValidator 441

26.4.1 WebControl的强类型属性 442

26.4 Web窗体格式化 442

26.3.8 ValidationSummary 442

26.4.2层叠式样式表 443

26.4.3使用Style类 444

26.5.2使用Response.Redirect()和QueryString 445

26.5.1通过POST传递数据 445

26.5在Web窗体之间导航 445

26.5.3使用Server.Transfer()方法 446

26.5.4使用会话变量 447

26.6.1 使用面板控件进行多窗体模拟 448

26.6提示和技巧 448

26.6.2从客户上传文件 449

26.6.3从窗体发送电子邮件响应 450

26.6.4显示图像 452

26.6.5动态地添加控件——基于缩略图的图像浏览器 453

27.1.1简单数据绑定 455

27.1数据绑定 455

第27章 构造数据库驱动的ASP.NET应用程序 455

27.2.1 CheckBoxList控件 459

27.2数据绑定列表控件 459

27.1.2复杂数据绑定 459

27.2.2 DropDownList控件 461

27.2.3 ListBox控件 462

27.2.4 RadioButtonList控件 463

27.3.1 Repeater控件 465

27.3数据绑定重复控件 465

27.3.2 DataList控件 468

27.4使用数据网格 472

27.4.1数据网格分页 473

27.4.2编辑数据网格 475

27.4.4数据网格排序 480

27.4.3把条目添加到数据网格 480

27.5数据库驱动的下载请求窗体和管理程序 481

28.2构造Web服务 486

28.1 Web服务的相关术语 486

第28章 建立Web服务 486

28.2.2从Web服务返回数据 490

28.2.1[WebService]特性 490

28.2.3[WebMethod]特性讲解 491

28.3.2构建代理类 493

28.3.1发现过程 493

28.3使用Web 服务 493

28.3.3使用代理类 494

28.3.4使用来自Web服务的数据集 497

28.3.5调用异步的Web服务方法 499

28.4 Web服务的安全 500

29.1.2 RPC 503

29.1.1套接字 503

第29章 .NETRemoting和Delphi 503

29.1现在可用的Remoting技术 503

29.1.8SOAP 504

29.1.7 COM-Interop 504

29.1.3 Java RMI 504

29.1.4 CORBA 504

29.1.5 XML-RPC 504

29.1.6 DCOM 504

29.2.1客户/服务器 505

29.2分布式体系结构 505

29.1.9 .NET Remoting 505

29.2.3多层 506

29.2.2 对等 506

29.3.1 可伸缩性和容错性 507

29.3 多层应用程序开发的优势 507

29.4.2 应用程序域 508

29.4.1体系结构概述 508

29.3.2 开发和部署 508

29.3.3安全 508

29.4 .NET Remoting基础 508

29.4.3 System.Runtime.Remoting名字空间 509

29.4.4 可远程化的对象 510

29.4.5 对象激活 511

29.4.6租用和发起者 512

29.4.7代理 512

29.4.8 通道 512

29.5第一个.NET Remoting应用程序 513

29.5.1建立项目 513

29.5.2添加引用 514

29.5.3 BankPaekage.dll:客户和服务器之间的合约 514

29.5.4实现服务器 516

29.5.5实现客户 519

第30章 使用.NET Remoting 522

30.1 模板项目 522

30.2跟踪消息 522

30.3分析SOAP包 524

30.4客户激活 525

30.4.1工厂模式 526

30.4.2 运行时的范例 531

30.4.3 CAO的问题 531

30.5生存周期管理 532

30.6租用更新失败 534

30.7配置文件 534

30.7.1服务器配置 536

30.7.2客户配置 537

30.8从HTTP切换到TCP通信 542

30.9从SOAP切换到二进制Remoting 542

30.10 SOAP和二进制编码之间的区别 543

31.2.1配置ASP.NET的验证模型 545

31.2验证 545

31.2.2 Windows验证 545

31.1 ASP.NET安全方法 545

第31章 保护ASP.NET应用程序的安全 545

31.2.3基于窗体的验证 547

31.3授权 553

31.3.1文件授权 553

31.2.4护照验证 553

31.3.2 URL授权——〈authentication〉部分 554

31.3.3基于角色的授权 554

31.3.4冒名 556

31.4注销 557

32.1部署ASP.NET应用程序 558

32.1.1简单部署的考虑因素 558

第32章 ASP.NET的部署和配置 558

32.1.2 XCOPY部署 560

32.2.1 machine.config文件 561

32.2.2 web.config文件 561

32.2配置设置 561

32.3.1处理错误重定向 566

32.3.2工作者进程重启 566

32.3配置技巧 566

32.3.3为性能进行输出缓冲 567

32.3.4监视ASP.NET进程 568

32.3.5跟踪应用程序 569

32.4.1 添加和读取〈appSettings〉 571

32.4.2添加和读取定制的配置部分 571

32.4添加/获得定制的配置设置 571

33.1 缓存ASP.NET应用程序 573

33.1.1 页面缓存 573

第33章 在ASP.NET应用程序中进行缓存和管理状态 573

33.1.2 页面片断缓存 576

33.1.3数据缓存 577

33.1.4缓存文件依赖性 579

33.1.5扩展文件依赖性以便在SQL Server 中使用 580

33.1.6缓存回调方法 581

33.2 ASP.NET应用程序中的状态管理 583

33.2.1使用cookie管理状态 583

33.2.2使用ViewState 585

33.2.3会话状态管理 586

33.2.4在会话状态服务器中存储会话数据 588

33.2.5在SQL Server 中存储会话 588

33.2.6会话事件 589

33.2.7 应用程序状态管理 590

33.2.8使用Cache和应用程序状态的比较 591

第34章 开发定制的ASP.NET服务器控件 592

34.1用户控件 592

34.1.1一个非常简单的用户控件 593

34.1.2查看简单的控件 594

34.1.3用户登录用户控件 596

34.2 Web控件 597

34.2.1 构建一个非常简单的Web控件 597

34.2.2持久化值 599

34.2.3添加一些定制的显示 601

34.2.4确定HTML块类型 603

34.2.5处理回送数据 604

34.2.6 TPostBackInputWebControl 605

34.2.7合成控件 608

34.2.8实现合成控件——TNewUser-InfoControl 608