《Visual C#基于组件的开发》PDF下载

  • 购买积分:23 如何计算积分?
  • 作  者:(美)Ted Faison著;战晓苏译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2003
  • ISBN:7302063257
  • 页数:888 页
图书介绍:本书介绍了使用Visual C#创建功能广泛的组件,还介绍了基于组件的开发技术,实用的建议和知识的示例。

第Ⅰ部分 概论 1

第1章 开发过程 1

1.1 组件开发 1

1.1.1 常见错误 2

1.1.2 项目管理风险 2

1.2 开发阶段 3

1.2.1 瀑布过程 4

1.2.2 初始需求中的问题 5

1.2.3 连续细化的过程 6

1.2.4 选择组件 7

1.2.5 购买第三方组件的风险 8

1.2.6 微软开发过程 9

1.3 分析阶段 9

1.3.2 错误的方法 10

1.3.1 编制预算的艺术 10

1.3.3 正确的方法 11

1.3.4 用例 12

1.3.5 交互图 12

1.4 设计阶段 13

1.4.1 熟悉最终用户 13

1.4.2 熟悉性能需求 14

1.4.3 从哪里开始 15

1.4.4 要完成什么 15

1.4.5 设计要具有可测试性 15

1.5 实现阶段 16

1.5.1 确保跟踪变化 17

1.5.2 编码原则 17

1.5.3 测试器 23

1.6 测试 23

1.6.3 验证测试 24

1.6.2 集成测试 24

1.6.1 单元测试 24

1.6.4 回归测试 25

1.6.5 确定在何时发布——故障恢复率和错误反馈率 25

1.7 部署阶段 26

1.8 部署后的日子:维护 26

1.9 小结 27

第2章 组件结构 28

2.1 Conway定律 28

2.2 父组件与子组件 29

2.3 组件的分级 31

2.3.1 大片还是小片 31

2.3.2 大小与复杂度 32

2.4 委托 34

2.5 用委托限定特性 35

2.6 聚集 37

2.7 深度聚集 38

2.8 线程 40

2.9 小结 41

第3章 组件设计 42

3.1 UML 42

3.1.1 类图 42

3.1.2 交互图 44

3.2 设计模式 45

3.2.1 创建型模式 47

3.2.2 结构型模式 50

3.2.3 行为模式 55

3.3 不要忘记-ilities 62

3.3.1 可操纵性 63

3.3.2 可测试性 63

3.3.3 可用性 63

3.3.4 可部署性 63

3.3.6 可靠性 64

3.3.5 可维护性 64

3.3.7 灵活性 66

3.3.8 可移植性 66

3.4 放松一下——没有完美的设计 67

3.5 优秀设计的标志 67

3.6 小结 67

第4章 组件分类 68

4.1 如何分类组件 69

4.1.1 形式方法问题 69

4.1.2 分类系统 71

4.2 前端组件 77

4.2.1 独立应用程序 77

4.2.2 分布式应用程序 77

4.2.3 基于浏览器的应用程序 80

4.3.2 服务器区 81

4.3.1 群集服务器 81

4.3 中间层 81

4.3.3 跟踪用户状态 82

4.3.4 数据库连接池 82

4.4 后端 83

4.5 小结 85

第5章 调试 86

5.1 几个关于调试的故事 86

5.2 常见的故障 87

5.3 不同种类的调试器 87

5.3.1 Visual Studio .NET集成调试器 88

5.3.2 DbgClr 88

5.3.3 CORDBG 89

5.4 一般的调试技术 89

5.4.1 断点 89

5.4.2 运行中修改代码 95

5.4.3 运行中修改数值 96

5.4.4 单步执行代码 97

5.4.5 测试数据 98

5.4.6 栈跟踪 99

5.4.7 调试多语言代码 100

5.5 检测代码 102

5.5.1 使用Debug类 102

5.5.2 使用Trace类 103

5.5.3 断言 104

5.5.4 使用Fail()方法 105

5.5.5 重定向调试和跟踪消息 106

