第二部分 专业项目 1
译者序 1
前言 1
第一部分 Visual C++.NET介绍 1
第1章 .NET Framework基础 1
1.1 .NET Framework 1
修订版序 1
1.1.1 公共语言运行环境 2
第三部分 专业项目 2
第四部分 专业项目 3
1.1.2 类库 4
第五部分 专业项目 4
1.1.3 程序集 5
1.1.4 调试器 5
第六部分 专业项目 5
第七部分 专业项目 6
1 2.1 Visual Studio.NET IDE 6
1.2 Visual Studio.NET介绍 6
1.1.5 代码访问安全性 6
1 2.2 Visual C#.NET 7
第八部分 专业项目 7
1.2.3 Visual Basic.NET 7
第九部分 专业项目 8
1 2.4 Visual C++.NET 8
1.2.5 Windows窗体 8
1.2.7 Web服务 8
1 2.6 Web表单 8
第十部分 专业项目 9
1.3 Visual C++.NET的新特征和增强功能 9
1.4 小结 10
第十一部分 专业项目 10
2.2 MFC编程基础 11
第2章 Visual C++.NET编程基础 11
2.1 MFC编程概述 11
2.2.1 事件处理 12
2.2.2 设备无关性 21
2.3 小结 27
3.1.1 启动MFC应用程序向导 28
3.1 MFC应用程序向导介绍 28
第3章 创建用户界面 28
3.1.2 创建一个应用程序框架 29
3.1.3 执行应用程序 33
3.2 定制一个应用程序框架 33
3.2.1 为窗体控件创建变量 36
3.2.2 在控件与变量之间传递数据 37
3.3 处理按钮事件 39
3.4 小结 40
4.1.2 为显示菜单编写代码 41
4.1.1 创建菜单资源 41
4.1 创建菜单 41
第4章 使用菜单、对话框和窗口控件 41
4.1.3 处理菜单 44
4.2 使用对话框和控件 45
4.2.1 创建模式对话框 47
4.2.2 创建无模式对话框 54
4.3 小结 57
5.1 走近文档/视图结构 58
5.1.1 文档/视图结构的组成 58
第5章 文档/视图结构 58
5.1.2 文档/视图类的功能 59
5.2 创建一个多文档应用程序 65
5.2.1 一个多文档应用程序的例子 66
5.2.2 改进应用程序 67
5.2.3 基于文档/视图结构的应用程序的控制流程 76
5.3 小结 77
6.1.2 多线程应用程序 78
6.1.1 单线程应用程序 78
6.1 线程基础 78
第6章 线程 78
6.2.1 用于工作者线程的AfxBeginThread函数 80
6.2 进一步讨论线程 80
6.2.2 用于用户界面线程的AfxBeginThread函数 81
6.2.3 创建一个单线程应用程序 82
6.2.4 创建一个多线程应用程序 84
6.2.5 终止线程 85
6.3 线程同步 86
6.3.4 CSemaphore 87
6.3.1 CSyncObiect 87
6.3.2 CMutex 87
6.3.3 CCriticalSection 87
6.3.5 CEvent 88
6.3.6 CMultiLock 88
6.3.7 CSingleLock 89
6.4 小结 89
项目1 使用Visual C++.NET进行数据库编程 90
项目1 概述 90
7.1.3 选择一种数据访问技术 91
7.1.2 DAO 91
7.1.1 ODBC 91
7.1 数据库访问机制 91
第7章 使用ODBC管理数据库概述 91
7.2.1 CDatabase类 92
7.2 MFC ODBC类 92
7.2.2 CRecordset类 93
7.2.3 CRecordView类 98
7.3 小结 98
8.3 项目生命周期 99
8.2 SaveMyMoney银行解决方案 99
8.1 SaveMyMoney银行案例分析 99
第8章 实现数据访问的技术 99
8.3.1 需求分析 100
8.3.2 高层设计 101
8.3.3 底层设计 102
8.3.4 构造 104
8.4.1 创建Banking数据库 104
8.4 银行业务应用程序 104
8.3.6 用户验收测试 104
8.3.5 集成和测试 104
8.4.2 配置一个ODBC数据源 107
8.4.3 创建SaveMyMoney应用程序 108
8.4.4 编写应用程序代码 117
8.5 小结 156
9.1 MFC应用程序的异常处理 157
第9章 Visual C++.NET中的程序调试和异常处理 157
9.2 调试Visual C++.NET应用程序 159
9.2.1 调试基础 159
9.2.2 生成配置 161
9.2.3 任务列表 163
9.2.4 断点窗口 166
9.2.5 自动窗口 172
9.2.6 局部变量窗口 172
9.2.8 快速查看对话框 173
9.2.7 监视窗口 173
9.2.9 其他调试窗口 174
9.3 小结 175
项目2 概述 176
项目2 使用Managed C++应用程序创建应用程序 176
10.1 .NET中的C++语言 177
第10章 托管扩展的介绍 177
10.2 使用C++托管扩展编程 178
10.2.1 类 179
10.2.3 属性 181
10.2.4 异常 181
10.2.2 接口 181
10.3 创建一个GUI应用程序 182
10.2.5 装箱 182
10.4 小结 186
11.1 GDI+介绍 187
第11章 GDI+、事件和委托的介绍 187
11.1.1 GDI+提供的功能 187
11.1.2 GDI+的新功能 188
11.2.1 在GDI+中重载方法 189
11.2 编程模式的变化 189
11.3.1 System.Drawing名字空间 190
11.3 GDI+中重要的类和名字空间 190
11.2.3 创建区域 190
11.2.2 用于画图和填充的不同方法 190
11.3.2 Graphics类 192
11.3.3 Brush类 194
11.3.4 Pen类 195
11.4 事件和委托 196
11.4.1 事件 196
11.4.2 委托 197
11.4.3 托管代码中的事件处理 199
11.5 小结 201
11.4.4 统一事件模型 201
12.1 项目案例分析 202
第12章 创建一个托管扩展应用程序 202
12.1.1 需求分析阶段 202
12.1.2 设计阶段 203
12.1.3 编码和构造阶段 205
12.2 编写应用程序代码 206
12.2.1 创建应用程序 206
12.2.2 创建用户界面窗体 206
12.1.5 执行阶段 206
12.1.4 测试阶段 206
12.2.3 创建应用程序菜单 209
12.2.4 创建应用程序工具栏和状态栏 213
12.2.5 应用程序的事件处理 216
12.2.6 委托 219
12.3 EasyTool应用程序的完整代码列表 223
12.4 小结 268
项目3 Managed C++中的ADO.NET 269
项目3 概述 269
第13章 ADO.NET简介 270
13.1 数据访问技术概述 270
1 3.2 ADO.NET概述 272
13.2.1 ADO.NET的功能 272
13.2.2 ADO.NET的优点 273
13.3 ADO.NET的体系结构 273
13.5 小结 283
13.4 ADO.NET和XML 283
14.2 数据库规划 284
第14章 在Managed C++应用程序中使用ADO.NET 284
14.2.1 创建数据库 284
14.1 项目概述 284
14.2.2 创建Account Detail表 285
14.3 创建银行业务应用程序 285
14.2.3 创建BankLogin表 285
14.3.2 创建登录窗体 286
14.3.1 在托管扩展中创建项目 286
14.3.3 创建.Account Details窗体 291
14.4 小结 305
项目4 创建托管扩展类库并用于ASP.NET应用程序 306
项目4 概述 306
第15章 ASP.NET简介 307
15.1 ASP.NET的演变 307
15.2 创建ASP应用程序的需求 308
15.2.2 Web表单基础 309
15.2.1 ASP.NET的体系结构 309
15.2.3 Web表单的组成 310
15.3 创建Web表单 310
15.3.1 ⅡS应用程序根目录 314
15.3.3 HTML服务器控件与Web服务器控件的比较 316
15.3.4 向表单添加服务器控件 316
15.3.2 ASP.NET Web表单服务器控件 316
15.3.5 设置Web控件的属性 317
15.3.6 处理Web控件的事件 318
15.4 验证控件 320
15.4.1 使用验证控件 320
15.4.2 使用多个验证控件 325
15.5 小结 326
16.1 税款计算器应用程序 327
第16章 创建类库并用于ASP.NET应用程序 327
16.1.1 项目生命周期 327
16.1.2 创建Managed C++类库 328
16.1.3 创建ASP.NET应用程序 330
16.2 小结 334
项目5 使用ATL创建COM组件 335
项目5 概述 335
第17章 COM简介 336
17.1 COM的演变 338
17.1.1 什么是COM 339
17.1.2 COM要解决的问题 339
17.2 COM组件 340
17.2.1 COM组件的类型 340
17.2.3 接口 342
17.2.2 COM库 342
17.2.4 注册表在COM中的作用 351
17.2.5 COM对象的实例化 352
17.3 COM中的线程 353
17.4.2 负载平衡 355
17.4 COM+ 355
17.4.1 内存数据库 355
17.4.4 新线程模型 356
17.4.5 对象缓冲池 356
17.4.6 队列组件 356
17.4.7 COM+事件 356
17.4.3 基于角色的安全 356
17.5 小结 357
17.4.8 自动化事务 357
18.1.1 属性类别 358
第18章 基于属性的编程简介 358
18.1 属性和反射的介绍 358
18.1.2 自定义属性 359
18.1.3 反射 361
18.2 小结 363
第19章 使用ATL实现COM 364
19.1 Art-Shop——在线美术馆 364
19.2.1 设计站点 364
19.2 项目生命周期 364
19.2.2 Checkout页面 365
19.3 创建信用卡验证组件 366
19.3.2 使用ATL项目向导创建基础COM组件 366
19.3.1 理解Luhn算法 366
19.3.3 创建CoClass类并添加功能 368
19.3.4 测试组件 375
19.4 小结 378
项目6 创建ATL Server应用程序 379
项目6 概述 379
第20章 ATL Server简介 380
20.1 什么是ATL Server 381
20.1.1 请求处理程序 382
20.1.2 其他功能 384
20.2 小结 384
21.1 案例分析 385
第21章 创建一个客户簿应用程序 385
21.2 创建基于HTML表单的界面 386
21.3 创建ATL Server应用程序 387
21.3.1 理解客户簿项目 391
21.3.2 修改SRF 392
21.3.4 添加方法到默认处理程序 392
21.3.3 表单处理 392
21.4 创建空XML文件 395
21.5 小结 395
项目7 创建Web服务 396
项目7 概述 396
22.1 什么是Web服务 397
第22章 Web服务和相关技术介绍 397
22.2 Web服务结构 398
22.3 相关技术 398
22.3.1 Web服务和XML 398
22.3.2 Web服务和SOAP 406
22.3.4 通用说明、发现和集成(UDDI) 408
22.3.3 Web服务描述语言 408
22.4 .NET和Web服务安全 409
22.4.1 在Internet上确保Web服务的安全 409
22.4.2 在Intranet上确保Web服务的安全 410
22.5 小结 411
第23章 使用托管扩展创建Web服务 412
23.1 Art-Shop的合作方案 412
23.1.1 项目生命周期 412
23.1.2 ArtShop数据库中的Product表 413
23.1.3 创建基础Managed C++Web服务 413
23.1.4 修改Web服务 416
23.1.5 用SQL Server.NET Data Provider访问数据 419
23.1.6 测试Web服务 422
23.1.7 用Managed C++建立Web服务使用程序 422
23.2 小结 427
24.1 汇率Web服务 428
24.2 项目生命周期 428
第24章 用ATLServer创建Web服务 428
24.2.1 需求分析 429
24.2.2 设计 429
24.2.3 构造 429
24.3 创建Web服务 429
24.3.1 创建数据库、表和存储过程 429
24.2.4 测试 429
24.3.2 创建ATL Server Web服务 430
24.4 测试应用程序 440
24.5 小结 442
项目8 Managed C++NET程序集和COM与.NET的互操作性 443
项目8 概述 443
25.1.1 程序集的类型 444
第25章 .NET中的程序集、清单以及与COM的互操作性概述 444
25.1 程序集 444
25.1.2 全局程序集高速缓存 446
25.1.3 程序集的优点 446
25.1.4 程序集版本控制 447
25.1.6 创建程序集 448
25.1.5 程序集的内容 448
25.1.7 程序集名称 449
25.1.8 公钥和私钥 449
25.1.9 程序集位置 451
25.1.10 将专用程序集转换成共享程序集 451
25.2 创建.NET组件 452
25.3 COM互操作性 452
25.4 COM可调用的包装器 453
25.5 运行环境可调用的包装器 454
25.5.1 从.NET中调用COM对象 455
25.5.2 从COM中调用.NET对象 456
25.6 小结 457
26.2 项目生命周期 458
26.1 Art-Shop——创建一个登录组件 458
第26章 实现COM和.NET的互操作性 458
26.3 在ArtShop数据库中创建Customer表 459
26.4 创建登录程序集 460
26.4.1 用SQL Server.NET Data Provider访问数据 462
26.4.2 实现方法 462
26.5 测试组件 466
26.6 小结 467
第27章 在.NET程序集中使用COM+服务 468
27.1 Art-Shop Kiosks——下订单 468
27.2 .NET和COM+服务 469
27.2.1 使用事务 470
27.2.2 创建数据库表 471
27.2.3 创建订单处理程序集 472
27.2.4 用COM+服务注册ProcessOrder组件 474
27.2.5 测试组件 475
27.3 小结 476
项目9 在Visual C++.NET中使用XML 477
项目9 概述 477
28.2 项目生命周期 478
28.1 New-Tech公司——方案 478
第28章 在Visual C++.NET中使用XML 478
28.2.1 需求分析和设计 479
28.2.2 应用程序的设计 479
28.2.3 构造 480
28.3 .NET中的XML——.NET XML类 480
28.3.1 XmlTextReader类 481
28.3.2 XmlValidatingReader类 481
28.3.3 XmlReader类 481
28.3.4 XmlWriter类 482
28.3.5 XmlDocument类 483
28.3.6 XPathNavigator类 484
28.3.7 XPathDocument类 485
28.4 创建和测试Scheduler应用程序 485
28.5 小结 491
项目10 Visual C++.NET中的联网与远程化 492
项目10 概述 492
第29章 实现网络互联 493
29.1 网络编程介绍 493
29.1.1 套接字 494
29.1.2 IP地址和端口 494
29.2 使用Visual C++.NET开发一个网络应用程序 495
29.2.1 System.Net名字空间 495
29.2.2 Socket类 495
29.2.3 WebRequest类 497
29.2.4 IPAddress类 498
29.3 System.Threading名字空间 499
29.4 案例分析 500
29.5 项目生命周期 500
29.5.1 需求分析 500
29.5.2 设计 500
29.5.3 构造 501
29.6 小结 511
第30章 远程化简介 512
30.1 .NET远程化结构简介 512
30.1.1 进程间通信 512
30.2 远程对象——服务器端 513
30.1.2 .NET远程化框架概况 513
30.2.1 主机化远程对象 514
30.2.2 配置远程对象 514
30.2.3 传递远程对象 515
30.3 代理对象——客户端 516
30.4 信道服务 517
30.4.1 信道的工作原理 517
30.4.2 安全通信 518
30.5 远程化元数据和配置文件 519
30.6 对象生存周期 519
30.7 小结 520
31.1 NJ Finances——方案 521
第31章 实现远程化 521
31.2 .NET远程化 522
31.3 创建远程对象应用程序 522
31.3.1 创建远程服务器应用程序 528
31.3.2 创建客户机应用程序 530
31.3.3 测试 538
31.4 小结 538
第十二部分 附录 539
附录A .NET的蓝图和目标 539
附录B .NET Server系列 551
附录C 名字空间与属性 561
附录D 将非托管代码迁移到托管代码 565
附录E C#基础 571