圖書詳細信息
ISBN:9787302334118
定價:148元
印次:1-4
印刷日期:2014-9-5
圖書簡介
《C#高級編程(第8版)》是C# 2012和.NET 4.5高級技術的終極資源,旨在幫助讀者更新、提高用C# 2012和.NET 4.5編寫
Windows應用程式、Web應用程式、
Windows 8樣式應用程式的技巧。
目錄
第Ⅰ部分C#語言
第1章.NET體系結構 2
1.1C#與.NET的關係 2
1.2公共語言運行庫 3
1.2.1平台無關性 3
1.2.2提高性能 3
1.2.3語言的互操作性 4
1.3中間語言 5
1.3.1面向對象和接口的支持 6
1.3.2不同的值類型和引用類型 6
1.3.3強數據類型化 7
1.3.4通過異常處理錯誤 11
1.3.5特性的使用 12
1.4程式集 12
1.4.1私有程式集 13
1.4.2共享程式集 13
1.4.3反射 14
1.4.4並行編程 14
1.4.5異步編程 14
1.5.NETFramework類 14
1.6名稱空間 15
1.7用C#創建.NET應用程式 16
1.7.1創建ASP.NET應用程式 16
1.7.2使用WPF 18
1.7.3Windows8應用程式 18
1.7.4Windows服務 18
1.7.5WCF 19
1.7.6WindowsWF 19
1.8C#在.NET企業體系結構中
的作用 19
1.9小結 20
第2章核心C# 22
2.1C#基礎 23
2.2第一個C#程式 23
2.2.1代碼 23
2.2.2編譯並運行程式 23
2.2.3詳細介紹 24
2.3變數 26
2.3.1變數的初始化 26
2.3.2類型推斷 27
2.3.3變數的作用域 28
2.3.4常量 30
2.4預定義數據類型 31
2.4.1值類型和引用類型 31
2.4.2CTS類型 32
2.4.3預定義的值類型 33
2.4.4預定義的引用類型 35
2.5流控制 37
2.5.1條件語句 37
2.5.2循環 41
2.5.3跳轉語句 44
2.6枚舉 45
2.7名稱空間 46
2.7.1using語句 47
2.7.2名稱空間的別名 48
2.8Main()方法 49
2.8.1多個Main()方法 49
2.8.2給Main()方法傳遞參數 50
2.9有關編譯C#檔案的更多內容 51
2.10控制台I/O 53
2.11使用注釋 54
2.11.1源檔案中的內部注釋 54
2.11.2XML文檔 55
2.12C#預處理器指令 57
2.12.1#define和#undef 57
2.12.2#if、#elif、#else和#endif 58
2.12.3#warning和#error 59
2.12.4#region和#endregion 59
2.12.5#line 60
2.12.6#pragma 60
2.13C#編程規則 60
2.13.1關於標識符的規則 60
2.13.2用法約定 61
2.14小結 67
第3章對象和類型 68
3.1創建及使用類 68
3.2類和結構 69
3.3類 69
3.3.1數據成員 70
3.3.2函式成員 70
3.3.3隻讀欄位 82
3.4匿名類型 83
3.5結構 84
3.5.1結構是值類型 85
3.5.2結構和繼承 86
3.5.3結構的構造函式 86
3.6弱引用 86
3.7部分類 88
3.8靜態類 89
3.9Object類 89
3.9.1System.Object()方法 90
3.9.2ToString()方法 91
3.10擴展方法 92
3.11小結 93
第4章繼承 94
4.1繼承 94
4.2繼承的類型 94
4.2.1實現繼承和接口繼承 94
4.2.2多重繼承 95
4.2.3結構和類 95
4.3實現繼承 95
4.3.1虛方法 96
4.3.2隱藏方法 97
4.3.3調用函式的基類版本 98
4.3.4抽象類和抽象函式 99
4.3.5密封類和密封方法 99
4.3.6派生類的構造函式 100
4.4修飾符 105
4.4.1可見性修飾符 105
4.4.2其他修飾符 106
4.5接口 106
4.5.1定義和實現接口 107
4.5.2派生的接口 110
4.6小結 112
第5章泛型 113
5.1泛型概述 113
5.1.1性能 114
5.1.2類型安全 115
5.1.3二進制代碼的重用 115
5.1.4代碼的擴展 116
5.1.5命名約定 116
5.2創建泛型類 116
5.3泛型類的功能 120
5.3.1默認值 121
5.3.2約束 122
5.3.3繼承 124
5.3.4靜態成員 125
5.4泛型接口 125
5.4.1協變和抗變 126
5.4.2泛型接口的協變 127
5.4.3泛型接口的抗變 128
5.5泛型結構 129
5.6泛型方法 132
5.6.1泛型方法示例 132
5.6.2帶約束的泛型方法 133
5.6.3帶委託的泛型方法 134
5.6.4泛型方法規範 135
5.7小結 136
第6章數組 137
6.1同一類型和不同類型的多個對象 137
6.2簡單數組 138
6.2.1數組的聲明 138
6.2.2數組的初始化 138
6.2.3訪問數組元素 139
6.2.4使用引用類型 140
6.3多維數組 141
6.4鋸齒數組 142
6.5Array類 143
6.5.1創建數組 143
6.5.2複製數組 144
6.5.3排序 145
6.6數組作為參數 148
6.6.1數組協變 149
6.6.2ArraySegment<T> 149
6.7枚舉 150
6.7.1IEnumerator接口 150
6.7.2foreach語句 151
6.7.3yield語句 151
6.8元組 156
6.9結構比較 157
6.10小結 160
第7章運算符和類型強制轉換 161
7.1運算符和類型轉換 161
7.2運算符 161
7.2.1運算符的簡化操作 163
7.2.2運算符的優先權 167
7.3類型的安全性 168
7.3.1類型轉換 168
7.3.2裝箱和拆箱 172
7.4比較對象的相等性 172
7.4.1比較引用類型的相等性 172
7.4.2比較值類型的相等性 173
7.5運算符重載 174
7.5.1運算符的工作方式 175
7.5.2運算符重載的示例:Vector結構 176
7.6用戶定義的類型強制轉換 182
7.6.1實現用戶定義的類型強制轉換 184
7.6.2多重類型強制轉換 189
7.7小結 193
第8章委託、Lambda表達式和事件 194
8.1引用方法 194
8.2委託 195
8.2.1聲明委託 195
8.2.2使用委託 196
8.2.3簡單的委託示例 199
8.2.4Action<T>和Func<T>委託 201
8.2.5BubbleSorter示例 202
8.2.6多播委託 204
8.2.7匿名方法 208
8.3Lambda表達式 209
8.3.1參數 209
8.3.2多行代碼 210
8.3.3閉包 210
8.3.4使用foreach語句的閉包 211
8.4事件 212
8.4.1事件發布程式 212
8.4.2事件偵聽器 214
8.4.3弱事件 215
8.5小結 219
第9章字元串和正則表達式 220
9.1System.String類 221
9.1.1創建字元串 222
9.1.2StringBuilder成員 225
9.1.3格式字元串 226
9.2正則表達式 231
9.2.1正則表達式概述 231
9.2.2RegularExpressionsPlayaround示例 232
9.2.3顯示結果 235
9.2.4匹配、組合和捕獲 236
9.3小結 238
第10章集合 239
10.1概述 239
10.2集合接口和類型 240
10.3列表 241
10.3.1創建列表 242
10.3.2隻讀集合 251
10.4佇列 251
10.5棧 255
10.6鍊表 256
10.7有序列表 262
10.8字典 263
10.8.1鍵的類型 264
10.8.2字典示例 265
10.8.3Lookup類 269
10.8.4有序字典 270
10.9集 270
10.10可觀察的集合 272
10.11位數組 273
10.11.1BitArray類 274
10.11.2BitVector32結構 276
10.12並發集合 278
10.12.1創建管道 279
10.12.2使用Blocking-Collection 282
10.12.3使用Concurrent-Dictionary 283
10.12.4完成管道 285
10.13性能 286
10.14小結 288
第11章LINQ 289
11.1LINQ概述 289
11.1.1列表和實體 289
11.1.2LINQ查詢 293
11.1.3擴展方法 294
11.1.4推遲查詢的執行 295
11.2標準的查詢操作符 297
11.2.1篩選 299
11.2.2用索引篩選 299
11.2.3類型篩選 300
11.2.4複合的from子句 300
11.2.5排序 301
11.2.6分組 302
11.2.7對嵌套的對象分組 303
11.2.8內連線 304
11.2.9左外連線 305
11.2.10組連線 306
11.2.11集合操作 309
11.2.12合併 310
11.2.13分區 311
11.2.14聚合操作符 312
11.2.15轉換操作符 314
11.2.16生成操作符 315
11.3並行LINQ 316
11.3.1並行查詢 316
11.3.2分區器 317
11.3.3取消 317
11.4表達式樹 318
11.5LINQ提供程式 320
11.6小結 321
第12章動態語言擴展 322
12.1DLR 322
12.2dynamic類型 323
12.3包含DLRScriptRuntime 327
12.4DynamicObject和
ExpandoObject 330
12.4.1DynamicObject 330
12.4.2ExpandoObject 332
12.5小結 333
第13章異步編程 334
13.1異步編程的重要性 334
13.2異步模式 335
13.2.1同步調用 342
13.2.2異步模式 343
13.2.3基於事件的異步模式 344
13.2.4基於任務的異步模式 345
13.3異步編程的基礎 347
13.3.1創建任務 347
13.3.2調用異步方法 348
13.3.3延續任務 348
13.3.4同步上下文 349
13.3.5使用多個異步方法 349
13.3.6轉換異步模式 350
13.4.3AggregateException類 353
13.5取消 353
13.5.1開始取消任務 354
13.5.2使用框架特性取消任務 354
13.5.3取消自定義任務 355
13.6小結 355
第14章記憶體管理和指針 356
14.1記憶體管理 356
14.2後台記憶體管理 356
14.2.1值數據類型 357
14.2.2引用數據類型 358
14.2.3垃圾回收 359
14.3釋放非託管的資源 361
14.3.1析構函式 361
14.3.2IDisposable接口 362
14.3.3實現IDisposable接口和析構函式 363
14.4不安全的代碼 365
14.4.1用指針直接訪問記憶體 365
14.4.2指針示例:PointerPlayground 374
14.4.3使用指針最佳化性能 378
14.5小結 381
第15章反射 382
15.1在運行期間處理和檢查代碼 382
15.2自定義特性 383
15.2.1編寫自定義特性 383
15.2.2自定義特性示例:WhatsNewAttributes 386
15.3反射 389
15.3.1System.Type類 389
15.3.2TypeView示例 392
15.3.3Assembly類 393
15.3.4完成WhatsNewAttributes示例 395
15.4小結 398
第16章錯誤和異常 399
16.1簡介 399
16.2異常類 400
16.3捕獲異常 401
16.3.1實現多個catch塊 403
16.3.2在其他代碼中捕獲異常 407
16.3.3System.Exception屬性 407
16.3.4沒有處理異常時所發生的情況 408
16.3.5嵌套的try塊 408
16.4用戶定義的異常類 410
16.4.1捕獲用戶定義的異常 411
16.4.2拋出用戶定義的異常 412
16.4.3定義用戶定義的異常類 415
16.5調用者信息 417
16.6小結 418
第Ⅱ部分VisualStudio
第17章VisualStudio2012 420
17.1用VisualStudio2012進行工作 420
17.1.1項目檔案的改進 423
17.1.2VisualStudio的版本 423
17.1.3VisualStudio設定 424
17.2創建項目 424
17.2.1面向多個版本的.NETFramework 425
17.2.2選擇項目類型 427
17.3瀏覽並編寫項目 430
17.3.1SolutionExplorer 430
17.3.2用代碼編輯器進行工作 436
17.3.3學習和理解其他視窗 438
17.3.4排列視窗 442
17.4構建項目 442
17.4.1構建、編譯和生成 442
17.4.2調試版本和發布版本 443
17.4.3選擇配置 445
17.4.4編輯配置 445
17.5調試代碼 446
17.5.1設定斷點 446
17.5.2使用數據提示和調試器可視化工具 447
17.6重構工具 451
17.7體系結構工具 453
17.7.1依賴項關係圖 453
17.7.2層關係圖 454
17.8分析應用程式 456
17.8.1序列圖 456
17.8.2探查器 457
17.8.3ConcurrencyVisualizer 459
17.8.4CodeAnalysis 459
17.8.5CodeMetrics 460
17.9單元測試 461
17.9.1創建單元測試 461
17.9.2運行單元測試 462
17.9.3預期異常 463
17.9.4測試全部代碼路徑 463
17.9.5外部依賴 464
17.9.6FakesFramework 467
17.10Windows8、WCF、WF等 468
17.10.1使用VisualStudio2012
生成WCF應用程式 468
17.10.2使用VisualStudio2012
生成WF應用程式 470
17.10.3使用VisualStudio2012
生成WindowsStore
應用程式 470
17.11小結 472
第18章部署 473
18.1部署是應用程式生命周期的
一部分 473
18.2部署的規劃 473
18.2.1部署選項 474
18.2.2部署要求 474
18.2.3部署.NET運行庫 475
18.3傳統的部署選項 475
18.3.1xcopy部署 476
18.3.2xcopy和Web應用程式 476
18.3.3WindowsInstaller 476
18.4ClickOnce 477
18.4.1ClickOnce操作 477
18.4.2發布ClickOnce
應用程式 477
18.4.3ClickOnce設定 479
18.4.4ClickOnce檔案的
應用程式快取 481
18.4.5應用程式的安裝 481
18.4.6ClickOnce部署API 482
18.5Web部署 483
18.5.1Web應用程式 483
18.5.2配置檔案 483
18.5.3創建WebDeploy包 484
18.6Windows8應用程式 485
18.6.1創建應用程式包 486
18.6.2WindowsApp
CertificationKit 487
18.6.3旁載入 487
18.6.4Windows部署API 488
18.7小結 490
第Ⅲ部分基礎
第19章程式集 492
19.1程式集的含義 492
19.1.1程式集的功能 493
19.1.2程式集的結構 493
19.1.3程式集清單 494
19.1.4名稱空間、程式集和
組件 494
19.1.5私有程式集和共享
程式集 495
19.1.6附屬程式集 495
19.1.7查看程式集 495
19.2構建程式集 496
19.2.1創建模組和程式集 496
19.2.2程式集的特性 497
19.2.3創建和動態載入程式集 499
19.3應用程式域 502
19.4共享程式集 506
19.4.1強名 506
19.4.2使用強名獲得完整性 507
19.4.3全局程式集快取 508
19.4.4創建共享程式集 509
19.4.5創建強名 509
19.4.6安裝共享程式集 510
19.4.7使用共享程式集 511
19.4.8程式集的延遲簽名 512
19.4.9引用 513
19.4.10本機映像生成器 513
19.5配置.NET應用程式 514
19.5.1配置類別 515
19.5.2綁定程式集 516
19.6版本問題 517
19.6.1版本號 517
19.6.2通過編程方式獲取版本 518
19.6.3綁定到程式集版本 518
19.6.4發行者策略檔案 519
19.6.5運行庫的版本 521
19.7在不同的技術之間共享
程式集 522
19.7.1共享原始碼 522
19.7.2可移植類庫 523
19.8小結 524
第20章診斷 525
20.1診斷概述 525
20.2代碼協定 526
20.2.1前提條件 527
20.2.2後置條件 528
20.2.3不變數 529
20.2.4純粹性 529
20.2.5接口的協定 529
20.2.6簡寫 531
20.2.7協定和遺留代碼 531
20.3跟蹤 532
20.3.1跟蹤源 533
20.3.2跟蹤開關 534
20.3.3跟蹤偵聽器 535
20.3.4篩選器 537
20.3.5相關性 538
20.3.6使用ETW進行跟蹤 541
20.4事件日誌 542
20.4.1事件日誌體系結構 542
20.4.2事件日誌類 544
20.4.3創建事件源 545
20.4.4寫入事件日誌 546
20.4.5資源檔案 546
20.5性能監視 550
20.5.1性能監視類 550
20.5.2性能計數器生成器 550
20.5.3添加PerformanceCounter組件 553
20.5.4perfmon.exe 555
20.6小結 556
第21章任務、執行緒和同步 557
21.1概述 557
21.2Parallel類 558
21.2.1用Parallel.For()方法循環 559
21.2.2使用Parallel.ForEach()方法循環 562
21.2.3通過Parallel.Invoke()方法調用多個方法 563
21.3任務 563
21.3.1啟動任務 563
21.3.2Future——任務的結果 566
21.3.3連續的任務 567
21.3.4任務層次結構 568
21.4取消架構 568
21.4.1Parallel.For()方法的取消 569
21.4.2任務的取消 570
21.5執行緒池 571
21.6Thread類 573
21.6.1給執行緒傳遞數據 574
21.6.2後台執行緒 575
21.6.3執行緒的優先權 576
21.6.4控制執行緒 576
21.7執行緒問題 577
21.7.1爭用條件 577
21.7.2死鎖 579
21.8同步 581
21.8.1lock語句和執行緒安全 582
21.8.2Interlocked類 587
21.8.3Monitor類 588
21.8.4SpinLock結構 589
21.8.5WaitHandle基類 589
21.8.6Mutex類 590
21.8.7Semaphore類 591
21.8.8Events類 593
21.8.9Barrier類 596
21.8.10ReaderWriterLockSlim類 598
21.9Timer類 601
21.10數據流 602
21.10.1使用動作塊 602
21.10.2源和目標數據塊 603
21.10.3連線塊 604
21.11小結 606
第22章安全性 608
22.1概述 608
22.2身份驗證和授權 609
22.2.1標識和Principal 609
22.2.2角色 610
22.2.3聲明基於角色的安全性 611
22.2.4聲稱 612
22.2.5客戶端應用程式服務 613
22.3加密 618
22.3.1簽名 619
22.3.2交換密鑰和安全傳輸 621
22.4資源的訪問控制 624
22.5代碼訪問安全性 627
22.5.1第2級安全透明性 627
22.5.2許可權 628
22.6使用證書發布代碼 632
22.7小結 633
第23章互操作 634
23.1.NET和COM技術 634
23.1.1元數據 635
23.1.2釋放記憶體 635
23.1.3接口 636
23.1.4方法綁定 637
23.1.5數據類型 637
23.1.6註冊 638
23.1.7執行緒 638
23.1.8錯誤處理 640
23.1.9事件 640
23.1.10封送 640
23.2在.NET客戶端中使用COM組件 641
23.2.1創建一個COM組件 641
23.2.2創建運行庫可調用包裝 647
23.2.3使用RCW 648
23.2.4通過動態語言擴展使用COM服務 649
23.2.5執行緒問題 650
23.2.6添加連線點 650
23.3在COM客戶端中使用.NET組件 652
23.3.1COM可調用包裝 653
23.3.2創建.NET組件 653
23.3.3創建一個類型庫 654
23.3.4COM互操作特性 656
23.3.5COM註冊 658
23.3.6創建COM客戶端應用程式 659
23.3.7添加連線點 660
23.3.8使用sink對象創建客戶端 661
23.3.9平台調用 663
23.4小結 667
第24章檔案和註冊表操作 668
24.1檔案和註冊表 668
24.2管理檔案系統 669
24.2.1表示檔案和資料夾的.NET類 670
24.2.2Path類 672
24.2.3FileProperties示例 672
24.3移動、複製和刪除檔案 677
24.3.1FilePropertiesAndMovement示例 677
24.3.2FilePropertiesAndMovement示例的代碼 678
24.4讀寫檔案 681
24.4.1讀取檔案 681
24.4.2寫入檔案 683
24.4.3流 684
24.4.4快取的流 686
24.4.5使用FileStream類讀寫二進制檔案 686
24.4.6讀寫文本檔案 691
24.5映射記憶體的檔案 697
24.6讀取驅動器信息 698
24.7檔案的安全性 700
24.7.1從檔案中讀取ACL 700
24.7.2從目錄中讀取ACL 701
24.7.3添加和刪除檔案中的ACL項 703
24.8讀寫註冊表 704
24.8.1註冊表 705
24.8.2.NET註冊表類 706
24.9讀寫獨立存儲器 709
24.10小結 713
第25章事務處理 714
25.1簡介 714
25.2概述 715
25.2.1事務處理階段 715
25.2.2ACID屬性 716
25.3資料庫和實體類 716
25.4傳統的事務 718
25.4.1ADO.NET事務 718
25.4.2System.Enterprise-
Services 719
25.5System.Transactions 720
25.5.1可提交的事務 722
25.5.2事務處理的升級 724
25.5.3依賴事務 726
25.5.4環境事務 728
25.6隔離級別 735
25.7自定義資源管理器 736
25.8檔案系統事務 742
25.9小結 746
第26章網路 747
26.1網路 747
26.2WebClient類 748
26.2.1下載檔案 748
26.2.2基本的WebClient示例 748
26.2.3上傳檔案 750
26.3WebRequest類和WebResponse類 750
26.3.1身份驗證 752
26.3.2使用代理 752
26.3.3異步頁面請求 753
26.4把輸出結果顯示為HTML頁面 753
26.4.1從應用程式中進行簡單的Web瀏覽 754
26.4.2啟動InternetExplorer實例 755
26.4.3給應用程式提供更多IE類型的功能 756
26.4.4使用WebBrowser控制項列印 761
26.4.5顯示所請求頁面的代碼 761
26.4.6WebRequest類和WebResponse類的層次結構 762
26.5實用工具類 763
26.5.1URI 763
26.5.2IP位址和DNS名稱 764
26.6較低層的協定 766
26.6.1使用SmtpClient 767
26.6.2使用TCP類 768
26.6.3TcpSend和TcpReceive示例 769
26.6.4TCP和UDP 771
26.6.5UDP類 771
26.6.6Socket類 772
26.6.7WebSocket 775
26.7小結 779
第27章Windows服務 780
27.1Windows服務 780
27.2Windows服務的體系結構 781
27.2.1服務程式 782
27.2.2服務控制程式 783
27.2.3服務配置程式 783
27.2.4Windows服務的類 783
27.3創建Windows服務程式 783
27.3.1創建服務的核心功能 784
27.3.2QuoteClient示例 787
27.3.3Windows服務程式 791
27.3.4執行緒化和服務 795
27.3.5服務的安裝 795
27.3.6安裝程式 795
27.4Windows服務的監控和控制 799
27.4.1MMC管理單元 800
27.4.2net.exe實用程式 801
27.4.3sc.exe實用程式 801
27.4.4VisualStudioServerExplorer 801
27.4.5編寫自定義ServiceController類 801
27.5故障排除和事件日誌 809
27.6小結 810
第28章本地化 811
28.1全球市場 811
28.2System.Globalization名稱空間 812
28.2.1Unicode問題 812
28.2.2區域性和區域 813
28.2.3使用區域性 817
28.2.4排序 823
28.3資源 824
28.3.1創建資源檔案 824
28.3.2資源檔案生成器 825
28.3.3ResourceWriter 825
28.3.4使用資源檔案 826
28.3.5System.Resources名稱空間 830
28.4使用VisualStudio的WindowsForms本地化 831
28.4.1通過編程方式修改區域性 836
28.4.2使用自定義資源訊息 837
28.4.3資源的自動回退 838
28.4.4外包翻譯 838
28.5ASP.NETWebForms的本地化 839
28.6用WPF本地化 841
28.6.1用於WPF的.NET資源 842
28.6.2XAML資源字典 843
28.7自定義資源讀取器 846
28.7.1創建DatabaseResource-Reader類 847
28.7.2創建DatabaseResource-Set類 848
28.7.3創建DatabaseResource-Manager類 849
28.7.4DatabaseResourceReader的客戶端應用程式 850
28.8創建自定義區域性 850
28.9用WindowsStore應用程式進行本地化 852
28.9.1使用資源 852
28.9.2使用多語言應用程式工具集進行本地化 853
28.10小結 854
第29章核心XAML 855
29.1XAML的作用 855
29.2概述 855
29.2.1元素如何映射到.NET對象上 856
29.2.2使用自定義.NET類 857
29.2.3把屬性用作特性 859
29.2.4把屬性用作元素 859
29.2.5基本的.NET類型 860
29.2.6使用集合和XAML 860
29.2.7用XAML代碼調用構造函式 861
29.3依賴屬性 861
29.3.1創建依賴屬性 862
29.3.2強制值回調 863
29.3.3值變更回調和事件 864
29.3.4事件的冒泡和隧道 864
29.4附加屬性 867
29.5標記擴展 870
29.6創建自定義標記擴展 870
29.7XAML定義的標記擴展 872
29.8讀寫XAML 872
29.9小結 873
第30章ManagedExtensibilityFramework 874
30.1概述 874
30.2MEF的體系結構 875
30.2.1使用屬性的MEF 876
30.2.2基於約定的部件註冊 881
30.3定義協定 883
30.4導出部件 884
30.4.1創建部件 884
30.4.2導出屬性和方法 889
30.4.3導出元數據 891
30.4.4使用元數據進行惰性載入 893
30.5導入部件 894
30.5.1導入連線 896
30.5.2部件的惰性載入 898
30.5.3用惰性實例化的部件讀取元數據 898
30.6容器和出口提供程式 901
30.7類別 903
30.8小結 905
第31章Windows運行庫 906
31.1概述 906
31.1.1.NET與Windows運行庫的比較 907
31.1.2名稱空間 907
31.1.3元數據 909
31.1.4語言投射 910
31.1.5Windows運行庫中的類型 912
31.2Windows運行庫組件 913
31.2.1集合 913
31.2.2流 914
31.2.3委託與事件 915
31.2.4異步操作 915
31.3Windows8應用程式 916
31.4Windows8應用程式的生命周期 918
31.4.1Windows8應用程式的執行狀態 919
31.4.2SuspensionManager 920
31.4.3導航狀態 921
31.4.4測試暫停 922
31.4.5頁面狀態 922
31.5Windows8應用程式的設定 924
31.6攝像頭功能 926
31.7小結 928
第Ⅳ部分數據
第32章核心ADO.NET 930
32.1ADO.NET概述 930
32.1.1名稱空間 931
32.1.2共享類 932
32.1.3資料庫專用類 932
32.2使用資料庫連線 933
32.2.1管理連線字元串 934
32.2.2高效地使用連線 935
32.2.3事務 937
32.3命令 938
32.3.1執行命令 939
32.3.2調用存儲過程 942
32.4快速數據訪問:數據讀取器 944
32.5異步數據訪問:使用Task和await 947
32.6管理數據和關係:DataSet類 949
32.6.1數據表 949
32.6.2數據列 950
32.6.3數據關係 955
32.6.4數據約束 956
32.7XML架構:用XSD生成代碼 959
32.8填充DataSet類 965
32.8.1用數據適配器填充DataSet 965
32.8.2從XML中填充DataSet類 967
32.9持久化DataSet類的修改 967
32.9.1通過數據適配器進行更新 967
32.9.2寫入XML輸出結果 969
32.10使用ADO.NET 971
32.10.1分層開發 971
32.10.2生成SQLServer的鍵 972
32.10.3命名約定 974
32.11小結 976
第33章ADO.NETEntityFramework 977
33.1用EntityFramework編程 977
33.2EntityFramework映射 979
33.2.1邏輯層 979
33.2.2概念層 981
33.2.3映射層 983
33.2.4連線字元串 983
33.3實體 984
33.4對象上下文 988
33.5關係 990
33.5.1一個層次結構一個表 990
33.5.2一種類型一個表 992
33.5.3懶惰載入、延遲載入和預先載入 993
33.6查詢數據 994
33.6.1EntitySQL 994
33.6.2對象查詢 995
33.6.3LINQtoEntities 998
33.7把數據寫入資料庫 999
33.7.1對象跟蹤 999
33.7.2改變信息 1000
33.7.3附加和分離實體 1001
33.7.4存儲實體的變化 1002
33.8使用POCO對象 1003
33.8.1定義實體類型 1003
33.8.2創建數據上下文 1004
33.8.3查詢和更新 1004
33.9使用CodeFirst編程模型 1005
33.9.1定義實體類型 1005
33.9.2創建數據上下文 1006
33.9.3創建資料庫,存儲實體 1006
33.9.4資料庫 1007
33.9.5查詢數據 1007
33.9.6定製資料庫的生成 1008
33.10小結 1009
第34章處理XML 1010
34.1XML 1010
34.2.NET支持的XML標準 1011
34.3System.Xml名稱空間 1011
34.4使用System.Xml類 1012
34.5讀寫流格式的XML 1013
34.5.1使用XmlReader類 1013
34.5.2使用XmlReader類進行驗證 1017
34.5.3使用XmlWriter類 1019
34.6在.NET中使用DOM 1020
34.7使用XPathNavigator類 1025
34.7.1System.Xml.XPath名稱空間 1025
34.7.2System.Xml.Xsl名稱空間 1030
34.7.3調試XSLT 1034
34.8XML和ADO.NET 1036
34.8.1將ADO.NET數據轉換為XML文檔 1036
34.8.2把XML文檔轉換為ADO.NET數據 1042
34.9在XML中序列化對象 1044
34.10LINQtoXML和.NET 1053
34.11使用不同的XML對象 1053
34.11.1XDocument對象 1053
34.11.2XElement對象 1054
34.11.3XNamespace對象 1055
34.11.4XComment對象 1057
34.11.5XAttribute對象 1058
34.12使用LINQ查詢XML文檔 1059
34.12.1查詢靜態的XML文檔 1059
34.12.2查詢動態的XML文檔 1060
34.13XML文檔的更多查詢技術 1062
34.13.1讀取XML文檔 1062
34.13.2寫入XML文檔 1063
34.14小結 1065
第Ⅴ部分顯示
第35章核心WPF 1068
35.1理解WPF 1069
35.1.1名稱空間 1069
35.1.2類層次結構 1070
35.2形狀 1072
35.3幾何圖形 1073
35.6控制項 1081
35.6.1簡單控制項 1081
35.6.2內容控制項 1081
35.6.3帶標題的內容控制項 1083
35.6.4項控制項 1084
35.6.5帶標題的項控制項 1084
35.6.6修飾 1085
35.7布局 1086
35.8樣式和資源 1090
35.8.1樣式 1090
35.8.2資源 1092
35.8.3系統資源 1093
35.8.4從代碼中訪問資源 1093
35.8.5動態資源 1094
35.8.6資源字典 1095
35.9觸發器 1096
35.9.1屬性觸發器 1096
35.9.2多觸發器 1098
35.9.3數據觸發器 1098
35.10模板 1100
35.10.1控制項模板 1100
35.10.2數據模板 1103
35.10.3樣式化列表框 1105
35.10.4ItemTemplate 1106
35.10.5列表框元素的控制項模板 1107
35.11動畫 1108
35.11.1時間軸 1109
35.11.2非線性動畫 1112
35.11.3事件觸發器 1112
35.11.4關鍵幀動畫 1115
35.12可見狀態管理器 1116
35.12.1可見的狀態 1117
35.12.2變換 1118
35.133-D 1119
35.13.1模型 1120
35.13.2照相機 1121
35.13.3光線 1122
35.13.4旋轉 1122
35.14小結 1123
第36章用WPF編寫業務
應用程式 1124
36.1概述 1124
36.2選單和功能區控制項 1125
36.2.1選單控制項 1125
36.2.2功能區控制項 1126
36.3.1定義命令 1129
36.3.2定義命令源 1130
36.3.3命令綁定 1130
36.4數據綁定 1131
36.4.1BooksDemo應用程式內容 1132
36.4.2用XAML綁定 1133
36.4.3簡單對象的綁定 1135
36.4.4更改通知 1137
36.4.5對象數據提供程式 1140
36.4.6列表綁定 1142
36.4.7主從綁定 1145
36.4.8多綁定 1145
36.4.9優先綁定 1147
36.4.10值的轉換 1149
36.4.11動態添加列表項 1150
36.4.12動態添加選項卡中的項 1151
36.4.13數據模板選擇器 1152
36.4.14綁定到XML上 1154
36.4.15綁定的驗證 1156
37.2文本元素 1182
37.2.1字型 1182
37.2.2TextEffect 1183
37.2.3內聯 1184
37.2.4塊 1186
37.2.5列表 1188
37.2.6表 1188
37.2.7塊的錨定 1189
37.3流文檔 1191
37.4固定文檔 1195
38.2.2快速流暢 1206
38.2.3可讀性 1206
38.3示例應用程式的核心功能 1206
38.3.1檔案和目錄 1207
38.3.2應用程式數據 1208
38.3.3應用程式頁面 1213
38.4應用程式工具列 1218
38.5啟動與導航 1219
38.6布局的變化 1222
38.7存儲 1225
38.7.1定義數據協定 1226
38.7.2寫入移動數據 1227
38.7.3讀取數據 1229
38.7.4寫入圖像 1230
38.7.5讀取圖像 1232
38.8選擇器 1233
38.9共享協定 1234
38.9.1共享源 1234
38.9.2共享目標 1237
38.10Tile 1239
38.11小結 1241
第39章核心ASP.NET 1242
39.3託管和配置 1246
39.4處理程式和模組 1248
39.4.1創建自定義處理程式 1249
39.4.2ASP.NET處理程式 1250
39.4.3創建自定義模組 1251
39.4.4通用模組 1253
39.5全局的應用程式類 1254
39.6請求和回響 1254
39.6.1使用HttpRequest對象 1255
39.6.2使用HttpResponse對象 1256
39.7狀態管理 1256
39.7.1視圖狀態 1257
39.7.2cookie 1258
39.7.3會話 1259
39.7.4應用程式狀態 1261
39.7.5快取 1262
39.7.6配置檔案 1263
39.8成員和角色 1267
39.8.1配置成員 1267
39.8.2使用成員API 1269
39.8.3啟用角色API 1270
39.9小結 1270
第40章ASP.NETWebForms 1271
40.1概述 1271
40.2ASPX頁面模型 1272
40.2.1添加控制項 1272
40.2.2使用事件 1273
40.2.3使用回送 1274
40.2.4使用自動回送 1275
40.2.5回送到其他頁面 1275
40.2.6定義強類型化的跨頁面回送 1276
40.2.7使用頁面事件 1277
40.2.8ASPX代碼 1278
40.2.9伺服器端控制項 1280
40.3母版頁 1281
40.3.1創建母版頁 1281
40.3.2使用母版頁 1283
40.3.3在內容頁中定義母版頁內容 1284
40.4導航 1285
40.4.1站點地圖 1286
40.4.2Menu控制項 1286
40.4.3選單路徑 1287
40.5驗證用戶輸入 1287
40.5.1使用驗證控制項 1287
40.5.2使用驗證摘要 1289
40.5.3驗證組 1289
40.6訪問數據 1290
40.6.1使用EntityFramework 1291
40.6.2使用EntityDataSource 1291
40.6.3排序和編輯 1293
40.6.4定製列 1294
40.6.5在格線中使用模板 1295
40.6.6定製對象上下文的創建過程 1297
40.6.7對象數據源 1298
40.7安全性 1299
40.7.1啟用表單身份驗證 1299
40.7.2登錄控制項 1300
40.8Ajax 1301
40.8.1ASP.NETAJAX的概念 1302
40.8.2ASP.NETAJAX網站示例 1305
40.8.3支持ASP.NETAJAX的網站配置 1308
40.8.4添加ASP.NETAJAX功能 1308
40.9小結 1315
第41章ASP.NETMVC 1316
41.1ASP.NETMVC概述 1316
41.2定義路由 1318
41.2.1添加路由 1319
41.2.2路由約束 1319
41.3創建控制器 1320
41.3.1動作方法 1321
41.3.2參數 1321
41.3.3返回數據 1322
41.4創建視圖 1323
41.4.1向視圖傳遞數據 1325
41.4.2Razor語法 1325
41.4.3強類型視圖 1326
41.4.4布局 1327
41.4.5部分視圖 1330
41.5從客戶端提交數據 1334
41.5.1模型綁定器 1335
41.5.2注釋和驗證 1337
41.6HTMLHelper 1338
41.6.1簡單的Helper 1338
41.6.2使用模型數據 1339
41.6.3定義HTML特性 1340
41.6.4創建列表 1340
41.6.5強類型化的Helper 1341
41.6.6編輯器擴展 1342
41.6.7創建自定義Helper 1342
41.6.8模板 1343
41.7創建數據驅動的應用程式 1344
41.7.1定義模型 1344
41.7.2創建控制器和視圖 1345
41.8動作過濾器 1350
41.9身份驗證和授權 1352
41.9.1登錄模型 1352
41.9.2登錄控制器 1352
41.9.3登錄視圖 1354
41.10ASP.NETWebAPI 1355
41.10.2為ASP.NETWebAPI定義路由 1357
41.10.3控制器實現 1357
41.10.4使用jQuery的客戶端應用程式 1358
41.11小結 1360
第42章ASP.NET動態數據 1361
42.1概述 1361
42.2創建動態數據Web應用程式 1362
42.2.1配置Scaffolding 1363
42.2.2查看結果 1364
42.3定製動態數據網站 1366
42.3.1控制框架 1367
42.3.2定製模板 1368
42.3.3配置路由 1373
42.4小結 1374
第Ⅵ部分通信
第43章WCF 1376
43.1WCF概述 1376
43.1.1SOAP 1378
43.1.2WSDL 1378
43.1.3REST 1379
43.1.4JSON 1379
43.2創建簡單的服務和客戶端 1379
43.2.1定義服務和數據協定 1380
43.2.2數據訪問 1382
43.2.3服務的實現 1383
43.2.4WCF服務宿主和WCF測試客戶端 1384
43.2.5自定義服務宿主 1386
43.2.6WCF客戶端 1388
43.2.7診斷 1390
43.2.8與客戶端共享協定程式集 1392
43.3協定 1393
43.3.1數據協定 1394
43.3.2版本問題 1394
43.3.3服務協定 1395
43.3.4訊息協定 1396
43.3.5錯誤協定 1396
43.4服務的行為 1398
43.5綁定 1401
43.5.1標準的綁定 1401
43.5.2標準綁定的特性 1402
43.5.3Web套接字 1404
43.6宿主 1407
43.6.1自定義宿主 1407
43.6.2WAS宿主 1408
43.6.3預配置的宿主類 1408
43.7客戶端 1410
43.7.1使用元數據 1410
43.7.2共享類型 1411
43.8雙工通信 1411
43.8.1雙工通信的協定 1412
43.8.2雙工通信的服務 1412
43.8.3雙工通信的客戶端應用程式 1413
43.9路由 1414
43.9.1示例應用程式 1415
43.9.2路由接口 1416
43.9.3WCF路由服務 1416
43.9.4為失敗使用路由器 1417
43.9.5改變協定的橋樑 1418
43.9.6過濾器的類型 1419
43.10小結 1419
第44章WCF數據服務 1420
44.1概述 1420
44.2包含CLR對象的自定義宿主 1421
44.2.1CLR對象 1422
44.2.2數據模型 1424
44.2.3數據服務 1424
44.2.4駐留服務 1425
44.2.5其他服務操作 1426
44.3HTTP客戶端應用程式 1426
44.4.1ASP.NET宿主和EDM 1432
44.4.2使用WCF數據服務客戶庫 1433
44.5小結 1441
第45章WindowsWF4 1442
45.1工作流概述 1442
45.2HelloWorld示例 1443
45.3活動 1444
45.3.1If活動 1445
45.3.2InvokeMethod活動 1446
45.3.3Parallel活動 1446
45.3.4Delay活動 1447
45.3.5Pick活動 1447
45.4自定義活動 1448
45.4.1活動的驗證 1449
45.4.2設計器 1450
45.4.3自定義複合活動 1452
45.5工作流 1454
45.5.1實參和變數 1455
45.5.2WorkflowApplication 1455
45.5.3存放WCF工作流 1459
45.5.4工作流的版本 1463
45.5.5駐留設計器 1464
45.6小結 1468
第46章對等網路 1469
46.1P2P網路概述 1469
46.1.1客戶端-伺服器體系結構 1469
46.1.2P2P體系結構 1470
46.1.3P2P體系結構的挑戰 1471
46.1.4P2P術語 1472
46.1.5P2P解決方案 1472
46.2PNRP 1472
46.3構建P2P應用程式 1475
46.4小結 1481
第47章訊息佇列 1482
47.1概述 1482
47.1.1使用訊息佇列的場合 1483
47.1.2訊息佇列功能 1484
47.2MessageQueuing產品 1485
47.3訊息佇列體系結構 1486
47.3.1訊息 1486
47.3.2訊息佇列 1486
47.4MessageQueuing管理工具 1487
47.4.1創建訊息佇列 1487
47.4.2訊息佇列屬性 1488
47.5訊息佇列的編程實現 1489
47.5.1創建訊息佇列 1489
47.5.2查找佇列 1490
47.5.3打開已知佇列 1490
47.5.4傳送訊息 1492
47.5.5接收訊息 1494
47.6課程訂單應用程式 1496
47.6.1課程訂單類庫 1496
47.6.2課程訂單訊息傳送程式 1499
47.6.3傳送優先權和可恢復的訊息 1501
47.6.4課程訂單訊息接收應用程式 1502
47.7接收結果 1508
47.7.1確認佇列 1508
47.7.2回響佇列 1509
47.8事務佇列 1509
47.9訊息佇列和WCF 1510
47.9.1帶數據協定的實體類 1511
47.9.2WCF服務協定 1512
47.9.3WCF訊息接收應用程式 1513
47.9.4WCF訊息傳送應用程式 1515
47.10訊息佇列的安裝 1517
47.11小結 1517