5.5.6 条件编译 107

5.5.7 条件代码属性 109

5.6 调试情况的种类 110

5.7 几个通用的提示 110

5.9 DLL 111

5.8 独立应用程序 111

5.9.1 一般的问题 112

5.9.2 依附于过程 113

5.9.3 及时依附 115

5.9.4 从过程分离 116

5.10 小结 116

第6章 部署 117

6.1 旧方法 117

6.3.1 什么是程序集 118

6.2 新方法 118

6.3 程序集 118

6.3.2 程序集的结构 119

6.3.3 查看程序集数据 120

6.3.4 私有程序集 122

6.3.5 共享程序集 122

6.3.6 查看全局程序集高速缓存 122

6.5 使用安装向导 124

6.4 部署方法 124

6.6 创建基本的安装程序 126

6.6.1 添加项目输出组 127

6.6.2 编辑安装项目属性 128

6.6.3 常用内容 130

6.6.4 闪烁对话框 137

6.6.5 欢迎对话框 137

6.6.6 用户授权对话框 138

6.6.7 用户信息对话框 138

6.6.8 单选按钮对话框 140

6.6.9 复选框对话框 141

6.6.10 文本框对话框 142

6.6.11 安装文件夹对话框 143

6.6.12 自述文件对话框 143

6.6.13 注册用户对话框 144

6.6.14 使用条件 145

6.7 预编译代码 152

6.7.1 何时进行预编译 154

6.7.2 何时不进行预编译 154

6.8 在Internet和Intranet上部署软件 155

6.8.1 使用Web页 155

6.8.2 CAB文件 155

6.8.3 智能客户端 156

6.9 部署共享组件 157

6.10 许可 158

6.10.1 设计时许可 160

6.10.2 运行时许可 161

6.10.3 创建许可 161

6.10.4 使用经过许可的组件 162

6.11 小结 163

第7章 Windows窗体组件 164

7.1 Windows窗体 164

第Ⅱ部分 前端组件 164

7.2 设计ProcessViewer 166

7.3 开发ProcessViewer 168

7.3.1 获取进程数据 169

7.3.2 进程的排序 170

7.3.3 填充TreeView 171

7.3.4 为TreeView项设置位图 172

7.3.5 为菜单项设置位图 174

7.3.6 控制右边的窗格 179

7.3.7 限定窗体的尺寸 180

7.3.8 显示进程和模块的细目 181

7.3.9 访问命令行参数 183

7.3.10 使用正则表达式 184

7.3.11 获取操作系统的消息 188

7.3.13 获取环境变量 189

7.3.12 确定当前目录 189

7.3.14 确定是否有鼠标连接到系统中 191

7.3.15 确定用户的系统是否连接到网络上 192

7.3.16 获取逻辑驱动器的列表 192

7.3.17 使用文本文件 192

7.4 剪切、复制和粘贴 195

7.5 打印 196

7.6 ProcessViewer的完整代码 202

7.7 本地化 220

7.7.1 地区的指定 221

7.7.2 用程序实现改变地区 223

7.7.3 资源文件的本地化 224

7.7.4 窗体本地化 224

7.7.5 字符串的本地化 227

7.7.6 带有参数置换的短语 231

7.7.7 MyLocalizedForm的代码 232

7.7.9 使用ResEditor 234

7.7.8 图像的本地化 234

7.7.10 使用ResxGen 236

7.7.11 建立本地化的图像 236

7.8 小结 238

第8章 使用WebBrowser组件创建前端 239

8.1 微软的WebBrowser组件 239

8.2 设计MyWebBrowser 242

8.3 开发MyWebBrowser 243

8.4 引入WebBrowser ActiveX组件 243

8.4.1 简单的方法 243

8.4.2 困难的方法 244

8.4.3 运行时可调用的包装 246

8.4.4 添加工具栏 247

8.4.5 添加打印支持 248

8.4.6 添加导航支持 249

8.4.7 完整的代码 252

8.5 创建自定义的Web浏览器 256

