上 卷
第Ⅰ部分 C# 語 言
第1章 .NET體系結構 3
1.1 C#與.NET的關系 3
1.2 公共語言運行庫 4
1.3 中間語言 7
1.3.1 面向對象和接口的支持 7
1.3.2 相異值類型和引用類型 8
1.3.3 強數(shù)據類型 8
1.3.4 通過異常處理錯誤 14
1.3.5 特性的使用 15
1.4 程序集 15
1.4.1 私有程序集 16
1.4.2 共享程序集 16
1.4.3 反射 17
1.5 .NET Framework類 17
1.6 命名空間 18
1.7 用C#創(chuàng)建.NET應用程序 18
1.7.1 創(chuàng)建ASP.NET應用程序 19
1.7.2 創(chuàng)建Windows窗體 21
1.7.3 使用Windows Presentation
Foundation(WPF) 21
1.7.4 Windows控件 21
1.7.5 Windows服務 21
1.7.6 Windows Communication
Foundation(WCF) 22
1.8 C#在.NET企業(yè)體系結構
中的作用 22
1.9 小結 23
第2章 C#基礎 25
2.1 引言 25
2.2 第一個C#程序 26
2.2.1 代碼 26
2.2.2 編譯并運行程序 26
2.2.3 詳細介紹 27
2.3 變量 29
2.3.1 變量的初始化 30
2.3.2 變量的作用域 31
2.3.3 常量 33
2.4 預定義數(shù)據類型 34
2.4.1 值類型和引用類型 34
2.4.2 CTS類型 35
2.4.3 預定義的值類型 36
2.4.4 預定義的引用類型 39
2.5 流控制 41
2.5.1 條件語句 41
2.5.2 循環(huán) 45
2.5.3 跳轉語句 49
2.6 枚舉 50
2.7 數(shù)組 52
2.8 命名空間 53
2.8.1 using語句 54
2.8.2 命名空間的別名 55
2.9 Main()方法 55
2.9.1 多個Main()方法 56
2.9.2 給Main()方法傳送參數(shù) 57
2.10 有關編譯C#文件的更多內容 57
2.11 控制臺I/O 59
2.12 使用注釋 61
2.12.1 源文件中的內部注釋 61
2.12.2 XML文檔說明 61
2.13 C#預處理器指令 63
2.13.1 #define和 #undef 64
2.13.2 #if, #elif, #else和#endif 64
2.13.3 #warning和 # error 65
2.13.4 #region和#endregion 66
2.13.5 #line 66
2.13.6 #pragma 66
2.14 C#編程規(guī)則 67
2.14.1 用于標識符的規(guī)則 67
2.14.2 用法約定 68
2.15 小結 73
第3章 對象和類型 75
3.1 類和結構 75
3.2 類成員 76
3.2.1 數(shù)據成員 77
3.2.2 函數(shù)成員 77
3.2.3 只讀字段 90
3.3 結構 91
3.3.1 結構是值類型 93
3.3.2 結構和繼承 94
3.3.3 結構的構造函數(shù) 94
3.4 部分類 95
3.5 靜態(tài)類 96
3.6 Object類 97
3.6.1 System.Object方法 97
3.6.2 ToString()方法 98
3.7 小結 100
第4章 繼承 101
4.1 繼承的類型 101
4.1.1 實現(xiàn)繼承和接口繼承 101
4.1.2 多重繼承 102
4.1.3 結構和類 102
4.2 實現(xiàn)繼承 102
4.2.1 虛方法 103
4.2.2 隱藏方法 104
4.2.3 調用函數(shù)的基類版本 105
4.2.4 抽象類和抽象函數(shù) 106
4.2.5 密封類和密封方法 107
4.2.6 派生類的構造函數(shù) 108
4.3 修飾符 112
4.3.1 可見性修飾符 112
4.3.2 其他修飾符 113
4.4 接口 114
4.4.1 定義和實現(xiàn)接口 115
4.4.2 派生的接口 119
4.5 小結 120
第5章 數(shù)組 121
5.1 簡單數(shù)組 121
5.1.1 數(shù)組的聲明 121
5.1.2 數(shù)組的初始化 121
5.1.3 訪問數(shù)組元素 122
5.1.4 使用引用類型 123
5.2 多維數(shù)組 125
5.3 鋸齒數(shù)組 126
5.4 Array類 127
5.4.1 屬性 127
5.4.2 創(chuàng)建數(shù)組 128
5.4.3 復制數(shù)組 129
5.4.4 排序 130
5.5 數(shù)組和集合接口 132
5.5.1 IEumerable接口 132
5.5.2 ICollection接口 133
5.5.3 IList接口 133
5.6 枚舉 134
5.6.1 IEnumerator接口 134
5.6.2 foreach語句 135
5.6.3 yield語句 135
5.7 小結 140
第6章 運算符和類型強制轉換 141
6.1 運算符 141
6.1.1 運算符的簡化操作 143
6.1.2 三元運算符 144
6.1.3 checked和unchecked
運算符 144
6.1.4 is運算符 145
6.1.5 as運算符 145
6.1.6 sizeof運算符 146
6.1.7 typeof運算符 146
6.1.8 可空類型和運算符 146
6.1.9 空接合運算符 147
6.1.10 運算符的優(yōu)先級 147
6.2 類型的安全性 148
6.2.1 類型轉換 148
6.2.2 裝箱和拆箱 152
6.3 對象的相等比較 153
6.3.1 引用類型的相等比較 153
6.3.2 值類型的相等比較 154
6.4 運算符重載 155
6.4.1 運算符的工作方式 156
6.4.2 運算符重載的示例:
Vector結構 157
6.5 用戶定義的數(shù)據類型轉換 164
6.5.1 執(zhí)行用戶定義的類型轉換 165
6.5.2 多重數(shù)據類型轉換 171
6.6 小結 175
第7章 委托和事件 177
7.1 委托 177
7.1.1 在C#中聲明委托 178
7.1.2 在C#中使用委托 179
7.2 委托推斷 182
7.3 匿名方法 182
7.3.1 簡單的委托示例 184
7.3.2 BubbleSorter示例 186
7.3.3 多播委托 189
7.4 事件 192
7.4.1 從客戶的角度討論事件 193
7.4.2 生成事件 196
7.5 小結 199
第8章 字符串和正則表達式 201
8.1 System.String類 201
8.1.1 創(chuàng)建字符串 203
8.1.2 StringBuilder成員 205
8.1.3 格式化字符串 206
8.2 正則表達式 212
8.2.1 正則表達式概述 212
8.2.2 RegularExpressions
Playaround示例 213
8.2.3 顯示結果 216
8.2.4 匹配、組合和捕獲 217
8.3 小結 219
第9章 泛型 221
9.1 概述 221
9.1.1 性能 222
9.1.2 類型安全 223
9.1.3 二進制代碼的重用 223
9.1.4 代碼的擴展 224
9.1.5 命名約定 224
9.2 創(chuàng)建泛型類 224
9.3 泛型類的特性 229
9.3.1 默認值 230
9.3.2 約束 230
9.3.3 繼承 233
9.3.4 靜態(tài)成員 234
9.4 泛型接口 234
9.5 泛型方法 235
9.6 泛型委托 237
9.6.1 執(zhí)行委托調用的方法 237
9.6.2 對Array類使用泛型委托 239
9.7 Framework的其他泛型類型 242
9.7.1 結構Nullable<T> 242
9.7.2 EventHandler<TEventArgs> 243
9.7.3 ArraySegment<T> 244
9.8 小結 245
第10章 集合 247
10.1 集合接口和類型 247
10.2 列表 249
10.2.1 創(chuàng)建列表 251
10.2.2 只讀集合 260
10.3 隊列 260
10.4 棧 264
10.5 鏈表 266
10.6 有序表 273
10.7 字典 275
10.7.1 鍵的類型 275
10.7.2 字典示例 277
10.7.3 其他字典類 280
10.8 帶多個鍵的字典 281
10.9 位數(shù)組 286
10.9.1 BitArray 286
10.9.2 BitVector32 289
10.10 性能 291
10.11 小結 292
第11章 內存管理和指針 293
11.1 后臺內存管理 293
11.1.1 值數(shù)據類型 293
11.1.2 引用數(shù)據類型 295
11.1.3 垃圾收集 297
11.2 釋放未托管的資源 298
11.2.1 析構函數(shù) 298
11.2.2 IDisposable接口 300
11.2.3 實現(xiàn)IDisposable接口和
析構函數(shù) 301
11.3 不安全的代碼 303
11.3.1 指針 303
11.3.2 指針示例:Pointer
Playaround 312
11.3.3 使用指針優(yōu)化性能 317
11.4 小結 320
第12章 反射 321
12.1 定制特性 322
12.1.1 編寫定制特性 322
12.1.2 定制特性示例:
WhatsNewAttributes 326
12.2 反射 329
12.2.1 System.Type類 329
12.2.2 TypeView示例 331
12.2.3 Assembly類 334
12.2.4 完成WhatsNewAttributes
示例 336
12.3 小結 340
第13章 錯誤和異常 341
13.1 錯誤和異常處理 341
13.1.1 異常類 342
13.1.2 捕獲異常 343
13.1.3 用戶定義的異常類 353
13.2 小結 360
第Ⅱ部分 Visual Studio
第14章 Visual Studio 2005 363
14.1 使用Visual Studio 2005 363
14.1.1 創(chuàng)建項目 368
14.1.2 解決方案和項目 374
14.1.3 Windows應用程序代碼 377
14.1.4 讀取Visual Studio 6
項目 377
14.1.5 項目的瀏覽和編碼 378
14.1.6 生成項目 388
14.1.7 調試 392
14.2 修訂功能 394
14.3 Visual Studio 2005 for
.NET Framework 3.0 396
14.3.1 .NET 3.0的項目類型 397
14.3.2 在Visual Studio中建立
WPF應用程序 398
14.3.3 在Visual Studio中建立
WF應用程序 400
14.4 小結 401
第15章 部署 403
15.1 部署的設計 403
15.2 部署選項 404
15.2.1 Xcopy實用工具 404
15.2.2 Copy Web工具 404
15.2.3 發(fā)布Web站點 404
15.2.4 部署項目 404
15.2.5 ClickOnce 404
15.3 部署的要求 404
15.4 部署.NET運行庫 405
15.5 簡單的部署 406
15.5.1 Xcopy部署 407
15.5.2 Xcopy和Web應用程序 407
15.5.3 Copy Web工具 407
15.5.4 發(fā)布Web站點 407
15.6 Installer項目 408
15.6.1 Windows Installer 409
15.6.2 創(chuàng)建安裝程序 409
15.7 ClickOnce 418
15.7.1 ClickOnce操作 418
15.7.2 發(fā)布應用程序 419
15.7.3 ClickOnce設置 419
15.7.4 應用程序緩存 420
15.7.5 安全性 420
15.7.6 高級選項 421
15.8 小結 426
第Ⅲ部分 基 類 庫
第16章 程序集 429
16.1 程序集的含義 429
16.1.1 DLL Hell的解決方案 430
16.1.2 程序集的特性 430
16.1.3 應用程序域和程序集 431
16.2 程序集的結構 434
16.2.1 程序集的清單 434
16.2.2 命名空間、程序集
和組件 435
16.2.3 私有程序集和共享
程序集 435
16.2.4 查看程序集 436
16.2.5 構建程序集 437
16.3 跨語言支持 441
16.3.1 CTS和CLS 441
16.3.2 語言無關性 442
16.3.3 CLS要求 451
16.4 全局程序集緩存 452
16.4.1 本機圖像生成器 452
16.4.2 全局程序集緩存查看器 453
16.4.3 全局程序集
緩存工具(gacutil.exe) 455
16.5 創(chuàng)建共享程序集 455
16.5.1 共享程序集名 455
16.5.2 創(chuàng)建共享程序集 458
16.6 配置 463
16.6.1 配置類別 463
16.6.2 版本問題 464
16.6.3 配置目錄 472
16.7 小結 474
第17章 跟蹤和事件 477
17.1 跟蹤 477
17.1.1 跟蹤源 478
17.1.2 跟蹤開關 479
17.1.3 跟蹤監(jiān)聽器 480
17.1.4 過濾器 483
17.1.5 斷言 484
17.2 事件日志 485
17.2.1 事件日志體系架構 486
17.2.2 事件日志類 487
17.2.3 創(chuàng)建事件源 488
17.2.4 寫入事件日志 489
17.2.5 資源文件 489
17.3 性能監(jiān)控 494
17.3.1 性能監(jiān)控類 494
17.3.2 性能計數(shù)器的構建 495
17.3.3 添加PerformanceCounter
組件 496
17.3.4 perfmon.exe 498
17.4 小結 499
第18章 線程和同步 501
18.1 概述 501
18.2 異步委托 503
18.2.1 投票 503
18.2.2 等待句柄 504
18.2.3 異步回調 505
18.3 Thread類 506
18.3.1 給線程傳送數(shù)據 508
18.3.2 后臺線程 510
18.3.3 線程的優(yōu)先級 511
18.3.4 控制線程 511
18.4 線程池 512
18.5 線程問題 513
18.5.1 競態(tài)條件 513
18.5.2 死鎖 516
18.6 同步 518
18.6.1 lock語句和線程安全 518
18.6.2 Interlocked 524
18.6.3 Monitor類 525
18.6.4 等待句柄 526
18.6.5 Mutex類 527
18.6.6 Semaphore類 529
18.6.7 Events類 531
18.7 COM單元 533
18.8 BackgroundWorker組件 534
18.8.1 激活取消功能 537
18.8.2 激活進度功能 538
18.9 小結 540
第19章 .NET的安全性 541
19.1 代碼訪問的安全性 541
19.1.1 代碼組 542
19.1.2 代碼訪問權限和權限集 548
19.1.3 策略的級別:Machine、
User和Enterprise 552
19.2 對Framework中安全性
的支持 554
19.2.1 要求權限 555
19.2.2 請求權限 556
19.2.3 隱式的權限 559
19.2.4 拒絕權限 560
19.2.5 斷言權限 561
19.2.6 創(chuàng)建代碼訪問權限 562
19.2.7 聲明的安全性 563
19.3 安全策略的管理 564
19.3.1 安全配置文件 564
19.3.2 代碼組和權限的管理 567
19.3.3 安全性的啟用和禁用 568
19.3.4 重置安全策略 568
19.3.5 代碼組的創(chuàng)建 568
19.3.6 代碼組的刪除 569
19.3.7 代碼組權限的更改 569
19.3.8 權限集的創(chuàng)建和應用 570
19.3.9 使用強名發(fā)布代碼 572
19.3.10 使用證書發(fā)布代碼 574
19.3.11 區(qū)域的管理 580
19.4 基于角色的安全性 582
19.4.1 Principal 582
19.4.2 Windows Principal 583
19.4.3 角色 585
19.4.4 聲明基于角色的安全性 585
19.5 小結 586
第20章 本地化 587
20.1 System.Globalization
命名空間 587
20.1.1 Unicode問題 588
20.1.2 文化和區(qū)域 588
20.1.3 使用文化 593
20.1.4 排序 597
20.2 資源 599
20.2.1 創(chuàng)建資源文件 599
20.2.2 資源文件生成器 599
20.2.3 ResourceWriter 600
20.2.4 使用資源文件 601
20.2.5 System.Resources
命名空間 605
20.3 使用Visual Studio的
本地化示例 606
20.3.1 編程修改文化 611
20.3.2 使用定制資源文件 612
20.3.3 資源的自動回退 613
20.3.4 外包翻譯 614
20.4 用ASP.NET本地化 615
20.5 定制的資源讀取器 616
20.5.1 創(chuàng)建DatabaseResource-
Reader類 617
20.5.2 創(chuàng)建DatabaseResource-
Set類 619
20.5.3 創(chuàng)建DatabaseResource-
Manager類 619
20.5.4 DatabaseResourceReader
的客戶應用程序 620
20.6 創(chuàng)建定制文化 621
20.7 小結 622
第21章 事務處理 623
21.1 概述 623
21.1.1 事務處理階段 624
21.1.2 ACID屬性 625
21.2 數(shù)據庫和類 625
21.3 傳統(tǒng)的事務處理 627
21.3.1 ADO.NET事務處理 628
21.3.2 System.Enterprise-
Services 629
21.4 System.Transactions 630
21.4.1 可提交的事務處理 632
21.4.2 事務處理的升級 634
21.4.3 依賴的事務處理 636
21.4.4 環(huán)境事務處理 638
21.4.5 嵌套的作用域和
環(huán)境事務處理 640
21.5 隔離級別 641
21.6 定制資源管理器 643
21.7 Windows Vista的事務處理 650
21.8 小結 653
第22章 Windows服務 655
22.1 Windows服務 655
22.2 Windows服務的體系結構 656
22.2.1 服務程序 657
22.2.2 服務控制程序 658
22.2.3 服務配置程序 658
22.3 System.ServiceProcess
命名空間 658
22.4 創(chuàng)建Windows服務 659
22.4.1 使用套接字的類庫 659
22.4.2 TcpClient示例 663
22.4.3 Windows服務項目 665
22.4.4 線程和服務 671
22.4.5 服務的安裝 671
22.4.6 安裝程序 671
22.5 服務的監(jiān)視和控制 676
22.5.1 MMC計算機管理 676
22.5.2 net.exe 677
22.5.3 sc.exe 678
22.5.4 Visual Studio Server-
Explorer 679
22.5.5 ServiceController類 679
22.6 故障排除 686
22.6.1 交互式服務 687
22.6.2 事件日志 688
22.7 電源事件 688
22.8 小結 689
第23章 COM的互操作性 691
23.1 .NET和COM 691
23.1.1 元數(shù)據 692
23.1.2 釋放內存 692
23.1.3 接口 693
23.1.4 方法綁定 694
23.1.5 數(shù)據類型 695
23.1.6 注冊 695
23.1.7 線程 695
23.1.8 錯誤處理 697
23.1.9 事件處理 697
23.2 編組 698
23.3 在.NET客戶程序中使用
COM組件 699
23.3.1 創(chuàng)建COM組件 699
23.3.2 創(chuàng)建Runtime Callable-
Wrapper 704
23.3.3 使用RCW 705
23.3.4 可交互操作的主程序集 707
23.3.5 線程問題 707
23.3.6 添加連接點 708
23.3.7 在Windows窗體中使用
ActiveX控件 710
23.3.8 在ASP.NET中使用
COM對象 714
23.4 在COM客戶程序中使用
.NET組件 714
23.4.1 COM Callable Wrapper 714
23.4.2 創(chuàng)建.NET組件 715
23.4.3 創(chuàng)建類型庫 716
23.4.4 COM互操作特性 718
23.4.5 COM注冊 721
23.4.6 創(chuàng)建COM客戶程序 721
23.4.7 添加連接點 723
23.4.8 用sink對象創(chuàng)建
客戶程序 724
23.4.9 在Internet Explorer中
運行Windows窗體控件 725
23.5 平臺調用 725
23.6 小結 728
第Ⅳ部分 數(shù) 據
第24章 文件和注冊表操作 731
24.1 管理文件系統(tǒng) 731
24.1.1 表示文件和文件夾的
.NET類 732
24.1.2 Path類 735
24.1.3 示例:文件瀏覽器 735
24.2 移動、復制和刪除文件 740
24.2.1 FilePropertiesAnd-
Movement示例 741
24.2.2 示例FilePropertiesAnd-
Movement的代碼 742
24.3 讀寫文件 745
24.3.1 讀取文件 745
24.3.2 寫入文件 747
24.3.3 流 748
24.3.4 緩存的流 750
24.3.5 使用FileStream類
讀寫二進制文件 750
24.3.6 讀寫文本文件 755
24.4 讀取驅動器信息 761
24.5 文件的安全性 763
24.5.1 從文件中讀取ACL 764
24.5.2 從目錄中讀取ACL 765
24.5.3 添加和刪除文件中的
ACL項 766
24.6 讀寫注冊表 768
24.6.1 注冊表 768
24.6.2 .NET注冊表類 770
24.6.3 SelfPlacingWindow示例 773
24.7 讀寫獨立存儲器 778
24.8 小結 783
第25章 .NET數(shù)據訪問 785
25.1 ADO.NET概述 785
25.1.1 命名空間 786
25.1.2 共享類 786
25.1.3 數(shù)據庫特定的類 787
25.2 使用數(shù)據庫連接 788
25.2.1 管理連接字符串 789
25.2.2 高效地使用連接 791
25.2.3 事務處理 793
25.3 命令 794
25.3.1 執(zhí)行命令 795
25.3.2 調用存儲過程 799
25.4 快速數(shù)據訪問:數(shù)據
讀取器 802
25.5 管理數(shù)據和關系:
DataSet類 805
25.5.1 數(shù)據表 805
25.5.2 數(shù)據列 806
25.5.3 數(shù)據關系 811
25.5.4 數(shù)據約束 813
25.6 XML模式 815
25.7 填充數(shù)據集 822
25.7.1 用數(shù)據適配器來填充
DataSet 822
25.7.2 從XML中給數(shù)據集
填充數(shù)據 823
25.8 保存對數(shù)據集的修改 824
25.8.1 通過數(shù)據適配器
進行更新 824
25.8.2 寫入XML輸出結果 826
25.9 使用ADO.NET 828
25.9.1 分層開發(fā) 828
25.9.2 生成SQL Server的鍵 829
25.9.3 命名約定 831
25.10 小結 833
第26章 處理XML 835
26.1 .NET支持的XML標準 836
26.2 System.Xml命名空間 836
26.3 在.NET中使用MSXML 837
26.4 使用System.Xml類 839
26.5 讀寫流格式的XML 839
26.5.1 使用 XmlReader類 840
26.5.2 使用XmlReader類
進行驗證 843
26.5.3 使用XmlWriter類 845
26.6 在.NET中使用DOM 847
26.7 使用XPathNavigator 852
26.7.1 System.Xml.XPath
命名空間 853
26.7.2 System.Xml.Xsl
命名空間 858
26.8 XML和ADO.NET 863
26.8.1 將ADO.NET數(shù)據轉換為
XML文檔 863
26.8.2 把XML文檔轉換為
ADO.NET數(shù)據 870
26.8.3 讀寫DiffGram 872
26.9 在XML中串行化對象 875
26.10 小結 884
第27章 .NET編程和SQL
Server 2005 885
27.1 .NET運行庫的主機 885
27.2 Microsoft.SqlServer.Server 887
27.3 用戶定義的類型 888
27.3.1 創(chuàng)建UDT 888
27.3.2 使用UDT 893
27.3.3 在客戶端代碼中
使用UDT 894
27.4 用戶定義的合計函數(shù) 895
27.4.1 創(chuàng)建用戶定義的
合計函數(shù) 895
27.4.2 使用用戶定義的
合計函數(shù) 897
27.5 存儲過程 897
27.5.1 創(chuàng)建存儲過程 898
27.5.2 使用存儲過程 899
27.6 用戶定義的函數(shù) 900
27.6.1 創(chuàng)建用戶定義的函數(shù) 900
27.6.2 使用用戶定義的函數(shù) 901
27.7 觸發(fā)器 901
27.7.1 創(chuàng)建觸發(fā)器 902
27.7.2 使用觸發(fā)器 903
27.8 XML數(shù)據類型 903
27.8.1 包含XML數(shù)據的表 904
27.8.2 數(shù)據的查詢 906
27.8.3 XML數(shù)據修改語言
(XML DML) 908
27.8.4 XML索引 909
27.8.5 強類型化的XML 910
27.9 小結 911
下 卷
第Ⅴ部分 顯 示
第28章 Windows窗體 915
28.1 創(chuàng)建Windows窗體
應用程序 915
28.2 Control類 921
28.2.1 大小和位置 922
28.2.2 外觀 923
28.2.3 用戶交互操作 924
28.2.4 Windows功能 925
28.2.5 雜項功能 925
28.3 標準控件和組件 925
28.3.1 Button控件 926
28.3.2 CheckBox控件 927
28.3.3 RadioButton控件 927
28.3.4 ComboBox控件、
ListBox控件和
CheckedListBox控件 928
28.3.5 DateTimePicker控件 930
28.3.6 ErrorProvider組件 930
28.3.7 HelpProvider組件 932
28.3.8 ImageList組件 932
28.3.9 Label控件 932
28.3.10 ListView控件 933
28.3.11 PictureBox控件 935
28.3.12 ProgressBar控件 935
28.3.13 TextBox控件、
RichTextBox控件與
MaskedTextBox控件 935
28.3.14 Panel控件 937
28.3.15 FlowLayoutPanel和
TableLayoutPanel控件 937
28.3.16 SplitContainer控件 938
28.3.17 TabControl控件和
TabPages控件 938
28.3.18 ToolStrip控件 938
28.3.19 MenuStrip控件 941
28.3.20 ContextMenuStrip控件 942
28.3.21 ToolStripMenuItem
控件 942
28.3.22 ToolStripManager類 942
28.3.23 ToolStripContainer
控件 942
28.4 窗體 943
28.4.1 Form類 943
28.4.2 多文檔界面 948
28.4.3 定制控件 949
28.5 小結 960
第29章 查看.NET數(shù)據 961
29.1 DataGridView控件 961
29.1.1 顯示列表數(shù)據 961
29.1.2 數(shù)據源 963
29.2 DataGridView類的
29.3 數(shù)據綁定 974
29.3.1 簡單的綁定 975
29.3.2 數(shù)據綁定對象 975
29.4 Visual Studio .NET 和
數(shù)據訪問 979
29.4.1 創(chuàng)建一個連接 980
29.4.2 選擇數(shù)據 983
29.4.3 更新數(shù)據源 983
29.4.4 其他常見的要求 984
29.5 小結 992
第30章 使用GDI+繪圖 993
30.1 理解繪圖規(guī)則 993
30.1.1 GDI和GDI+ 994
30.1.2 繪制圖形 995
30.1.3 使用OnPaint()繪制圖形 998
30.1.4 使用剪切區(qū)域 999
30.2 測量坐標和區(qū)域 1001
30.2.1 Point和PointF結構 1001
30.2.2 Size和SizeF結構 1003
30.2.3 Rectangle和RectangleF
結構 1004
30.2.4 Region 1005
30.3 調試須知 1006
30.4 繪制可滾動的窗口 1007
30.5 世界、頁面和設備坐標 1011
30.6 顏色 1012
30.6.1 紅綠藍(RGB)值 1012
30.6.2 命名的顏色 1013
30.6.3 圖形顯示模式和
安全的調色板 1014
30.6.4 安全調色板 1014
30.7 畫筆和鋼筆 1015
30.7.1 畫筆 1015
30.7.2 鋼筆 1016
30.8 繪制圖形和線條 1016
30.9 顯示圖像 1019
30.10 處理圖像時所涉及到
的問題 1021
30.11 繪制文本 1022
30.12 簡單的文本示例 1022
30.13 字體和字體系列 1023
30.14 示例:枚舉字體系列 1025
30.15 編輯文本文檔:
CapsEditor示例 1027
30.15.1 Invalidate()方法 1031
30.15.2 計算項和文檔的
大小 1032
30.15.3 OnPaint() 1034
30.15.4 坐標轉換 1035
30.15.5 響應用戶的輸入 1036
30.16 打印 1039
30.17 小結 1045
第31章 Windows Presentation-
Foundation 1047
31.1 概述 1047
31.1.1 XAML 1048
31.1.2 設計人員和開發(fā)人員
的合作 1052
31.1.3 類層次結構 1053
31.1.4 命名空間 1055
31.2 形狀 1056
31.3 控件 1059
31.3.1 簡單控件 1059
31.3.2 內容控件 1060
31.3.3 有標題的內容控件 1062
31.3.4 項控件 1063
31.3.5 帶標題的項控件 1063
31.4 布局 1063
31.4.1 StackPanel 1064
31.4.2 WrapPanel 1064
31.4.3 Canvas 1065
31.4.4 DockPanel 1066
31.4.5 Grid 1067
31.5 事件處理 1068
31.6 命令 1069
31.7 樣式、模板和資源 1072
31.7.1 樣式 1073
31.7.2 資源 1074
31.7.3 創(chuàng)建列表框的樣式 1087
31.8 動畫 1093
31.9 數(shù)據綁定 1099
31.9.1 概述 1099
31.9.2 用XAML綁定 1100
13.9.3 簡單對象的綁定 1102
31.9.4 對象數(shù)據提供程序 1105
31.9.5 列表綁定 1107
31.9.6 綁定到XML上 1114
31.10 Windows窗體集成 1117
31.10.1 Windows窗體中的
WPF控件 1117
31.10.2 WPF應用程序中的
Windows窗體控件 1119
31.11 小結 1121
第32章 ASP.NET頁面 1123
32.1 ASP.NET概述 1123
32.2 ASP.NET Web窗體 1125
32.2.1 ASP.NET代碼模型 1128
32.2.2 ASP.NET服務器控件 1129
32.3 ADO.NET和數(shù)據綁定 1143
32.3.1 更新會議登記應用程序 1144
32.3.2 數(shù)據綁定的更多內容 1151
32.4 應用程序配置 1156
32.5 小結 1158
第33章 ASP.NET開發(fā) 1159
33.1 定制控件 1159
33.1.1 用戶控件 1160
33.1.2 PCSDemoSite中的
用戶控件 1167
33.1.3 定制控件 1167
33.2 Master頁面 1171
33.2.1 在Web頁面中訪問
Master頁面 1173
33.2.2 PCSDemoSite中的
Master頁面 1173
33.3 站點導航 1175
33.4 安全性 1178
33.4.1 使用安全向導添加
Forms身份驗證功能 1179
33.4.2 實現(xiàn)登錄系統(tǒng) 1182
33.4.3 Web 登錄服務器控件 1183
33.4.4 保護目錄 1183
33.4.5 PCSDemoSite中的
安全性 1184
33.5 主題 1186
33.5.1 把主題應用于頁面 1186
33.5.2 定義主題 1187
33.5.3 PCSDemoSite中的
主題 1188
33.6 Web Parts 1191
33.6.1 Web Parts應用程序組件 1191
33.6.2 Web Parts示例 1193
33.7 小結 1199
第34章 ASP.NET AJAX 1201
34.1 Ajax的概念 1202
34.2 ASP.NET AJAX 1203
34.2.1 核心功能 1204
34.2.2 ASP.NET AJAX Control
Toolkit 1206
34.2.3 ASP.NET 2.0 AJAX
Futures CTP 1207
34.3 支持ASP.NET AJAX
的網站 1207
34.3.1 支持AJAX的
網站示例 1207
34.3.2 支持ASP.NET AJAX
的網站配置 1211
34.3.3 添加ASP.NET AJAX
功能 1215
34.3.4 使用AJAX庫 1222
34.4 小結 1231
第Ⅵ部分 通 信
第35章 訪問Internet 1235
35.1 WebClient類 1235
35.1.1 下載文件 1236
35.1.2 基本的Web客戶示例 1236
35.1.3 上傳文件 1237
35.2 WebRequest類和
WebResponse類 1238
35.3 把輸出結果顯示為
HTML頁面 1241
35.3.1 在應用程序中進行
簡單的Web瀏覽 1241
35.3.2 啟動Internet Explorer
實例 1243
35.3.3 給應用程序提供更多
的IE類型特性 1244
35.3.4 使用WebBrowser
控件打印 1249
35.3.5 顯示請求頁面的代碼 1250
35.3.6 WebRequest和
WebResponse的
層次結構 1251
35.4 實用工具類 1252
35.4.1 URI 1252
35.4.2 IP地址和DNS名稱 1253
35.5 較低層的協(xié)議 1255
35.6 小結 1264
第36章 Web服務和ASP.NET 1267
36.1 SOAP 1267
36.2 WSDL 1269
36.3 Web服務 1270
36.3.1 創(chuàng)建Web服務 1270
36.3.2 使用Web服務 1274
36.4 擴充會議登記示例 1276
36.4.1 會議登記Web服務 1276
36.4.2 會議登記客戶程序 1281
36.5 使用SOAP標題交換數(shù)據 1285
36.6 小結 1290
第37章 .NET Remoting 1291
37.1 .NET Remoting的含義 1291
CLR Object Remoting 1293
37.2 .NET Remoting概述 1293
37.3 環(huán)境 1296
37.3.1 激活 1296
37.3.2 特性和屬性 1297
37.3.3 環(huán)境之間的通信 1297
37.4 遠程對象、客戶機和
服務器 1297
37.4.1 遠程對象 1298
37.4.2 簡單的服務器 1298
37.4.3 簡單的客戶機 1299
37.5 .NET Remoting體系結構 1301
37.5.1 信道 1301
37.5.2 格式標識符 1305
37.5.3 ChannelServices和
RemotingConfiguration 1306
37.5.4 對象的激活 1307
37.5.5 消息接收器 1311
37.5.6 在遠程方法中
傳遞對象 1311
37.5.7 生存期管理 1316
37.6 .NET Remoting的
其他特性 1319
37.6.1 配置文件 1319
37.6.2 利用ASP.NET駐留
遠程服務器 1328
37.6.3 類、接口和Soapsuds 1329
37.6.4 異步遠程調用 1330
37.6.5 .NET Remoting的
安全性 1332
37.6.6 遠程調用和事件 1333
37.6.7 調用環(huán)境 1339
37.7 小結 1341
第38章 Enterprise Services 1343
38.1 概述 1343
38.1.1 Enterprise Services
簡史 1344
38.1.2 使用Enterprise Services
的場合 1344
38.1.3 環(huán)境 1345
38.1.4 自動的事務處理 1345
38.1.5 分布式事務處理 1346
38.1.6 對象池 1346
38.1.7 基于角色的安全性 1346
38.1.8 排隊的組件 1346
38.1.9 松散藕合的事件 1347
38.2 創(chuàng)建簡單的COM+
應用程序 1347
38.2.1 類ServicedComponent 1347
38.2.2 標記程序集 1348
38.2.3 程序集的屬性 1348
38.2.4 創(chuàng)建組件 1349
38.3 部署 1350
38.3.1 自動部署 1350
38.3.2 手工部署 1351
38.3.3 創(chuàng)建安裝軟件包 1351
38.4 Component Services
瀏覽器 1352
38.5 客戶應用程序 1354
38.6 事務處理 1355
38.6.1 事務處理的屬性 1355
38.6.2 事務處理的結果 1356
38.7 示例應用程序 1356
38.7.1 實體類 1357
38.7.2 OrderControl組件 1360
38.7.3 OrderData組件 1361
38.7.4 OrderLineData組件 1364
38.7.5 客戶應用程序 1365
38.8 集成WCF和Enterprise
Services 1366
38.8.1 WCF服務Façade 1366
38.8.2 客戶程序 1369
38.9 小結 1370
第39章 消息隊列 1371
39.1 概述 1371
39.1.1 使用Message Queuing
的場合 1372
39.1.2 Message Queuing特性 1373
39.2 Message Queuing產品 1373
39.3 Message Queuing結構 1374
39.3.1 消息 1374
39.3.2 消息隊列 1375
39.4 Message Queuing
管理工具 1375
39.4.1 創(chuàng)建消息隊列 1376
39.4.2 消息隊列屬性 1376
39.5 Message Queuing的
編程實現(xiàn) 1377
39.5.1 創(chuàng)建消息隊列 1377
39.5.2 查找隊列 1378
39.5.3 打開已知的隊列 1379
39.5.4 發(fā)送消息 1380
39.5.5 接收消息 1383
39.6 課程訂單應用程序 1385
39.6.1 課程訂單類庫 1385
39.6.2 課程訂單消息
發(fā)送程序 1388
39.6.3 發(fā)送優(yōu)先級和
可恢復的消息 1389
39.6.4 課程訂單消息
接收程序 1390
39.7 接收結果 1393
39.7.1 確認隊列 1393
39.7.2 響應隊列 1394
39.8 事務隊列 1395
39.9 消息隊列的安裝 1396
39.10 小結 1396
第40章 Windows Communication
Foundation 1397
40.1 概述 1397
40.2 簡單的服務和客戶 1398
40.2.1 服務合同 1401
40.2.2 服務的實現(xiàn) 1402
40.2.3 服務主機 1403
40.2.4 客戶程序 1405
40.3 合同 1408
40.3.1 服務合同 1408
40.3.2 數(shù)據合同 1409
40.3.3 消息合同 1410
40.4 服務的實現(xiàn) 1411
40.5 綁定 1416
40.6 主機 1418
40.7 客戶程序 1419
40.8 雙向通信 1421
40.9 小結 1423
第41章 Windows Workflow
Foundation 1425
41.1 Hello World示例 1425
41.2 活動 1427
41.2.1 IfElseActivity 1427
41.2.2 ParallelActivity 1429
41.2.3 CallExternalMethod-
Activity 1430
41.2.4 DelayActivity 1431
41.2.5 ListenActivity 1431
41.2.6 活動的執(zhí)行模型 1432
41.3 定制的活動 1433
41.3.1 活動的有效性驗證 1435
41.3.2 主題和設計器 1436
41.3.3 ActivityToolboxItem
和圖標 1438
41.3.4 定制的復合活動 1440
41.4 工作流 1447
41.4.1 系列工作流 1447
41.4.2 狀態(tài)機工作流 1447
41.4.3 給工作流傳送參數(shù) 1450
41.4.4 從工作流中返回結果 1450
41.4.5 將參數(shù)綁定到活動上 1451
41.5 工作流運行庫 1452
41.6 工作流服務 1453
41.6.1 持續(xù)服務 1455
41.6.2 跟蹤服務 1456
41.6.3 定制服務 1458
41.7 保存工作流 1459
41.8 工作流設計器 1461
41.9 小結 1461
41.10 下載信息 1461
第42章 目錄服務 1463
42.1 Active Directory的
體系結構 1464
42.1.1 特性 1464
42.1.2 Active Directory的
概念 1464
42.1.3 Active Directory
數(shù)據的特性 1468
42.1.4 模式 1468
42.2 Active Directory的
管理工具 1469
42.2.1 Active Directory Users
and Computers工具 1470
42.2.2 ADSI Edit工具 1471
42.3 Active Directory編程 1472
42.3.1 System.DirectoryServices
命名空間中的類 1473
42.3.2 綁定 1473
42.3.3 獲取目錄項 1477
42.3.4 對象集合 1478
42.3.5 緩存 1480
42.3.6 創(chuàng)建新對象 1480
42.3.7 更新目錄項 1481
42.3.8 訪問內部的ADSI
對象 1482
42.3.9 在Active Directory
中搜索 1483
42.4 搜索用戶對象 1486
42.4.1 用戶界面 1486
42.4.2 獲取模式命名環(huán)境 1487
42.4.3 獲取User類的屬性名 1488
42.4.4 搜索用戶對象 1490
42.5 DSML 1491
42.5.1 命名空間System.-
DirectoryServices.-
Protocols中的類 1492
42.5.2 用DSML搜索Active-
Directory對象 1492
42.6 小結 1494
第Ⅶ部分 其 他 信 息
第43章 C#、Visual Basic和
C++/CLI 1497
43.1 命名空間 1498
43.2 定義類型 1499
43.2.1 引用類型 1499
43.2.2 值類型 1500
43.2.3 接口 1501
43.2.4 枚舉 1502
43.3 方法 1503
43.3.1 方法的參數(shù)和
返回類型 1503
43.3.2 參數(shù)的修飾符 1504
43.3.3 構造函數(shù) 1505
43.3.4 屬性 1507
43.4 靜態(tài)成員 1508
43.5 數(shù)組 1509
43.6 控制語句 1510
43.6.1 if語句 1510
43.6.2 條件操作符 1510
43.6.3 switch語句 1511
43.7 循環(huán) 1512
43.7.1 for語句 1512
43.7.2 while和do..while
語句 1513
43.7.3 foreach語句 1514
43.8 異常處理 1514
43.9 繼承 1516
43.9.1 訪問修飾符 1516
43.9.2 關鍵字 1516
43.10 資源管理 1518
43.10.1 IDisposable接口
的實現(xiàn) 1518
43.10.2 using語句 1519
43.10.3 重寫Finalize() 1519
43.11 委托 1521
43.12 事件 1522
43.13 泛型 1524
43.14 C++/CLI混合內置代碼
和托管代碼 1526
43.15 小結 1527
第44章 Windows Vista 1529
44.1 Vista Bridge 1529
44.2 用戶賬戶控制 1530
44.2.1 需要管理權限的
應用程序 1530
44.2.2 保護圖標 1532
44.3 目錄結構 1533
44.4 新控件和對話框 1535
44.4.1 命令鏈接 1535
44.4.2 任務對話框 1536
44.4.3 文件對話框 1539
44.5 搜索 1541
44.5.1 OLE DB提供程序 1543
44.5.2 高級查詢語法 1546
44.6 小結 1548
第45章 Language Integrated
Query 1549
45.1 傳統(tǒng)的查詢 1549
45.1.1 對象列表中的查詢 1550
45.1.2 數(shù)據庫查詢 1553
45.1.3 XML 1554
45.2 LINQ查詢 1557
45.2.1 對象列表 1557
45.2.2 關系數(shù)據 1557
45.2.3 XML 1559
45.3 查詢表達式 1560
45.4 擴展方法 1561
45.5 標準的查詢操作符 1562
45.6 λ表達式 1567
45.7 推遲查詢的執(zhí)行 1568
45.8 表達式樹 1570
45.9 類型推斷 1571
45.10 對象和集合初始化器 1571
45.11 匿名類型 1573
45.12 小結 1573