目录 1
简介 1
第一章 Visual Basic.NET基础 1
1.1 Visual Basic的发展历程 1
1.1.1 从COM到.NET 4
1.1.2 .NET世界 5
1.2 为什么需要学习Visual Basic.NET? 7
1.3 .NET Framework概述 8
1.3.3 数据和XML 10
1.3.2 用户界面 10
1.3.1 Web服务 10
1.3.4 基类库 11
1.3.5 公共语言运行库 11
1.3.6 通过Visual Basic.NET源代码访问功能 13
1.4 Visual Basic.NET是面向对象的 13
1.5 概述Visual Basic.NET语言的工作方式 15
1.6 组装VisualBasic.NET程序 17
1.6.1 元数据——关于数据的数据 17
1.6.2 实时编译器 18
1.6.3 执行Visual Basic.NET代码 19
1.7 配置交互式开发环境 20
1.6.4 组装程序 20
1.8 概述Visual Basic.NET的IDE 22
1.8.1 一些Visual Basic.NET代码 24
1.8.2 IDE为我们的第一个.NET程序创建的文件 30
1.8.3 关于程序集的另一些说明 35
1.9 仔细研究代码 37
1.9.1 获得继承性 37
1.9.2 启动我们的Forml类 38
1.9.3 警告:不要乱动设计器的代码! 41
1.9.4 较大的事件 43
1.10 总结 44
2.1 对象课程 45
第二章 使用Visual Basic.NET进行面向对象的编程 45
2.2 开始使用对象 46
2.2.1 类实际上就是一份蓝图 46
2.2.2 浅谈对象 47
2.2.3 作为对象的窗体 48
2.2.4 读取、编写、激活 49
2.3 继承 51
2.3.1 理解命名空间 52
2.3.2 从System.Windows.Forms.Form继承:窗体和控件 56
2.3.3 关于Visual Basic.NET控件的一点补充 57
2.3.4 检查代码 59
2.3.5 为按钮添加的代码 61
2.4 按F5键来运行程序 63
2.4.1 Doppelganger程序:创建Forml类的克隆 63
2.4.2 来自Doppelganger程序的重要对象概念 65
2.5 使用类视图监视结构和访问修改符 69
2.5.1 关于访问类型的更多信息 70
2.6 重载方法 71
2.6.1 一些重载的Show方法 73
2.7 多态 74
2.8 在运行时控制窗体 75
2.8.1 试一试 76
2.9 第一个真正的Visual Basic.NET程序 77
2.9.1 告诉Application对象将要运行哪个窗体 79
2.9.2 添加控件 81
2.9.3 检查IDE生成的代码 85
2.9.4 连接控件 88
2.9.5 指定命名空间的名称 89
2.9.6 日期和时间算法 90
2.9.7 编排日期和时间的格式 91
2.9.8 运行程序 93
2.10 总结 95
第三章 编写您的第一个类 97
3.1 创建Employee类 98
3.1.1 检查类的代码 101
3.1.2 类的命名空间 105
3.1.3 声明我们的类 106
3.1.4 使用共享变量 107
3.1.5 类构造函数 108
3.1.6 重载构造函数 109
3.1.7 MyBase.New 109
3.1.8 为私有数据字段指定值 110
3.1.9 覆盖 111
3.2 Employee类属性 113
3.1.10 #Region 113
3.3 关于继承的更多内容 116
3.3.1 虚拟方法 120
3.4 同步Class View 121
3.5 创建Employee类的实例 122
3.6 总结:揭秘面向对象的编程方式 126
第四章 Visual Basic.NET的数据类型和特性 129
4.1 理解数据类型 129
4.2 Visual Basic.NET的数据类型 130
4.2.1 值类型 131
4.2.2 引用类型 133
4.3.1 System.Object类 134
4.3 数据类型的特性 134
4.3.2 强制类型 137
4.3.3 类型安全 138
4.3.4 数据扩展 142
4.4 垃圾收集:去除对象 145
4.4.1 堆栈和管理堆 145
4.5 总结 147
第五章 使用文件和字符串介绍.NET类框架 149
5.1 .NET Framework到底是什么? 150
5.1.1 深入.NET Framework 150
5.1.2 一切都是从System命名空间开始的 151
5.2 学习查找和使用您所需要的内容 153
5.2.1 在Windows Class Viewer中进行搜索 154
5.2.2 使用命名空间 155
5.3 介绍File类 156
5.4 流 157
5.4.1 文件和流之间的区别 158
5.4.2 读写二进制、数值型或文本型数据 158
5.5 使用.NET Framework中的File类和StreamWriter类 158
5.5.1 读取文件 159
5.5.2 FileInfo类 161
5.5.3 创建新文件 163
5.5.4 使用框架枚举目录条目 164
5.6 字符串 167
5.6.1 有关字符串的新内容 168
5.6.2 未初始化的字符串 168
5.6.3 使用字符串 169
5.6.4 复制和克隆字符串 170
5.7 总结 173
第六章 Visual Basic.NET中的数组和集合 175
6.1 构建您的第一个Visual Basic.NET数组 176
6.1.1 数组的界限 177
6.1.2 为什么数组是基于System.Array类的? 182
6.1.3 事先不知道需要的元素数该怎么办? 185
6.1.4 在Visual Basic.NET中数组是从0开始的 187
6.1.5 在声明期间初始化数组 187
6.1.6 数组是引用类型 188
6.2 数组的实际应用:罗马数字计算器 190
6.2.1 编写代码 191
6.2.2 检查代码 192
6.2.3 缓存变量 193
6.3 Visual Basic.NET的集合 195
6.3.1 ArrayList集合 195
6.3.2 队列 198
6.3.3 堆栈 200
6.4 Eliza和人工智能的开始 201
6.4.1 应用Eliza 202
6.4.2 编码Eliza 204
6.4.3 Dialog.vb代码模块的拓扑结构 206
6.4.4 编写Dialog.vb代码模块 208
6.4.5 查看我们的代码 216
6.4.6 数组和集合 217
6.4.7 Eliza的入口点 218
6.4.8 患者正在谈论医生吗? 222
6.4.9 Eliza能快速做出响应吗? 223
6.4.10 Eliza能够翻译患者的响应以提出问题吗? 225
6.4.11 返回前面患者的短语 229
6.4.12 当其他所有情况都失败时 231
6.4.13 从窗体调用模块 232
6.5 总结 234
第七章 处理错误和调试程序 235
7.1 可能犯什么错呢? 235
7.2 Visual Basic.NET的错误类型 237
7.3 传统的Visual Basic中的Err对象在Visual Basic.NET中被取消 238
7.4 Try、Catch和Finally 239
7.4.1 添加结构化的错误处理 240
7.4.2 Try…Catch块 241
7.4.3 使程序更安全 243
7.4.4 Finally块 245
7.5 在代码中设置断点 246
7.6 使用调试器运行程序 247
7.6.1 逐行执行代码 248
7.6.2 有用的调试窗口 250
7.7 调用堆栈 254
7.8 Debug类和Trace类 256
7.8.1 Debug.WriteLine 257
7.8.2 Debug.Assert 257
7.8.4 为代码添加跟踪类 260
7.8.3 跟踪 260
7.8.5 检查ErrorTrace.vb代码 262
7.8.6 设置跟踪级别 266
7.8.7 将Errors.vb类添加到程序中 268
7.9 为程序添加事件日志 272
7.9.1 将事件记录到Event Viewer中的基本原则 273
7.9.2 将事件记录添加到ErrorTrace.vb类中 274
7.9.3 使用新的事件记录能力 278
7.10 总结 280
8.1 程序集 281
第八章 程序集的详细内容 281
8.1.2 共享程序集 282
8.1.1 私有程序集 282
8.1.3 程序集的其他部分 286
8.2 反射:检查程序集的方法 287
8.3 Assembly Spy程序 287
8.3.1 构建Assembly Spy程序 290
8.3.2 编写一些代码 292
8.3.3 检查代码 297
8.4 自我检查:研究一下我们自己的程序集 306
8.4.2 创建具有严格名称的程序集 307
8.4.1 代码签名 307
8.4.3 再谈全局程序集缓存 310
8.4.4 程序集的版本 312
8.5 Visual Basic.NET中的新的变量范围 316
8.5.1 命名空间的范围 317
8.5.2 确定变量的范围 317
8.6 总结 318
第九章 文件系统的监视 319
9.1 File Sentinel程序 320
9.1.1 File Sentinel程序的工作方式 320
9.1.2 开始编写File Sentinel程序 322
9.1.3 将Sentinel类添加到程序中 325
9.1.4 委托 332
9.1.5 处理Changed、Created和Deleted事件 334
9.1.6 处理Rename和Error事件 335
9.1.7 写入到日志文件中 337
9.1.8 与用户界面联系起来 338
9.1.9 可以对File Sentinel进行的增强 346
9.2 介绍Windows服务 348
9.2.1 服务的生存与死亡 348
9.2.2 将File Sentinel编译成Windows服务 349
9.2.3 将sentinel类添加到服务中 350
9.2.4 更新Servicel.vb文件 351
9.2.5 服务的工作方式 353
9.2.6 在Services窗口中查看vbMonitorService 363
9.2.7 调试Windows服务 365
9.3 总结 368
第十章 使用ADO.NET进行数据访问 369
10.1 从ADO到ADO.NET 369
10.1.1 ADO.NET 370
10.1.2 DataSet中的单独表格 371
10.1.3 比较传统的ADO和ADO.NET 373
10.2 详细介绍ADO.NET的基础:DataSet对象 375
10.2.2 DataSet对象和XML 376
10.2.1 DataTable对象 376
10.2.3 DataView对象 377
10.3 ADO.NET中的管理提供者 378
10.3.1 通用的提供者模型 380
10.4 查看代码 380
10.4.1 连接数据源 381
10.4.2 从数据源操纵数据的命令 382
10.4.3 创建DataReader对象 382
10.4.4 组合DataReader 383
10.5.1 开始行动 385
10.5 编写一个简单的SQLClient类的DataSet程序 385
10.5.2 将DataAdapter对象添加到程序中 389
10.5.3 完成用户界面 393
10.5.4 预览来自DataAdapter的数据 394
10.5.5 Customers表的XML方案 396
10.5.6 添加代码 397
10.5.7 运行程序 398
10.5.8 编辑数据 399
10.5.9 代码的工作方式 399
10.5.10 更新数据源 401
10.6 总结 404
11.1 回顾ADO.NET对象模型 405
第十一章 数据集的详细内容 405
11.2 数据集和XML 407
11.3 构建数据集和XML查看器项目 409
11.3.1 添加Connection、DataAdapter和DataSet对象 411
11.3.2 将代码添加到程序中 412
11.3.3 代码的工作方式 414
11.3.4 从数据集生成XML 414
11.3.5 更新数据源 415
11.4 ADO.NET和XML 416
11.4.2 XML方案的输出结果 417
11.4.1 查看程序的XML输出 417
11.5 保存XML信息 420
11.5.1 测试保存的代码 420
11.5.2 检查DiffGram 423
11.6 平衡使用XML文件的新类 425
11.6.1 Xsd.exe程序 426
11.7 为程序添加关系 429
11.7.1 数据集和XML程序 429
11.7.2 创建父/子关系 430
11.7.3 为表添加关系 432
11.8 通过保存的XML文件填写数据网格 435
11.7.4 检查DataSet属性 435
11.8.1 运行程序 437
11.8.2 程序的工作方式 438
11.9 手工编写一个简单的程序 439
11.10 数据绑定 440
11.10.1 创建程序 441
11.10.2 添加联系控件和数据集的代码 442
11.10.3 运行程序 444
11.10.4 程序的工作方式 445
11.11 总结 449
11.10.5 更新数据网格 449
第十二章 ADO.NET中的数据绑定 451
12.1 BindingContext对象 451
12.2 CurrencyManager对象 452
12.2.1 定位记录 453
12.3 一个简单的示例 453
12.3.1 添加代码 455
12.3.2 代码的工作方式 458
12.4 DataTable、DataRou和DataColumn对象 461
12.4.1 检查DataTable方案 462
12.4.2 以编程的方式构建表格 464
12.4.3 代码的工作方式 465
12.4.4 查找指定的记录 467
12.5 总结 468
第十三章 ASP.NET和Web服务 471
13.1 回顾ASP 471
13.2 为什么称为ASP.NET? 472
13.3 我们的第一个Web窗体 473
13.3.1 新的服务器控件 476
13.3.2 HTML展示模板 478
13.3.3 查看代码背后的文件 481
13.3.4 设置Web页的属性 482
13.3.5 添加日历控件代码 483
13.3.6 运行Web窗体 484
13.3.7 检查发送到浏览器的HTML 485
13.4 构建一个贷款偿还计算器 487
13.4.1 构建Loan Application项目 489
13.4.2 将代码添加到代码背后的窗体中 492
13.4.3 Web Form的生存期 493
13.4.4 程序的工作方式 494
13.4.5 仔细检查下拉列表 496
13.4.6 添加偿还计划页面 496
13.4.7 添加类代码 498
13.4.8 计算器的工作方式 501
13.4.9 跟踪程序 504
13.5 Web服务:新的市场 505
13.5.1 什么是Web服务? 506
13.5.2 通信方式 506
13.5.3 查看谁在全球市场提供了什么服务 507
13.5.4 Web服务的发展方向 509
13.6 构建Web服务 510
13.6.1 运行程序 512
13.6.2 使用MagicEightBall Web服务 514
13.6.3 构建Web服务的客户程序 517
13.6.4 为程序添加代理类 518
13.6.5 添加用来获得MagicEightBall答案的代码 519
13.7 总结 520
第十四章 可视继承和自定义控件 521
14.1 可视继承 521
14.1.1 构建基础窗体 522
14.1.2 添加继承的窗体 524
14.2 创建自定义控件 526
14.2.1 更改文本框的背景颜色 527
14.2.2 构建控件 528
14.2.3 添加控件的代码 528
14.2.4 将自定义控件添加到主持窗体中 530
14.2.5 代码的工作方式 531
14.3 综合应用前面学到的知识 533
14.3.1 保存便笺 534
14.3.2 构建Sticky Notes程序 536
14.3.3 构造便笺 542
14.3.4 添加便笺的代码 543
14.3.5 代码的工作方式 546
14.3.6 添加事件处理程序的委托 547
14.3.7 serialize类的详细内容 549
14.3.8 退出Sticky Notes程序 555
14.3.9 黄色的BaseNote便笺窗体的工作方式 557
14.3.10 部署Sticky Notes程序 560
14.3.11 在客户机中安装程序 564
14.3.12 安装Sticky Notes程序 565
14.4 总结 566
附录 一些有用的ADO.NET向导 567
A.1 使用Data Form Wizard 567
A.1.1 运行程序 572
A.1.2 背后的代码 573
A.2 从数据源生成Crystal Report 575
A.2.1 构建Crystal Report 575
A.2.2 准备查看报告 581