8.5.1 引入并包装COM接口 258

8.5.2 IOleObject和IOleClientSite 258

8.5.3 使用ICustomDoc 260

8.5.4 IDocHostUIHandler 260

8.5.5 由通过COM接口调用的方法返回值 263

8.5.6 常见的自定义 264

8.5.7 IDocHostUIHandle方法详述 269

8.6 完整的代码 277

8.7 小结 285

第9章 自定义控件 286

9.1 过去的自定义控件 286

9.2 选择正确的基类 288

9.3 设计组件 288

9.3.2 更改控件的类名 290

9.3.1 创建自定义控件库 290

9.3.3 更改控件的Toolbox图标 291

9.3.4 向Toolbox添加组件 293

9.3.5 在稳定前向Toolbox添加组件 295

9.3.6 创建测试器 296

9.3.7 添加对测试器的引用 296

9.3.8 使用拖放来添加自定义控件 297

9.3.9 手工添加自定义控件 297

9.3.10 运行自定义控件的代码 298

9.4 组件的开发 299

9.4.1 添加鼠标事件处理程序 300

9.4.2 添加键盘事件处理程序 301

9.4.3 绘制控件 305

9.4.4 使用World变换 318

9.5 在文件系统中查找文件 326

9.6 添加上下文菜单 327

9.7 支持拖放 328

9.8 生成随机数 332

9.9 设计时属性 332

9.9.1 添加简单的属性 333

9.9.2 添加属性的说明 334

9.9.3 在属性窗口中禁止显示属性 334

9.9.4 非公共属性与属性窗口 334

9.9.5 在属性窗口中隐藏继承的属性 335

9.9.6 在类别下添加属性 335

9.9.7 禁止存储属性 336

9.9.8 属性编辑器 336

9.9.9 实现类型转换器 338

9.10 MyCustomControl的完整代码 340

9.11 小结 352

第10章 用户控件 353

10.1 用户控件与自定义控件 353

10.2 设计图形设计器组件 354

10.3 开发组件 357

10.3.1 创建用于设计器的组件 361

10.3.2 由MyComponent派生专用类 364

10.3.3 绘制Windows系统图标 365

10.3.4 显示和管理抓取句柄 367

10.3.5 用抓取句柄调整组件尺寸 374

10.3.6 用橡皮圈选择项 375

10.3.7 管理选择项 380

10.3.8 在屏幕上移动组件 380

10.3.9 设计器组件 382

10.3.10 添加和删除项 388

10.4 控制数据输入 389

10.4.1 在键入时检验键值 389

10.4.2 使用正则表达式验证 391

10.4.3 使用内置的方法 392

10.4.4 确认事件 394

10.5 小结 395

第11章 数据库前端 396

11.1 建立数据库连接 397

11.2 基于导航器的窗体 400

11.2.1 装载记录 404

11.2.2 导航记录集 407

11.2.3 插入新记录 408

11.2.4 删除记录 408

11.2.5 向数据库提交修改 409

11.2.6 取消对当前记录的编辑 409

11.2.7 取消所有编辑 410

11.3 Windows窗体中的数据绑定 410

11.3.1 把属性同数据源绑定 411

11.3.2 简单数据绑定 412

11.3.3 VS.NET提示 413

11.3.4 预览由数据适配器取出的行 418

11.3.5 完整源代码 419

11.4 基于网格的窗体 425

11.4.1 定制网格 428

11.4.2 数字、日期和时间格式 431

11.5 管理网格中的数据 434

11.5.1 装载记录 434

11.5.2 向数据库提交修改 436

11.5.3 回调所有的记录 438

11.5.4 使用默认值对行进行预填充 439

11.6 主-从窗体 445

11.6.1 创建窗体 446

11.6.2 窗体如何工作 449

11.6.3 使用嵌套行的主-从网格 458

11.7 数据库报表窗体 466

11.7.1 创建简单报表 466

11.7.2 创建一个更复杂的报表 473

11.8 小结 481

第12章 软件前端的一些技巧 482

