第二部分 专业项目 1
1.1 .NET Framework 1
目录译者序NIIT简介作者简介前言第一部分 VC++.NET介绍第1章 .NET Framework基础 1
1.1.1 公共语言运行环境 2
第三部分 专业项目 2
第四部分 专业项目 3
1.1.2 类库 4
第五部分 专业项目 4
1.1.3 程序集 5
第六部分 专业项目 5
1.1.4 调试器 6
1.1.5 代码访问安全性 6
1.2 Visual Studio.NET介绍 6
第七部分 专业项目 6
第八部分 专业项目 7
1.2.1 Visual Studio.NET IDE 7
1.2.4 Visual C++.NET 8
1.2.3 Visual Basic.NET 8
1.2.2 Visual C#.NET 8
第九部分 专业项目 8
第十部分 专业项目 9
1.2.5 Windows窗体 9
1.2.6 Web表单 9
1.2.7 Web服务 9
第十一部分 专业项目 10
1.3 VC++.NET的新特征和增强功能 10
1.4 小结 11
2.1 MFC编程概述 12
第2章 VC++.NET编程基础 12
2.2.1 事件处理 13
2.2 MFC编程基础 13
2.2.2 设备无关性 22
2.3 小结 29
3.1 MFC Application Wizard介绍 30
3.1.1 启动MFC Application Wizard 30
第3章 创建用户界面 30
3.1.2 创建一个应用程序框架 31
3.1.3 执行应用程序 35
3.2 定制一个应用程序框架 36
3.2.1 为窗体控件创建变量 38
3.2.2 在控件与变量之间传递数据 39
3.3 处理按钮事件 42
3.4 小结 43
4.1 创建菜单 44
4.1.2 为显示菜单编写代码 44
4.1.1 创建菜单资源 44
第4章 使用菜单、对话框和窗口控件 44
4.1.3 处理菜单 47
4.2 使用对话框和控件 49
4.2.1 创建模式对话框 51
4.2.2 创建无模式对话框 58
4.3 小结 61
5.1.1 文档/视图结构的组成 62
5.1 走近文档/视图结构 62
第5章 文档/视图结构 62
5.1.2 文档/视图类的功能 63
5.2 创建一个MDI应用程序 70
5.2.1 一个MDI应用程序的例子 71
5.2.2 改进这个应用程序 72
5.2.3 回顾基于文档/视图的应用程序的控制流程 82
5.3 小结 83
第6章 线程 84
6.1.1 单线程应用程序 84
6.1 线程基础 84
6.1.2 多线程应用程序 85
6.2 进一步讨论线程 86
6.2.1 用于工作者线程的AfxBeginThread函数 86
6.2.3 创建一个单线程应用程序 88
6.2.2 用于用户界面线程的AfxBeginThread函数 88
6.2.4 创建一个多线程应用程序 91
6.2.5 终止线程 92
6.3 线程同步 93
6.3.1 CSyncObiect 94
6.3.2 CMutex 94
6.3.3 CCriticalSection 94
6.3.4 CSemaphore 95
6.3.5 CEvent 95
6.3.6 CMultiLock 96
6.3.7 CSingleLock 96
6.4 小结 96
项目1 使用VC++.NET进行数据库编程 97
项目1 概述 97
第7章 使用ODBC管理数据库概述 98
7.1 数据库访问机制 98
7.1.1 ODBC 98
7.1.2 DAO 98
7.1.3 选择一种数据访问技术 98
7.2 MFC ODBC类 99
7.2.1 CDatabase类 99
7.2.2 CRecordset类 100
7.3 小结 105
7.2.3 CRecordView类 105
8.2 SaveMyMoney银行解决方案 106
8.1 SaveMyMoney银行案例分析 106
第8章 实现数据访问的技术 106
8.3.1 需求分析 107
8.3 项目生命周期 107
8.3.2 高层设计 108
8.3.3 低层设计 110
8.3.4 构造 111
8.4.1 创建Banking数据库 112
8.4 银行业务应用程序 112
8.3.6 用户验收测试 112
8.3.5 集成和测试 112
8.4.2 配置一个ODBC数据源 115
8.4.3 创建SaveMyMoney应用程序 116
8.4.4 编写应用程序代码 125
8.5 小结 168
第9章 VC++.NET中的程序调试和异常处理 169
9.1 MFC应用程序的异常处理 169
9.2.1 调试基础 172
9.2 调试VC++.NET应用程序 172
9.2.2 建立配置 173
9.2.3 Task List 175
9.2.4 断点窗口 179
9.2.5 自动窗口 185
9.2.7 查看窗口 186
9.2.6 局部窗口 186
9.2.8 快速查看对话框 187
9.2.9 其他调试窗口 187
9.3 小结 188
项目2 使用Managed C++应用程序创建应用程序 189
项目2 概述 189
第10章 托管扩展的介绍 190
10.1 .NET中的C++语言 190
10.2 使用C++托管扩展编程 191
10.2.1 类 192
10.2.3 属性 194
10.2.2 接口 194
10.2.5 装箱 195
10.2.4 异常 195
10.3 创建一个GUI应用程序 196
10.4 小结 200
11.1.1 GDI+提供的服务 201
11.1 GDI+介绍 201
第11章 介绍GDI+、事件和委托 201
11.1.2 GDI+的新功能 202
11.2 编程模式变化 203
11.2.1 在GDI+中重载方法 204
11.2.2 用于画图和填充的不同方法 204
11.2.3 创建区域 204
11.3.1 System.Drawing名字空间 205
11.3 GDI+中重要的类和名字空间 205
11.3.2 Graphics类 206
11.3.4 Pen类 209
11.3.3 Brush类 209
11.4.1 事件介绍 211
11.4 事件和委托 211
11.4.2 委托介绍 212
11.4.3 托管代码中的事件处理 214
11.5 小结 216
11.4.4 统一事件模型 216
12.1.1 需求分析阶段 217
12.1 项目案例分析 217
第12章 创建一个托管扩展应用程序 217
12.1.2 设计阶段 218
12.1.3 编码和构造阶段 221
12.1.4 测试阶段 221
12.2 编写应用程序代码 221
12.2.1 创建应用程序 221
12.2.2 创建用户界面窗体 221
12.1.5 执行阶段 221
12.2.3 创建应用程序菜单 225
12.2.4 创建应用程序工具栏和状态栏 229
12.2.5 应用程序的事件处理 231
12.2.6 委托 235
12.3 Easy Tool应用程序的完整代码列表 239
12.4 小结 287
项目3 概述 288
项目3 Managed C++中的ADO.NET 288
第13章 ADO.NET介绍 289
13.1 数据访问技术概述 289
13.2 ADO.NET介绍 291
13.2.1 ADO.NET的功能 292
13.2.2 ADO.NET的优点 292
13.3 ADO.NET的体系结构 293
13.4 ADO.NET和XML 303
13.5 小结 303
14.2.1 创建数据库 304
第14章 在Managed C++应用程序中实现ADO.NET 304
14.1 项目概述 304
14.2 数据库规划 304
14.3 创建银行业务应用程序 305
14.2.2 创建Account_Detail表 305
14.2.3 创建BankLogin表 305
14.3.1 在托管扩展中创建项目 306
14.3.2 创建登录窗体 306
14.3.3 创建Account Details窗体 311
14.4 小结 327
项目4 概述 328
项目4 创建托管扩展类库并用于ASP.NET应用程序 328
第15章 ASP.NET介绍 329
15.1 ASP.NET的演变 329
15.2 创建ASP应用程序的需求 330
15.2.1 ASP.NET体系结构 331
15.3 创建Web表单 332
15.2.3 Web表单的组成 332
15.2.2 Web表单基础 332
15.3.1 IIS应用程序根目录 337
15.3.2 ASP.NET Web表单服务器控件 338
15.3.3 HTML服务器控件与Web控件的比较 339
15.3.4 向表单添加服务器控件 339
15.3.5 设置Web控件的属性 340
15.3.6 处理Web控件的事件 341
15.4 验证控件 343
15.4.1 使用验证控件 343
15.4.2 使用多个验证控件 348
15.5 小结 349
16.1 税款计算器应用程序 350
第16章 创建类库并用于ASP.NET应用程序 350
16.1.1 项目生命周期 350
16.1.2 创建Managed C++类库 351
16.1.3 创建ASP.NET应用程序 353
16.2 小结 358
项目5 使用ATL创建COM组件 359
项目5 概述 359
第17章 COM介绍 360
17.1 COM的演变 362
17.1.1 什么是COM 363
17.2 COM组件 364
17.1.2 COM要解决的问题 364
17.2.1 COM组件的类型 365
17.2.2 COM库 366
17.2.3 接口 367
17.2.4 COM中注册表的作用 376
17.2.5 COM对象的实例化 377
17.3 COM中的线程 378
17.4 COM+ 380
17.4.2 负载平衡 381
17.4.6 队列组件 381
17.4.4 新线程模型 381
17.4.3 基于角色的安全 381
17.4.5 对象缓冲池 381
17.4.1 内存数据库 381
17.4.8 自动化事务 382
17.4.7 COM+事件 382
17.5 小结 382
18.1 属性和反射的介绍 383
第18章 基于属性的编程介绍 383
18.1.1 属性类别 383
18.1.2 自定义属性 384
18.1.3 反射 386
18.2 小结 388
19.1 Art-Shop——一个在线美术馆 389
第19章 使用ATL实现COM 389
19.2 项目生命周期 389
19.2.1 设计站点 389
19.2.2 Checkout页面 390
19.3.1 理解Luhn算法 391
19.3 创建信用卡验证组件 391
19.3.2 使用ATL Project Wizard创建基础COM组件 392
19.3.3 创建CoClass并添加功能 393
19.3.4 测试组件 402
19.4 小结 405
项目6 概述 406
项目6 创建ATL Server应用程序 406
第20章 ATL Server介绍 407
20.1 什么是ATL Server 408
20.1.1 请求处理程序 410
20.1.2 其他功能 411
20.2 小结 412
第21章 创建一个客户簿应用程序 413
21.1 案例分析 413
21.2 创建基于HTML表单的界面 415
21.3 创建ATL Server应用程序 416
21.3.1 理解客户簿项目 419
21.3.2 修改SRF 420
21.3.3 表单处理 420
21.3.4 添加方法到默认处理程序 421
21.4 创建空XML文件 424
21.5 小结 425
项目7 概述 426
项目7 创建Web服务 426
第22章 Web服务和相关技术介绍 427
22.1 什么是Web服务 427
22.2 Web服务结构 428
22.3 相关技术 428
22.3.1 Web服务和XML 429
22.3.2 Web服务和SOAP 437
22.3.3 Web服务描述语言 439
22.3.4 统一描述、发现和集成(UDDI) 439
22.4 .NET和Web服务安全 440
22.4.1 在Internet上确保Web服务的安全 440
22.4.2 在Intranet上确保Web服务的安全 441
22.5 小结 442
23.1.1 项目生命周期 443
23.1 Art-Shop的合作方案 443
第23章 使用托管扩展创建Web服务 443
23.1.2 ArtShop数据库中的Product表 444
23.1.3 创建基础Managed C++Web服务 445
23.1.4 修改Web服务 448
23.1.5 用SQL Server.NET Data Provider访问数据 450
23.1.6 测试Web服务 453
23.1.7 用Managed C++建立Web服务使用程序 453
23.2 小结 460
第24章 用ATL Server创建Web服务 461
24.1 汇率Web服务 461
24.2 项目生命周期 461
24.2.1 需求分析 462
24.2.2 设计 462
24.2.3 构造 462
24.2.4 测试 462
24.3 创建Web服务 462
24.3.1 创建数据库、表和存储过程 462
24.3.2 创建ATL Server Web服务 463
24.4 测试应用程序 474
24.5 小结 477
项目8 Managed C++.NET程序集和COM与.NET的互操作性 478
项目8 概述 478
第25章 .NET中的程序集、清单以及与COM的互操作性概述 479
25.1 程序集 479
25.1.1 程序集的类型 479
25.1.2 全局程序集高速缓存 481
25.1.3 程序集的优点 481
25.1.4 程序集版本化 482
25.1.6 创建程序集 483
25.1.5 程序集的内容 483
25.1.7 程序集名称 484
25.1.8 公钥和私钥 484
25.1.9 程序集位置 486
25.1.10 将私有程序集转换成共享程序集 486
25.2 创建.NET组件 487
25.3 COM互操作性 487
25.4 COM可调用的包装器 488
25.5 运行时可调用的包装器 489
25.5.1 从.NET中调用COM对象 490
25.5.2 从COM中调用.NET对象 492
25.6 小结 492
26.1 Art-Shop——创建一个登录组件 493
26.2 项目生命周期 493
第26章 实现COM和.NET的互操作性 493
26.4 创建登录程序集 495
26.3 在ArtShop数据库中创建Customer表 495
26.4.1 用SQL Server.NET Data Provider访问数据 497
26.4.2 实现方法 498
26.5 测试组件 502
26.6 小结 503
第27章 在.NET程序集中使用COM+服务 504
27.1 Art-Shop Kiosks——下订单 504
27.2 .NET和COM+服务 505
27.2.1 使用事务 506
27.2.3 创建ProcessOrder程序集 507
27.2.2 创建数据库表 507
27.2.4 用COM+服务注册ProcessOrder组件 511
27.2.5 测试组件 512
27.3 小结 512
项目9 在VC++.NET中使用XML 513
项目9 概述 513
第28章 在VC++.NET中使用XML 514
28.1 New-Tech公司——方案 514
28.2 项目生命周期 514
28.2.1 需求分析和设计 515
28.2.2 应用程序的设计 515
28.3 .NET中的XML——.NET XML类 516
28.2.3 构造 516
28.3.1 XmlTextReader类 517
28.3.2 XmlValidatingReader类 517
28.3.3 XmlReader类 517
28.3.4 XmlWriter类 518
28.3.5 XmlDocument类 519
28.3.6 XPathNavigator类 520
28.3.7 XPathDocument类 521
28.4 创建和测试Scheduler应用程序 521
28.5 小结 528
项目10 VC++.NET中的联网与远程化 529
项目10 概述 529
29.1 网络编程介绍 530
第29章 实现网络互联 530
29.1.1 套接字 531
29.1.2 IP地址和端口 531
29.2 使用VC++.NET开发一个网络应用程序 532
29.2.1 System.Net名字空间 532
29.2.2 Socket类 532
29.2.3 WebRequest类 535
29.2.4 IPAddress类 535
29.3 System.Threading名字空间 536
29.3.1 Thread类 536
29.4 案例分析 537
29.5.3 构造 538
29.5.2 设计 538
29.5.1 需求分析 538
29.5 项目生命周期 538
29.6 小结 549
第30章 远程化介绍 550
30.1 .NET远程化结构的介绍 550
30.1.1 进程间通信 550
30.1.2 .NET远程化框架概况 551
30.2 远程对象——服务器端 552
30.2.1 本机化远程对象 552
30.2.2 配置远程对象 552
30.2.3 传递远程对象 553
30.3 代理对象——客户端 555
30.4 信道服务 555
30.4.1 信道的工作原理 556
30.5 远程化元数据和配置文件 557
30.4.2 安全通信 557
30.6 对象生存期 558
30.7 小结 559
第31章 实现远程化 560
31.1 NJ Finances——方案 560
31.2 .NET远程化 561
31.3 创建远程对象应用程序 562
31.3.1 创建远程服务器应用程序 567
31.3.2 创建客户机应用程序 569
31.3.3 测试 578
31.4 小结 578
第十二部分 附录附录A .NET蓝图和目标 579
A.1 蓝图说明 579
A.1.3 数据访问存储层 580
A.1.2 业务逻辑/应用层 580
A.1.1 表示层 580
A.2 .NET的架构变化 581
A.3 .NET框架设计目标 582
A.3.1 可用性 582
A.3.2 易管理性 585
A.3.3 性能 588
A.3.4 可靠性 589
A.3.5 可伸缩性 590
A.3.6 安全性 590
附录B .NET Server系列 592
B.1 Application Center 2000 592
B.2 BizTalk Server 2000 593
B.4 Content Management Server 2001 594
B.3 Commerce Server 2000 594
B.5 Exchange 2000 595
B.6 Host Intergration Server 2000 596
B.7 Internet Security and Acceleration Server 2000 597
B.8 Mobile Informatation 2001 Server 598
B.9 SharePoint Portal Server 2001 600
B.10 SQL Server 2000 601
附录C 名字空间与属性 603
C.1 System名字空间 603
C.2 System.Windows.Forms名字空间 604
C.2.1 窗体 604
C.2.2 控件 604
C.2.3 组件 604
C.3.1 COM属性 605
C.3.2 IDL属性 605
C.2.4 通用对话框 605
C.3 属性 605
C.3.3 ATL Server属性 606
C.3.4 OLE DB使用者属性 606
C.3.5 编译器属性 606
附录D 将非托管代码迁移到托管代码 607
附录E C#基础 614
E.1 Visual C#.NET起源 614
E.2 C#简介 615
E.3 一个示例程序 623
E.4 小结 624