第一部分 C#與.NET平颱
第1章 .NET之道 2
1.1 .NET之前的世界 2
1.2 .NET解決方案 5
1.3 .NET平颱構造塊(CLR、CTS和CLS)
簡介 5
1.4 其他支持.NET的編程語言 7
1.5 .NET程序集概覽 9
1.6 CTS 14
1.7 CLS 17
1.8 CLR 18
1.9 程序集/命名空間/類型的區彆 19
1.10 使用ildasm.exe探索程序集 24
1.11 使用Reflector來查看程序集 26
1.12 部署.NET運行庫 27
1.13 .NET的平颱無關性 27
1.14 小結 28
第2章 構建C#應用程序 30
2.1 .NET Framework 4 SDK的作用 30
2.2 用csc.exe構建C#應用程序 31
2.3 使用Notepad++構建.NET應用程序 36
2.4 使用SharpDevelop構建.NET應用程序 36
2.5 使用Visual C# 2010 Express構建.NET
應用程序 38
2.6 使用Visual Studio 2010構建.NET應用
程序 40
2.7 小結 50
第二部分 C#核心編程結構
第3章 C#核心編程結構Ⅰ 52
3.1 一個簡單的C#程序 52
3.2 有趣的題外話:System.Environment類的其他成員 57
3.3 System.Console類 58
3.4 係統數據類型和C#簡化符號 62
3.5 使用字符串數據 70
3.6 窄化和寬化數據類型轉換 76
3.7 隱式類型本地變量 81
3.8 C#迭代結構 84
3.9 條件結構和關係/相等操作符 86
3.10 小結 89
第4章 C#核心編程結構Ⅱ 90
4.1 方法和參數修飾符 90
4.2 C#中的數組操作 99
4.3 枚舉類型 105
4.4 結構類型 109
4.5 值類型和引用類型 112
4.6 C#可空類型 118
4.7 小結 121
第5章 定義封裝的類類型 122
5.1 C#類類型 122
5.2 構造函數 125
5.3 this關鍵字的作用 128
5.4 static關鍵字 133
5.5 定義OOP的支柱 139
5.6 C#訪問修飾符 142
5.7 第一個支柱:C#的封裝服務 144
5.8 自動屬性 154
5.9 對象初始化器語法 157
5.10 常量數據 160
5.11 分部類型 162
5.12 小結 163
第6章 繼承和多態 164
6.1 繼承的基本機製 164
6.2 迴顧Visual Studio類關係圖 168
6.3 OOP的第二個支柱:繼承 169
6.4 包含/委托編程 174
6.5 OOP的第三個支柱:C#的多態支持 176
6.6 基類/派生類的轉換規則 187
6.7 超級父類:System.Object 189
6.8 小結 195
第7章 結構化異常處理 196
7.1 錯誤、bug與異常 196
7.2 .NET異常處理的作用 197
7.3 最簡單的例子 199
7.4 配置異常的狀態 202
7.5 係統級異常(System.System-Exception) 206
7.6 應用程序級異常(System.Applica-tionException) 207
7.7 處理多個異常 210
7.8 誰在引發什麼異常 215
7.9 未處理異常的後果 215
7.10 使用Visual Studio調試未處理的異常 216
7.11 損壞狀態異常簡介 217
7.12 小結 218
第8章 對象的生命周期 219
8.1 類、對象和引用 219
8.2 對象生命周期的基礎 220
8.3 應用程序根的作用 223
8.4 對象的代 224
8.5 .NET 1.0 至.NET 3.5的並發垃圾迴收 225
8.6 .NET 4下的後颱垃圾迴收 225
8.7 System.GC類型 225
8.8 構建可終結對象 229
8.9 構建可處置對象 231
8.10 構建可終結類型和可處置類型 234
8.11 延遲對象實例化 237
8.12 小結 240
第三部分 高級C#編程結構
第9章 接口 242
9.1 接口類型 242
9.2 定義自定義接口 245
9.3 實現接口 247
9.4 在對象級彆調用接口成員 248
9.5 接口作為參數 250
9.6 接口作為返迴值 252
9.7 接口類型數組 253
9.8 使用Visual Studio 2010實現接口 253
9.9 通過顯式接口實現解決命名衝突 254
9.10 設計接口層次結構 257
9.11 構建可枚舉類型(IEnumerable和IEnumerator) 260
9.12 構建可剋隆的對象(ICloneable) 265
9.13 構建可比較的對象(IComparable) 269
9.14 小結 273
第10章 泛型 274
10.1 非泛型集閤 274
10.2 泛型類型參數的作用 281
10.3 System.Collections.Generic命名空間 285
10.4 創建自定義泛型方法 292
10.5 創建自定義泛型結構和類 294
10.6 類型參數的約束 297
10.7 小結 300
第11章 委托、事件和Lambda 301
11.1 .NET委托類型 301
11.2 在C#中定義委托類型 302
11.3 System.MulticastDelegate與System.Delegate基類 304
11.4 最簡單的委托示例 305
11.5 使用委托發送對象狀態通知 307
11.6 方法組轉換語法 313
11.7 委托協變 314
11.8 泛型委托 316
11.9 C#事件 318
11.10 C#匿名方法 325
11.11 Lambda錶達式 328
11.12 小結 333
第12章 高級C#語言特性 335
12.1 索引器方法 335
12.2 操作符重載 339
12.3 自定義類型轉換 347
12.4 擴展方法 352
12.5 分部方法 360
12.6 匿名類型 362
12.7 指針類型 367
12.8 小結 373
第13章 LINQ to Object 374
13.1 LINQ特有的編程結構 374
13.2 LINQ的作用 377
13.3 將LINQ查詢應用於原始數組 379
13.4 返迴LINQ查詢的結果 385
13.5 將LINQ查詢應用到集閤對象 387
13.6 C#LINQ查詢操作符 389
13.7 LINQ查詢語句的內部錶示 396
13.8 小結 400
第四部分 用.NET程序集編程
第14章 .NET程序集入門 402
14.1 定義自定義命名空間 402
14.2 .NET程序集的作用 407
14.3 .NET程序集的格式 409
14.4 構建和使用單文件程序集 412
14.5 構建和使用多文件程序集 421
14.6 私有程序集 423
14.7 共享程序集 427
14.8 使用共享程序集 433
14.9 配置共享程序集 435
14.10 發行者策略程序集 439
14.11 <codeBase>元素 440
14.12 System.Configuration命名空間 441
14.13 小結 442
第15章 類型反射、晚期綁定和基於特性的編程 443
15.1 類型元數據的必要性 443
15.2 反射 447
15.3 構建自定義的元數據查看器 450
15.4 動態加載程序集 454
15.5 反射共享程序集 457
15.6 晚期綁定 458
15.7 .NET特性的作用 461
15.8 構建自定義特性 465
15.9 程序集級彆(和模塊級彆)特性 467
15.10 使用早期綁定反射特性 469
15.11 使用晚期綁定反射特性 470
15.12 反射、晚期綁定和自定義特性的使用背景 471
15.13 構建可擴展的應用程序 472
15.14 小結 477
第16章 進程、應用程序域和對象上下文 478
16.1 Windows進程的作用 478
16.2 .NET平颱下與進程進行交互 480
16.3 .NET應用程序域 488
16.4 與默認應用程序域進行交互 489
16.5 創建新的應用程序域 492
16.6 對象上下文邊界 495
16.7 進程、應用程序域和上下文小結 498
16.8 小結 499
第17章 CIL和動態程序集的作用 500
17.1 學習CIL語法的原因 500
17.2 CIL指令、特性和操作碼 501
17.3 入棧和齣棧:CIL基於棧的本質 502
17.4 正反嚮工程 504
17.5 CIL指令和特性 510
17.6 .NET基礎類庫、C#和CIL數據類型的映射 515
17.7 在CIL中定義類型成員 516
17.8 剖析CIL操作碼 518
17.9 使用CIL構建.NET程序集 522
17.10 動態程序集 526
17.11 小結 534
第18章 動態類型和動態語言運行時 535
18.1 dynamic關鍵字的作用 535
18.2 DLR的作用 540
18.3 使用動態類型簡化後期綁定調用 542
18.4 使用動態數據簡化COM互操作 544
18.5 使用C# 2010的特性進行COM互操作 548
18.6 小結 552
第五部分 .NET基礎類庫
第19章 構建多綫程應用程序 554
19.1 進程、應用程序域、上下文及綫程之間的關係 554
19.2 .NET委托的簡短迴顧 556
19.3 委托的異步性 557
19.4 異步調用方法 559
19.5 System.Threading命名空間 564
19.6 System.Threading.Thread類 564
19.7 以編程方式創建次綫程 567
19.8 並發問題 572
19.9 使用Timer Callback編程 578
19.10 CLR綫程池 579
19.11 .NET平颱下的並行編程 581
19.12 並行LINQ查詢(PLINQ) 588
19.13 小結 590
第20章 文件輸入輸齣和對象序列化 591
20.1 研究System.IO命名空間 591
20.2 Directory(Info)和File(Info)類型 592
20.3 使用DirectoryInfo類型 593
20.4 使用Directory類型 596
20.5 使用DriveInfo類類型 597
20.6 使用FileInfo類 598
20.7 使用File類型 601
20.8 Stream抽象類 603
20.9 使用StreamWriter和StreamReader類型 605
20.10 使用StringWriter和StringReader類型 608
20.11 使用BinaryWriter和Binary-Reader 609
20.12 以編程方式“觀察”文件 610
20.13 對象序列化 612
20.14 為序列化配置對象 614
20.15 選擇序列化格式化程序 616
20.16 使用BinaryFormatter序列化對象 618
20.17 使用SoapFormatter序列化對象 620
20.18 使用XmlSerializer序列化對象 621
20.19 序列化對象集閤 623
20.20 自定義Soap/Binary序列化過程 624
20.21 小結 628
第21章 ADO.NET之一:連接層 630
21.1 ADO.NET的宏觀定義 630
21.2 ADO.NET數據提供程序 632
21.3 其他的ADO.NET命名空間 634
21.4 System.Data命名空間的類型 635
21.5 使用接口的抽象數據提供程序 639
21.6 創建AutoLot數據庫 641
21.7 ADO.NET數據提供程序工廠模型 645
21.8 ADO.NET的連接層 650
21.9 使用數據讀取器 654
21.10 構建可重用的數據訪問庫 656
21.11 創建控製颱UI前端 664
21.12 數據庫事務 669
21.13 小結 673
第22章 ADO.NET之二:斷開連接層 674
22.1 ADO.NET斷開連接層 674
22.2 DataSet的作用 675
22.3 使用DataColumn 677
22.4 使用DataRow 679
22.5 使用DataTable 682
22.6 將DataTable對象綁定到用戶界麵 687
22.7 使用數據適配器 695
22.8 嚮AutoLotDAL.dll添加斷開連接功能 698
22.9 多錶DataSet對象和數據關係 701
22.10 Windows Forms數據庫設計器工具 706
22.11 將強類型的數據庫代碼隔離到類庫中 713
22.12 LINQ to DataSet 717
22.13 小結 722
第23章 ADO.NET之三:Entity Framework 723
23.1 Entity Framework的作用 723
23.2 創建和分析EDM 730
23.3 對概念模型進行編程 739
23.4 AutoLotDAL 4.0版,加入實體 744
23.5 將數據實體綁定到Windows Forms GUI 748
23.6 小結 752
第24章 LINQ to XML簡介 753
24.1 兩個XML API的故事 753
24.2 System.Xml.Linq命名空間的成員 756
24.3 使用XElement和XDocument 759
24.4 在內存中操作XML文檔 762
24.5 小結 766
第25章 WCF 767
25.1 各種分布式計算API 767
25.2 WCF的作用 772
25.3 WCF核心程序集 774
25.4 Visual Studio WCF項目模闆 775
25.5 WCF應用程序的基本構成 776
25.6 WCF的ABC 777
25.7 構建WCF服務 781
25.8 承載WCF服務 784
25.9 構建WCF客戶端應用程序 791
25.10 用WCF 4.0簡化配置設置 795
25.11 使用WCF服務庫項目模闆 800
25.12 以Windows服務承載WCF服務 803
25.13 從客戶端異步調用服務 807
25.14 定義WCF數據契約 809
25.15 小結 813
第26章 Windows Workflow Foundation
4.0簡介 814
26.1 定義業務流程 814
26.2 構建簡單的工作流 815
26.3 WF 4.0運行時 818
26.4 檢查WF 4.0中的活動 823
26.5 構建流程圖工作流 825
26.6 用專門的庫隔離工作流 833
26.7 使用工作流庫 840
26.8 小結 842
第六部分 使用WPF構建桌麵用戶界麵
第27章 WPF和XAML 844
27.1 WPF背後的動機 844
27.2 各種形式的WPF應用程序 846
27.3 WPF程序集 850
27.4 創建不使用XAML的WPF應用程序 856
27.5 僅使用XAML構建WPF應用程序 863
27.6 將標記轉換為.NET程序集 867
27.7 WPF XAML語法 871
27.8 使用代碼隱藏文件構建WPF應用程序 879
27.9 使用Visual Studio 2010構建WPF應用程序 881
27.10 小結 889
第28章 使用WPF控件編程 890
28.1 WPF核心控件概述 890
28.2 使用麵闆控製內容布局 894
28.3 使用嵌套麵闆構建窗口框架 903
28.4 WPF控件命令 907
28.5 使用Expression Blend構建WPF用戶界麵 912
28.6 構建Ink API選項卡 919
28.7 Documents API 928
28.8 構建Documents選項卡 929
28.9 WPF數據綁定模型 934
28.10 小結 941
第29章 WPF圖形呈現服務 942
29.1 理解WPF的圖形呈現服務 942
29.2 使用形狀呈現圖形數據 943
29.3 WPF畫刷和畫筆 952
29.4 圖形變換 955
29.5 使用Expression Blend處理形狀 958
29.6 使用繪圖和幾何圖形呈現圖形數據 962
29.7 使用Expression Design生成復雜的嚮量圖形 965
29.8 使用可視化層呈現圖形數據 967
29.9 小結 972
第30章 WPF資源、動畫和樣式 973
30.1 理解WPF資源係統 973
30.2 使用對象(邏輯)資源 978
30.3 理解WPF動畫服務 988
30.4 用XAML創建動畫 992
30.5 WPF樣式的作用 994
30.6 使用Expression Blend生成樣式 1001
30.7 小結 1003
第31章 WPF控件模闆和用戶控件 1004
31.1 依賴屬性的作用 1004
31.2 構建自定義依賴屬性 1008
31.3 路由事件 1013
31.4 邏輯樹、可視樹和默認模闆 1016
31.5 在Visual Studio 2010中構建自定義控件模闆 1022
31.6 使用Blend構建自定義UserControl 1028
31.7 創建WPF應用程序Jackpot Deluxe 1035
31.8 小結 1043
第七部分 使用ASP.NET構建Web應用程序
第32章 構建ASP.NET網頁 1046
32.1 HTTP的作用 1046
32.2 Web應用程序和Web服務 1047
32.3 HTML的作用 1048
32.4 客戶端腳本的作用 1053
32.5 迴發到Web服務器 1054
32.6 ASP.NET API的特性 1055
32.7 構建單個文件的ASP.NET網頁 1058
32.8 使用代碼文件構建ASP.NET Web頁麵 1066
32.9 ASP.NET Web Site和ASP.NET Web Application 1070
32.10 ASP.NET網站目錄結構 1072
32.11 頁麵類型的繼承鏈 1073
32.12 與傳入的HTTP請求交互 1074
32.13 與輸齣HTTP響應交互 1077
32.14 ASP.NET網頁的生命周期 1078
32.15 Web.config文件的作用 1081
32.16 小結 1082
第33章 ASP.NET Web控件、母版頁和主題 1083
33.1 Web控件的本質 1083
33.2 Control和WebControl基類 1085
33.3 ASP.NET Web控件的類彆 1089
33.4 構建ASP.NET汽車網站 1091
33.5 驗證控件的作用 1104
33.6 使用主題 1110
33.7 小結 1114
第34章 ASP.NET狀態管理技術 1115
34.1 狀態問題 1115
34.2 ASP.NET狀態管理技術 1117
34.3 ASP.NET視圖狀態的作用 1117
34.4 Global.asax文件的作用 1120
34.5 應用程序狀態與會話狀態的差彆 1123
34.6 使用應用程序緩存 1127
34.7 維護會話數據 1131
34.8 cookie 1134
34.9 <sessionState>元素的作用 1136
34.10 ASP.NET用戶配置API 1137
34.11 小結 1143
第八部分 附 錄
附錄A Windows Forms編程 1146
A.1 Windows Forms命名空間 1146
A.2 創建一個簡單的Windows Forms程序 1147
A.3 Visual Studio Windows Forms項目模闆 1152
A.4 剖析Form 1157
A.5 響應鼠標活動 1163
A.6 設計對話框 1166
A.7 通過GDI+呈現圖形數據 1171
A.8 創建一個完整的Windows Forms應用程序 1175
A.9 小結 1182
附錄B 使用Mono進行平颱無關的.NET開發 1183
B.1 .NET的平颱無關性 1183
B.2 獲取和安裝Mono 1186
B.3 Mono開發語言 1188
B.4 兼容Microsoft的Mono開發工具 1189
B.5 使用Mono創建.NET 應用程序 1190
B.6 誰在使用Mono 1196
B.7 推薦學習 1196
B.8 小結 1197
· · · · · · (
收起)