12.1 显示一个闪烁窗口 482

12.2 管理用户的设置信息 484

12.2.1 特定的目录 485

12.2.2 应用二进制文件 486

12.2.3 应用文本文件 491

12.2.4 应用注册表 497

12.3 管理最近使用的文件 501

12.3.1 应用注册表 501

12.3.2 应用快捷方式 506

12.3.3 声明COM接口 509

12.3.4 使用COM方法读写字符串 520

12.3.5 COM对象ShellLink的一个包装器 520

12.3.6 应用FileShortcut类管理最近使用的文件列表 527

12.4 小结 529

第Ⅲ部分 中间层组件 530

第13章 Web窗体 530

13.1 ASP有什么缺陷 530

13.2 ASP.NET的改进之处 531

13.3 基础知识 532

13.3.1 告别包含文件,使用类 533

13.3.2 发布Web窗体 536

13.3.3 处理Web窗体事件 539

13.3.4 获取用户消息 545

13.4 一个Web应用程序的例子 547

13.5 设计Web应用程序 547

13.6 实现Web应用程序 548

13.6.1 PostBacks 556

13.6.2 添加事件处理程序 557

13.7 测试Web窗体 560

13.7.1 使用Response对象 564

13.7.2 使用重定向的方法返回全新的页面 565

13.7.3 使用跟踪状态 566

13.8 管理状态 570

13.8.1 使用cookies 571

13.8.2 使用隐藏数据 571

13.8.3 使用查询字符串 572

13.8.4 使用ViewState 573

13.8.5 使用对话变量 574

13.9 小结 577

第14章 Web控件 578

14.1 内置的Web控件 578

14.2 需要Web控件的原因 579

14.3 Web控件工作原理 580

14.4 开发一个定制的Web控件 580

14.6 开发Web控件 581

14.5 设计Web控件 581

14.6.1 定制发布 587

14.6.2 依赖浏览器的发布 588

14.6.3 添加定制事件 591

14.6.4 添加定制属性 593

14.6.5 MyWebControl控件的完整代码 594

14.6.6 移植控件到DLL中 595

14.6.7 创建测试装置 599

14.7 确认用户输入 600

14.7.1 指定显示出错信息的位置 603

14.7.2 Text属性和ErrorMessage属性的区别 603

14.7.3 RequiredFieldValidator组件 603

14.7.4 CompareValidator组件 603

14.7.5 RangeValidator组件 605

14.7.6 CustomValidator组件 606

14.7.7 ValidationSummary组件 608

14.7.8 RegularExpressionValidator组件 612

14.7.9 一个使用验证控件的完整例子 613

14.7.10 使用ValidationSummary组件的完整例子 617

14.8 小结 620

第15章 用户控件 621

15.1 什么是用户控件 621

15.2 基础知识 622

15.3 用用户控件创建Web应用程序 625

15.4 设计导航用户控件 626

15.5 开发导航 626

15.6 向Web窗体添加导航 628

15.7 建立图文框设置 628

15.8 开发内容用户控件 631

15.8.1 添加属性 634

15.8.2 添加事件处理程序 635

15.8.3 响应页面请求 635

15.9 建立HTML网页 639

15.8.4 把内容控件添加到Web窗体中 639

15.10 把Web窗体转换为用户控件 640

15.11 测试用户控件 641

15.12 把用户控件包装在DLL文件中 641

15.13 完整的代码 642

15.14 小结 651

第16章 服务 652

16.1 Web服务 652

16.2 基础知识 654

16.2.1 声明Web方法 656

16.2.2 数据输入和数据输出 657

16.2.3 支持强制类型转换 659

16.2.4 SOAP 659

16.2.5 WSDL 660

16.2.6 DISCO 664

16.2.7 UDDI 665

16.2.8 开发Web服务 666

16.2.9 测试Web服务 667

16.2.10 状态维护 674

16.2.11 安全性 677

16.2.12 发布动态搜索信息 677

16.2.13 将Web服务传送到专用机上 678

