內容介紹
《ASP.NET 4高級程式設計(第4版)》,本書是ASP.NET領域的鴻篇巨製,全面講解了ASP.NET4的各種特性及其背後的工作原理,並給出了許多針對如何構建複雜、可擴展的網站從實踐中得出的建議。作者介紹
Matthew MacDonald 世界頂尖的微軟技術專家,微軟MVP。他是Inside Visual Basic、ASP Today、Hardcore Visual Studio .NET等著名軟體開發雜誌的特約作者,還寫作了多部膾炙人口的編程暢銷書,本書為其代表作。Adam Freeman
現任某跨國銀行CTO和COO,經驗豐富的IT專家。他在很多公司擔任過高級職務,著有多部Java和.NET方面的圖書。
Mario Szpuszta微軟奧地利開發者和平台組架構師,有豐富的Web套用和安全軟體開發和集成經驗。他也是社區內非常活躍的技術專家,經常在各種頂級技術會議中發表演講。除本書外,他還是名著Advanced .NET Remoting的作者
作品目錄
第一部分核心概念第1 章ASP.NET 簡介2
1.1ASP.NET 的7 大要點2
1.1.1要點1:ASP.NET 是同.NETFramework 集成在一起的 2
1.1.2要點2:ASP.NET 是編譯執行的,而不是解釋執行的 3
1.1.3要點3:ASP.NET 支持多語言 4
1.1.4要點4:ASP.NET 運行在公共語言運行庫內 6
1.1.5要點5:ASP.NET 是面向對象的 7
1.1.6要點6:ASP.NET 支持所有的瀏覽器 8
1.1.7要點7:ASP.NET 易於部署和配置 8
1.2ASP.NET 的演變 9
1.2.1ASP.NET 1.0 和ASP.NET1.1 9
1.2.2 ASP.NET 2.09
1.2.3ASP.NET 3.5 10
1.2.4ASP.NET 4 12
1.2.5Silverlight 14
1.3總結 15
第2 章Visual Studio16
2.1Visual Studio 16
2.1.1網站和Web 項目 17
2.1.2創建無項目檔案的網站 18
2.1.3設計網頁 21
2.2Visual StudioIDE 26
2.2.1解決方案資源管理器 28
2.2.2文檔視窗 29
2.2.3工具箱 29
2.2.4錯誤列表和任務列表 30
2.2.5伺服器資源管理器 31
2.3代碼編輯器 32
2.3.1添加程式集引用 33
2.3.2智慧型感知和大綱顯示35
2.3.3Visual Studio 2010 改進 37
2.4編碼模型42
2.4.1代碼隱藏檔案如何與頁面連線 44
2.4.2控制項標籤如何與頁面變數連線 44
2.4.3事件如何與事件處理程式連線. 46
2.5Web 項目 47
2.5.1基於項目的開發 47
2.5.2創建Web 項目 48
2.5.3遷移舊版Visual Studio 創建的網站 49
2.6Visual Studio 調試 51
2.6.1 單步調試 52
2.6.2變數監視 54
2.6.3高級斷點 55
2.7Web Development Helper 56
2.8總結 57
第3 章Web 窗體 58
3.1頁面處理 58
3.1.1HTML 表單 59
3.1.2動態用戶界面 60
3.1.3ASP.NET 事件模型 61
3.1.4自動回送 62
3.1.5視圖狀態 63
3.1.6XHTML 兼容性 66
3.1.7客戶端控制項ID 71
3.2Web 窗體處理階段 73
3.2.1頁面框架初始化 74
3.2.2用戶代碼初始化 74
3.2.3驗證 74
3.2.4事件處理75
3.2.5自動數據綁定 75
3.2.6清除 76
3.2.7頁面流示例76
3.3作為控制項容器的頁面 78
3.3.1顯示控制項樹78
3.3.2頁頭82
3.3.3動態控制項的創建 82
3.4Page 類 84
3.4.1Session、Application 和Cache84
3.4.2Request85
3.4.3Response86
3.4.4Server 88
3.4.5User 90
3.4.6Trace 91
3.4.7訪問其他類中的HTTP 上下文96
3.5總結96
第4 章伺服器控制項97
4.1伺服器控制項的類型97
4.2HTML 伺服器控制項99
4.2.1HtmlControl 類100
4.2.2HtmlContainerControl 類 100
4.2.3HtmlInputControl 類 100
4.2.4HTML 伺服器控制項類 101
4.2.5設定Style 特性和其他屬性 102
4.2.6通過編程創建伺服器控制項103
4.2.7處理伺服器端事件 104
4.3Web 控制項107
4.3.1WebControl 基類 107
4.3.2基本的Web 控制項類 108
4.3.3單位 109
4.3.4枚舉110
4.3.5顏色110
4.3.6字型111
4.3.7焦點12
4.3.8默認按鈕113
4.3.9可滾動面板 114
4.3.10處理Web 控制項事件 114
4.4List 控制項116
4.4.1Selectable 列表控制項117
4.4.2BulletedList 控制項120
4.5輸入驗證控制項121
4.5.1驗證控制項 121
4.5.2驗證流程122
4.5.3BaseValidator 類 122
4.5.4RequiredFieldValidator 控制項124
4.5.5RangeValidator 控制項 124
4.5.6CompareValidator 控制項125
4.5.7RegularExpressionValidator 控制項 125
4.5.8CustomValidator 控制項 127
4.5.9ValidationSummary 控制項 128
4.5.10通過編程使用驗證器 129
4.5.11驗證組130
4.6富控制項 132
4.6.1AdRotator 控制項 132
4.6.2Calendar 控制項 134
4.7總結136
第5 章ASP.NET 應用程式137
5.1剖析ASP.NET 應用程式137
5.1.1應用程式域 137
5.1.2 應用程式生命周期 138
5.1.3應用程式更新 139
5.1.4應用程式目錄結構139
5.2global.asax 應用程式檔案140
5.2.1應用程式事件 141
5.2.2演示應用程式事件 143
5.3ASP.NET 配置 144
5.3.1machine.config 檔案 144
5.3.2web.config 檔案147
5.3.3<system.web>設定150
5.3.4<system.webServer> 150
5.3.5<appSettings> 150
5.3.6<connectionStrings> 152
5.3.7通過編程讀寫配置節 152
5.3.8網站管理工具(WAT) 155
5.3.9擴展配置檔案結構 156
5.3.10加密配置節 159
5.4 . NET 組件 161
5.4.1創建組件 161
5.4.2通過App_Code 目錄使用組件 162
5.4.3通過Bin 目錄使用組件 163
5.5擴展HTTP 管道165
5.5.1HTTP 處理程式 165
5.5.2創建自定義的HTTP 處理程式 167
5.5.3配置自定義的HTTP 處理程式 168
5.5.4使用無須配置的HTTP 處理程式 169
5.5.5創建高級的HTTP 處理程式 169
5.5.6為非HTML 內容創建HTTP處理程式 171
5.5.7HTTP 模組 173
5.5.8創建自定義HTTP 模組 174
5.6總結176
第6 章狀態管理 177
6.1ASP.NET 狀態管理 177
6.2視圖狀態 179
6.2.1視圖狀態示例 180
6.2.2在視圖狀態中保存對象 181
6.2.3視圖狀態評估 183
6.2.4有選擇地禁用視圖狀態 184
6.2.5視圖狀態安全 185
6.3在頁面間傳送信息186
6.3.1查詢字元串 187
6.3.2跨頁回發 188
6.4cookie 193
6.5會話狀態 194
6.5.1會話架構 194
6.5.2使用會話狀態 196
6.5.3配置會話狀態 197
6.5.4會話狀態安全 202
6.6應用程式狀態 203
6.7總結 206
第二部 分 數據訪問
第7 章ADO.NET 基礎 208
7.1ADO.NET 架構209
7.1.1ADO.NET 數據提供程式 209
7.1.2ADO.NET 的標準化 210
7.1.3基本ADO.NET 類 211
7.2Connection 類 212
7.2.1連線字元串 212
7.2.2測試連線214
7.2.3連線池 215
7.3Command 類和DataReader 類 217
7.3.1Command 基礎 217
7.3.2DataReader 類 218
7.3.3 ExecuteReader()方法和DataReader 218
7.3.4ExecuteScalar()方法 223
7.3.5ExecuteNonQuery()方法 223
7.3.6SQL 注入攻擊 224
7.3.7使用參數化命令 226
7.3.8調用存儲過程 227
7.4事務 229
7.4.1事務和ASP.NET 應用程式 230
7.4.2隔離級別 234
7.4.3保存點 235
7.5提供程式無關的代碼 235
7.5.1創建工廠 236
7.5.2用工廠創建對象237
7.5.3使用提供程式無關的代碼的查詢 237
7.6總結 239
第8 章數據組件和DataSet 240
8.1構建數據訪問組件 240
8.1.1數據包241
8.1.2存儲過程 242
8.1.3數據套用類 243
8.1.4測試資料庫組件 248
8.2非連線的數據 249
8.2.1Web 應用程式和DataSet 250
8.2.2XML 集成 251
8.3DataSet 類251
8.4 DataAdapter 類252
8.4.1填充DataSet 253
8.4.2使用多個表和關係 254
8.4.3查找特定行257
8.4.4在數據訪問類里使用DataSet 257
8.4.5數據綁定 258
8.5DataView 類 259
8.5.1使用DataView 排序259
8.5.2使用DataView 過濾 261
8.5.3使用關係的高級過濾 262
8.5.4計算列 263
8.6總結264
第9 章數據綁定265
9.1基本的數據綁定265
9.1.1單值綁定266
9.1.2其他類型的表達式 268
9.1.3重複值綁定 271
9.2數據源控制項277
9.3SqlDataSource278
9.3.1選擇記錄 279
9.3.2參數化命令 281
9.3.3錯誤處理 285
9.3.4更新記錄286
9.3.5刪除記錄 289
9.3.6插入記錄 289
9.3.7SqlDataSource 的不足 290
9.4ObjectDataSource 291
9.4.1選擇記錄 291
9.4.2更新記錄295
9.4.3使用數據對象執行更新 296
9.5數據源控制項的限制299
9.5.1問題 299
9.5.2添加其他項 300
9.5.3使用SqlDataSource 處理其他選項 301
9.5.4使用ObjectDataSource 處理其他選項 301
9.6總結302
第10 章富數據控制項303
10.1GridView 303
10.2格式化GridView307
10.2.1格式化欄位 307
10.2.2樣式308
10.2.3格式化特定值 311
10.3GridView 行選擇313
10.3.1使用選擇來創建主—從表單314
10.3.2SelectedIndexChanged 事件 315
10.3.3將數據欄位用作選擇按鈕315
10.4對GridView 排序316
10.4.1使用SqlDataSource 排序 317
10.4.2使用ObjectDataSource 排序 318
10.4.3排序和選擇 319
10.4.4高級排序 319
10.5GridView 分頁320
10.5.1自動分頁 320
10.5.2分頁和選擇 322
10.5.3ObjectDataSource 的自定義分頁 322
10.5.4定製分頁欄 324
10.6GridView 模板325
10.6.1使用多個模板 327
10.6.2在Visual Studio 中編輯模板 328
10.6.3綁定到方法 328
10.6.4處理模板中的事件 330
10.6.5使用模板編輯330
10.6.6模板中的客戶端ID 335
10.7ListView 336
10.7.1分組 338
10.7.2分頁 340
10.8DetailsView 和FormView 341
10.8.1DetailsView 341
10.8.2FormView 344
10.9高級格線 345
10.9.1GridView 中的匯總 345
10.9.2單個表中的父/子視圖 347
10.9.3使用查找表編輯欄位 349
10.9.4處理來自資料庫的圖片 351
10.9.5探測並發衝突355
10.10總結 359
第11 章快取和異步頁面360
11.1理解ASP.NET 快取360
11.2輸出快取361
11.2.1聲明性的輸出快取 361
11.2.2快取和查詢字元串 362
11.2.3使用特定查詢字元串參數的快取363
11.2.4自定義快取控制 364
11.2.5使用HttpCachePolicy 類進行快取 365
11.2.6快取後替換和部分頁快取 365
11.2.7快取用戶配置 367
11.2.8快取配置 368
11.2.9輸出快取擴展 369
11.3數據快取 373
11.3.1向快取添加項目 373
11.3.2簡單的快取測試 375
11.3.3快取優先權 376
11.3.4使用數據源控制項的快取 376
11.4快取依賴 379
11.4.1檔案和快取項目依賴 379
11.4.2聚合依賴 380
11.4.3移除項目回調 381
11.4.4理解SQL 快取通知 383
11.4.5快取通知的工作方式 384
11.4.6啟用通知 384
11.4.7創建快取依賴 385
11.5自定義快取依賴386
11.5.1基本的自定義快取依賴 386
11.5.2使用訊息佇列的自定義快取依賴 387
11.6異步頁面 389
11.6.1創建異步頁面 390
11.6.2在異步頁面中查詢數據392
11.6.3錯誤處理 393
11.6.4在異步任務中使用快取 395
11.6.5多異步任務和逾時 397
11.7總結399
第12 章檔案和流400
12.1使用檔案系統 400
12.1.1Directory 類和File 類 400
12.1.2DirectoryInfo 類和FileInfo 類 402
12.1.3DriveInfo 類 404
12.1.4使用Attributes 405
12.1.5使用通配符過濾檔案 407
12.1.6獲取檔案的版本信息 407
12.1.7Path 類 408
12.1.8檔案瀏覽器410
12.2使用流讀寫檔案414
12.2.1文本檔案 415
12.2.2二進制檔案 416
12.2.3上傳檔案 417
12.2.4使檔案對多用戶安全 419
12.2.5壓縮 423
12.3序列化 423
12.4總結 426
第13 章LINQ 427
13.1LINQ 基礎427
13.1.1延遲執行 429
13.1.2LINQ 是如何工作的 429
13.1.3LINQ 表達式 430
13.1.4揭秘LINQ 表達式 436
13.2LINQ to DataSet 439
13.2.1強類型的DataSet 441
13.2.2空值 441
13.3LINQ to Entities 441
13.3.1生成數據模型 442
13.3.2數據模型類 442
13.3.3實體關係 444
13.3.4查詢存儲過程 446
13.3.5LINQ to Entities 查詢揭秘 447
13.4資料庫操作 452
13.4.1插入 452
13.4.2更新 454
13.4.3刪除 454
13.4.4管理並發 455
13.4.5處理並發衝突 455
13.5EntityDataSource 控制項 459
13.5.1顯示數據459
13.5.2獲取關聯數據463
13.5.3編輯數據 464
13.5.4驗證464
13.6使用QueryExtender 控制項465
13.6.1使用SearchExperssion 466
13.6.2使用RangeExpression 467
13.6.3使用PropertyExpression 467
13.6.4使用MethodExpression 468
13.7總結 468
第14 章XML 470
14.1什麼時候使用XML 470
14.2XML 簡介 471
14.2.1XML 的優點 472
14.2.2格式良好的XML 472
14.2.3XML 命名空間 473
14.2.4XML 架構 474
14.3基於流的XML 處理475
14.3.1寫XML 檔案 476
14.3.2讀取XML 檔案 478
14.4記憶體中的XML 處理481
14.4.1XmlDocument 482
14.4.2XPathNavigator 485
14.4.3XDocument 486
14.5搜尋XML 內容491
14.5.1搜尋XmlDocument 491
14.5.2使用XPath 搜尋XmlDocument 493
14.5.3使用LINQ 搜尋XDocument 494
14.6驗證XML 內容496
14.6.1基本架構 496
14.6.2驗證XmlDocument 497
14.6.3使用XDocument 進行驗證 498
14.7轉換XML 內容499
14.7.1基本的樣式表 499
14.7.2使用XslCompiledTransform 500
14.7.3使用Xml 控制項 501
14.7.4使用LINQ to XML 轉換XML 502
14.8XML 數據綁定504
14.8.1非層次化綁定504
14.8.2使用XPath 506
14.8.3嵌套的格線 508
14.8.4使用TreeView 的層次化綁定 509
14.8.5使用XSLT 511
14.8.6綁定到來自其他源的XML內容 512
14.8.7通過XmlDataSource更新XML 513
14.9XML 和ADO.NET 數據集513
14.9.1把DataSet 轉換為XML 514
14.9.2把DataSet 作為XML 訪問 515
14.10總結 517
第三部分構建ASP.NET 網站第15 章 用戶控制項 520
15.1用戶控制項基礎 520
15.1.1創建簡單的用戶控制項 521
15.1.2把頁面轉換成用戶控制項 522
15.2為用戶控制項添加代碼523
15.2.1處理事件 523
15.2.2添加屬性 524
15.2.3使用自定義對象 525
15.2.4添加事件 528
15.2.5公開內部Web 控制項 530
15.3動態載入用戶控制項 531
15.4局部頁面快取534
15.4.1VaryByControl 535
15.4.2共享快取控制項 536
15.5總結 537
第16 章主題和母版頁 538
16.1層疊樣式表538
16.1.1創建樣式表 538
16.1.2套用樣式表規則 540
16.2主題 542
16.2.1主題資料夾和外觀 543
16.2.2套用簡單主題 544
16.2.3處理主題衝突 545
16.2.4為同一控制項創建多個外觀 546
16.2.5含有模板和圖片的外觀 547
16.2.6在主題里使用CSS 549
16.2.7通過配置檔案來套用主題 549
16.2.8動態套用主題 550
16.3標準化網站布局551
16.4母版頁基礎552
16.4.1簡單的母版頁552
16.4.2簡單的內容頁 554
16.4.3默認內容 556
16.4.4具有表格和CSS 布局的母版頁556
16.4.5母版頁和相對路徑 559
16.4.6通過配置檔案套用母版頁 559
16.5高級母版頁560
16.5.1和母版頁類互動560
16.5.2動態設定母版頁561
16.5.3嵌套母版頁 561
16.6總結563
第17 章網站導航564
17.1多視圖頁面564
17.1.1MultiView 控制項565
17.1.2Wizard 控制項568
17.2站點地圖 575
17.2.1定義站點地圖576
17.2.2綁定站點地圖577
17.2.3導航路徑578
17.2.4顯示站點地圖的一部分 580
17.2.5站點地圖對象 583
17.2.6加入自定義站點地圖信息 584
17.2.7創建自定義的SiteMapProvider 584
17.2.8安全調整 590
17.3URL 映射和路由592
17.3.1URL 映射592
17.3.2URL 路由 593
17.4TreeView 控制項594
17.4.1TreeNode 595
17.4.2按需填充節點 597
17.4.3TreeView 樣式 598
17.5Menu 控制項601
17.5.1Menu 樣式 603
17.5.2Menu 模板 605
17.6總結 606
第18 章網站部署 607
18.1安裝和配置IIS607
18.1.1安裝IIS 7607
18.1.2管理IIS 7 608
18.2部署網站 610
18.2.1通過複製檔案進行部署 611
18.2.2使用Web 部署 614
18.2.3通過FTP 部署 621
18.3管理網站 626
18.3.1創建新站點 626
18.3.2創建虛擬目錄627
18.3.3使用VirtualPathProvider628
18.3.4使用應用程式池631
18.3.5使用應用程式預熱 633
18.4擴展集成管道 634
18.4.1創建處理程式 634
18.4.2部署處理程式 635
18.4.3配置處理程式 635
18.4.4測試處理程式 636
18.5總結 636
第四部分安 全
第19 章ASP.NET 安全模型 638
19.1為何創建安全軟體638
19.1.1理解潛在的威脅 638
19.1.2安全編程原則 639
19.1.3理解Gatekeeper 640
19.2理解安全級別 641
19.2.1驗證 641
19.2.2授權 642
19.2.3機密性和完整性643
19.2.4互相協作 643
19.3理解SSL644
19.3.1理解證書 645
19.3.2理解SSL 645
19.3.3在IIS 7.x 中配置SSL 646
19.4總結649
第20 章表單驗證650
20.1表單驗證介紹 650
20.1.1為什麼使用表單驗證 650
20.1.2為什麼不使用表單驗證 652
20.1.3為什麼不自己實現cookie驗證 653
20.1.4表單驗證類 654
20.2實現表單驗證 655
20.2.1配置表單驗證 655
20.2.2禁止匿名用戶訪問 657
20.2.3創建自定義登錄頁面 658
20.2.4自定義憑證存儲 662
20.2.5表單驗證中的持久化cookie 663
20.3IIS 7.x 和表單驗證 665
20.4總結 669
第21 章成員資格670
21.1介紹ASP.NET 的成員資格API 670
21.2使用成員資格API 672
21.2.1配置表單驗證 673
21.2.2創建數據存儲 674
21.2.3配置連線字元串和成員資格提供程式 679
21.2.4創建並驗證用戶681
21.3使用安全控制項683
21.3.1Login 控制項684
21.3.2LoginStatus 控制項 693
21.3.3LoginView 控制項693
21.3.4PasswordRecovery 控制項 694
21.3.5ChangePassword 控制項 697
21.3.6CreateUserWizard 控制項 698
21.4在IIS 7.x 里配置成員資格702
21.4.1配置提供程式和用戶 702
21.4.2在其他應用程式里使用成員資格API 703
21.5使用Membership 類 705
21.5.1從存儲中獲得用戶 706
21.5.2更新存儲中的用戶 708
21.5.3創建和刪除用戶 708
21.5.4檢驗用戶 709
21.6總結709
第22 章Windows 驗證710
22.1介紹Windows 驗證710
22.1.1為什麼使用Windows 驗證 710
22.1.2為什麼不使用Windows驗證 711
22.1.3Windows 驗證機制 712
22.2實現Windows 驗證717
22.2.1配置IIS 7.x 717
22.2.2配置ASP.NET 718
22.2.3IIS 7.x 管道 719
22.2.4禁止匿名用戶訪問 722
22.2.5訪問Windows 用戶信息 723
22.3身份模擬727
22.3.1Windows 中的身份模擬和委託728
22.3.2經過配置的身份模擬 729
22.3.3可程式的身份模擬 729
22.4總結732
第23 章授權和角色733
23.1URL 授權733
23.2檔案授權738
23.3在代碼中檢查授權739
23.3.1使用IsInRole()方法 739
23.3.2使用PrincipalPermission 類740
23.4為基於角色的授權使用角色API742
23.4.1和角色一起使用LoginView控制項 747
23.4.2通過編程訪問角色 748
23.4.3在Windows 驗證中使用角色API 750
23.5IIS 7.x 里的授權和角色752
23.5.1在IIS 7.x 里使用ASP.NET角色授權 754
23.5.2在IIS 7.x 中管理ASP.NET角色756
23.6總結 757
第24 章用戶配置 758
24.1理解用戶配置 758
24.1.1用戶配置的性能758
24.1.2用戶配置如何存儲數據 759
24.1.3用戶配置和驗證 760
24.1.4用戶配置與自定義的數據組件 760
24.2使用SqlProfileProvider761
24.2.1創建用戶配置表 761
24.2.2配置提供程式763
24.2.3定義用戶配置屬性 764
24.2.4使用用戶配置屬性 764
24.2.5用戶配置序列化766
24.2.6用戶配置組767
24.2.7用戶配置和自定義的數據類型768
24.2.8用戶配置API 771
24.2.9匿名用戶配置773
24.3自定義的用戶配置提供程式775
24.3.1自定義的用戶配置提供程式類775
24.3.2設計FactoredProfileProvider 777
24.3.3通過編碼實現FactoredProfileProvider 778
24.3.4測試FactoredProfileProvider 781
24.4總結 784
第25 章加密785
25.1加密數據:機密性問題785
25.2.NET 加密命名空間786
25.3理解.NET 加密類789
25.3.1對稱加密算法 790
25.3.2非對稱加密 791
25.3.3抽象加密類 791
25.3.4ICryptoTransform 接口 792
25.3.5CryptoStream 類793
25.4加密敏感數據793
25.4.1管理秘密信息 794
25.4.2使用對稱算法795
25.4.3使用非對稱算法799
25.4.4加密資料庫中的敏感數據801
25.5加密查詢字元串806
25.5.1包裝查詢字元串806
25.5.2創建一個測試頁面 808
25.6總結 810
第26 章自定義成員資格提供程式811
26.1自定義提供程式的架構 811
26.2創建自定義提供程式的基本步驟 812
26.2.1自定義提供程式的總體設計 813
26.2.2設計並實現自定義存儲 813
26.2.3實現提供程式類820
26.2.4使用自定義提供程式類 837
26.3總結 840
第五部分高級用戶界面第27 章 自定義伺服器控制項842
27.1自定義伺服器控制項入門842
27.1.1創建簡單的自定義控制項 842
27.1.2使用自定義控制項844
27.1.3工具箱中的自定義控制項 845
27.1.4創建支持樣式屬性的Web控制項 847
27.1.5呈現過程 850
27.2處理不同的瀏覽器 852
27.2.1HtmlTextWriter 852
27.2.2瀏覽器檢測 852
27.2.3瀏覽器屬性 853
27.2.4覆蓋瀏覽器類型偵測 854
27.2.5自適應呈現 855
27.3控制項狀態和事件 856
27.3.1視圖狀態 856
27.3.2控制項狀態 858
27.3.3回傳數據和change 事件 860
27.3.4觸發回傳 862
27.4擴展現有的Web 控制項 863
27.4.1組合控制項 864
27.4.2派生控制項 866
27.5總結 869
第28 章圖形、GDI+和圖表 870
28.1ImageMap 控制項 870
28.1.1創建熱點871
28.1.2處理熱點單擊 872
28.1.3自定義熱點 873
28.2使用GDI+畫圖 875
28.2.1簡單繪製875
28.2.2圖像格式和質量 877
28.2.3Graphics 類 878
28.2.4使用GraphicsPath 880
28.2.5畫筆 881
28.2.6畫刷 883
28.3在網頁上嵌入動態圖形 885
28.3.1使用PNG 格式885
28.3.2傳遞信息給動態圖像 886
28.3.3使用GDI+的自定義控制項 888
28.4使用Chart 控制項 892
28.4.1創建基本的圖表 892
28.4.2用數據填充圖表 897
28.5總結904
第29 章JavaScript 和Ajax 技術 905
29.1JavaScript 本質 905
29.1.1HTML DOM 906
29.1.2客戶端事件 906
29.1.3腳本塊908
29.1.4操縱HTML 元素 910
29.1.5調試JavaScript 910
29.2基本的JavaScript 示例 912
29.2.1創建JavaScript 頁面處理器 912
29.2.2使用JavaScript 異步下載圖片 915
29.2.3呈現腳本塊 919
29.3腳本注入攻擊 920
29.3.1請求驗證 921
29.3.2禁用請求驗證 922
29.3.3擴展請求驗證 923
29.4帶有JavaScript 的自定義控制項925
29.4.1彈出視窗 925
29.4.2滾動按鈕 928
29.5框 架931
29.5.1框架導航 932
29.5.2內聯框架 933
29.6理解Ajax934
29.6.1XMLHttpRequest 對象 935
29.6.2Ajax 示例936
29.7在客戶端回調中使用Ajax 939
29.7.1創建客戶端回調 940
29.7.2深入了解客戶端回調 945
29.7.3自定義控制項里的客戶端回調 946
29.8總結949
第30 章ASP.NET AJAX 950
30.1介紹ASP.NET AJAX 950
30.1.1客戶端的ASP.NET AJAX:腳本庫 951
30.1.2伺服器端的ASP.NET AJAX:ScriptManager 952
30.2伺服器回調952
30.2.1ASP.NET AJAX 中的Web服務 953
30.2.2在頁面里放置Web 方法 959
30.2.3ASP.NET AJAX 應用程式服務 960
30.3ASP.NET AJAX 伺服器控制項966
30.3.1使用UpdatePanel 的局部呈現 966
30.3.2使用Timer 的定時刷新973
30.3.3使用UpdateProgress 的耗時更新974
30.3.4管理瀏覽器歷史976
30.4深入客戶端庫979
30.4.1理解客戶端模型980
30.4.2JavaScript 的面向對象編程 981
30.4.3網頁框架 987
30.5控制項擴展器 991
30.5.1安裝ASP.NET AJAX 控制項工具包992
30.5.2AutoCompleteExtender 993
30.5.3ASP.NET AJAX 控制項工具包 996
30.6總結999
第31 章使用Web 部件頁面的入口網站 1000
31.1典型門戶頁面1000
31.2基本Web 部件頁面1002
31.2.1創建頁面設計 1002
31.2.2WebPartManager 和WebPartZone 1003
31.2.3向頁面添加Web 部件 1004
31.2.4定製頁面 1008
31.3創建Web 部件 1010
31.3.1簡單的Web 部件任務 1010
31.3.2開發高級Web 部件 1017
31.3.3Web 部件編輯器 1024
31.3.4連線Web 部件1029
31.3.5自定義動詞和Web 部件1036
31.3.6用戶控制項和高級Web 部件 1037
31.3.7動態上傳Web 部件 1040
31.3.8對Web 部件的授權 1044
31.3.9個性化的最後任務1045
31.4總結 1046
第32 章MVC 1047
32.1MVC 和Web 表單的選擇 1047
32.2創建基本的MVC 應用程式 1047
32.2.1創建模型 1048
32.2.2創建控制器 1049
32.2.3創建Index 視圖 1050
32.2.4測試(未完成的)應用程式 1050
32.2.5完成控制器和視圖1051
32.2.6修改Site.Master 檔案 1053
32.3擴展基礎的MVC 應用程式 1053
32.3.1配置路由1054
32.3.2增加錯誤處理1055
32.3.3增加驗證1056
32.3.4增強數據存儲訪問 1057
32.3.5增加對外鍵約束的支持1059
32.4自定義視圖1059
32.4.1修改視圖1060
32.4.2增加視圖數據1062
32.5強化模型1063
32.6驗證數據1066
32.6.1執行基本的驗證1067
32.6.2增加驗證標註1068
32.7使用動作結果 1071
32.7.1返回JSON 數據 1072
32.7.2調用其他控制器方法 1072
32.8總結1074
第33 章動態數據 1075
33.1創建動態數據應用程式 1075
33.1.1創建動態數據網站 1075
33.1.2檢驗動態數據網站1077
33.2深入理解動態數據項目1080
33.3自定義動態數據網站 1080
33.3.1使用模板進行自定義 1081
33.3.2使用路由進行自定義 1087
33.3.3使用元數據進行自定義1094
33.3.4自定義驗證 1099
33.4總結 1103
第34 章Silverlight1104
34.1理解Silverlight 1105
34.1.1Silverlight 與Flash 對比1106
34.1.2Silverlight 系統需求 1107
34.2創建Silverlight 解決方案 1108
34.2. 1Silverlight 編譯 1109
34.2.2入口頁面1110
34.3創建Silverlight 項目 1114
34.3.1設計Silverlight 頁面1114
34.3.2理解XAML1117
34.3.3設定屬性 1118
34.3.4XAML 代碼隱藏 1119
34.3.5處理事件1120
34.3.6了解Silverlight 類庫1121
34.4布局1122
34.4.1Canvas 1123
34.4.2格線 1127
34.5動畫 1131
34.5.1動畫基礎知識1132
34.5.2定義動畫1132
34.5.3StoryBoard 類1133
34.5.4互動式動畫實例1135
34.5.5變換 1138
34.6Silverlight 使用Web 服務 1141
34.6.1創建Web 服務1141
34.6.2添加Web 引用1142
34.6.3調用Web 服務1143
34.6.4配置Web 服務URL 1144
34.6.5跨域Web 服務調用 1144
34.7總結 1146