16.3 Windows服务 680

16.3.1 设计服务 683

16.3.2 开发服务 684

16.3.3 交互式服务 692

16.3.4 测试服务 693

16.3.5 添加系统托盘图标 696

16.3.6 添加服务控制程序 696

16.3.7 安装服务 707

16.3.8 自定义服务安装 710

16.3.9 最后几个注意事项 712

16.4 小结 713

第17章 安全性 714

17.1 Web应用程序的安全性 715

17.2 验证 715

17.2.1 基于IP地址的验证 715

17.2.2 通过凭证鉴定用户 718

17.2.3 其他方法 721

17.2.4 利用基本验证手段保护Web应用程序 721

17.3 ASP.NET的安全措施 731

17.3.1 假冒 731

17.3.2 窗体验证 733

17.3.3 一个简单的例子 734

17.3.4 将验证信息保存到数据库中 738

17.4 小结 740

17.3.5 护照验证 740

第Ⅳ部分 后端组件 741

第18章 ADO.NET体系结构 741

18.1 什么是后端 741

18.2 ADO.NET的主要要素 743

18.2.1 数据集 743

18.2.2 数据适配器 744

18.2.3 数据读取器 746

18.2.4 数据表 747

18.2.5 数据视图 747

18.2.6 数据绑定 751

18.3 连接到数据库 755

18.3.1 打开连接和断开连接 757

18.3.2 连接池 758

18.3.3 性能最大化 758

18.3.4 配置连接池 759

18.4.1 添加记录 760

18.4 更改数据库 760

18.4.2 更新记录 761

18.4.3 删除记录 762

18.4.4 处理数据集问题 763

18.4.5 使修改生效和对错误进行分析 765

18.5 一个完整的例子 769

18.6 小结 781

第19章 数据库Web服务 782

19.1 什么是数据库Web服务 782

19.2 设计服务 783

19.3 实现服务 784

19.4 为客户端提供Web方法 792

19.5 测试Web服务 795

19.5.1 使用Internal Web Browser进行测试 795

19.5.2 使用Windows应用程序进行测试 798

19.6 异常处理 803

19.7 事务处理 804

19.8 测试数据库Web服务 805

19.9 小结 806

第20章 多线程组件 807

20.1 线程的概念 807

20.1.1 单元线程 808

20.1.2 .NET线程与同步 809

20.1.3 给父线程回传信息 811

20.1.4 多个线程执行同一段代码 811

20.1.5 等待多个事件中的一个 812

20.1.6 线程和COM对象 814

20.1.7 无阻塞调用 815

20.1.8 线程池 817

20.2 线程管理 823

20.2.1 启动线程 823

20.2.2 检查线程的状态 824

20.2.3 线程的暂停与同步 825

20.2.4 恢复暂停的线程 831

20.2.5 停止线程 831

20.2.6 异步处理 833

20.2.7 同步处理 833

20.2.8 跨线程共享资源 835

20.2.9 从其他线程调用Windows窗体控件 836

20.3 创建多线程组件:StressTester 841

20.3.1 设计组件 842

20.3.2 实现组件 844

20.3.3 调试组件 849

20.4 小结 851

第21章 网关服务 852

21.1 什么是网关服务 852

21.2.1 基本的Remoting组件 853

21.2 Remoting Framework 853

21.2.2 一个简单的服务器端对象 854

21.2.3 从客户端访问远程对象 855

21.2.4 将客户端连接到服务器上 855

21.2.5 远程对象的激活模式 859

21.3 创建网关服务 862

21.3.1 建立系统的体系结构 863

21.3.2 设计网关服务 864

21.3.3 实现网关服务 866

21.3.4 设计服务主机应用程序 870

21.3.5 实现服务主机应用程序 871

21.3.6 设计服务提供者模拟器 875

21.3.7 实现服务提供者模拟器 877

21.3.8 测试MyGatewayService 883

21.3.9 将所有部分组装起来 886

21.3.10 处理远程异常 887

21.4 小结 888