第1章 竅門程序回顧 1
1.1 由ASP.NET 2.0替代的
向導竅門程序 1
1.1.1 ASP.NET 向導先驅 1
1.1.2 ASP.NET v2.0中的向導 2
1.1.3 實現(xiàn)ASP.NET 2.0向導 2
1.2 Master Page: 以前和現(xiàn)在 9
1.2.1 ASP.NET v1.1中的
Master Page模板 10
1.2.2 ASP.NET v2.0中的
Master Page 10
1.2.3 實現(xiàn)Master Page 10
1.3 URL重寫功能 13
1.3.1 為什么要重寫URL 14
1.3.2 ASP.NET v1.1的竅門程序 14
1.3.3 ASP.NET v2.0 的替代品 14
1.3.4 實現(xiàn)URL映射功能 14
1.4 小結 24
第2章 開始新項目 25
2.1 組織項目和解決方案 26
2.1.1 創(chuàng)建解決方案 27
2.1.2 創(chuàng)建Web項目 28
2.1.3 從Web文件夾中刪除文件 28
2.1.4 ASP.NET小組的
一個竅門程序 29
2.1.5 創(chuàng)建公共類庫項目 29
2.1.6 選擇命名空間 30
2.1.7 使用數(shù)據(jù)庫項目 31
2.1.8 使用SQL Server項目 33
2.1.9 使用Web安裝和部署項目 34
2.2 創(chuàng)建項目引用 34
2.3 使用源代碼控制 36
2.4 使用Page基類 36
2.5 使用Master Page 38
2.6 建立第一個內容頁面 40
2.7 建立主題 41
2.7.1 使用Skin還是CSS 41
2.7.2 建立Skin文件 41
2.7.3 給Skin文件命名 41
2.8 Web配置和團隊 42
2.8.1 簡單方式 42
2.8.2 外部文件方式 42
2.9 導出模板 43
2.10 小結 43
第3章 提供程序的功能 45
3.1 什么是提供程序模型 45
3.2 ASP.NET 2.0附帶的提供程序 46
3.3 擴展內置的提供程序 48
3.3.1 繼承SqlMembershipProvider 48
3.3.2 配置新的提供程序 49
3.3.3 檢查提供程序的配置 49
3.3.4 重寫ValidateUser 50
3.4 建立自己的成員提供程序 51
3.5 建立自己的角色提供程序 55
3.6 建立角色提供程序代理 57
3.6.1 實現(xiàn)角色代理提供程序 58
3.6.2 為角色代理提供
程序修改Web.Config 59
3.7 建立定制的提供程序 60
3.7.1 定制提供程序的示例 60
3.7.2 定制提供程序的基礎 61
3.8 使用ASP.NET 1.1 66
3.9 小結 67
3.10 提供程序的其他資源 67
第4章 更智能的Web客戶程序 69
4.1 更智能的Web客戶程序 69
4.2 AJAX體驗 70
4.3 之后就有了ASP.NET 2.0 70
4.4 客戶回調的工作原理 71
4.5 Atlas 82
4.5.1 ASP.NET小組的一個
竅門程序 82
4.5.2 Atlas不僅僅是一個
客戶端腳本庫 83
4.5.3 現(xiàn)在要做的工作 93
4.6 小結 94
第5章 調試已創(chuàng)建好的代碼 97
5.1 一步到位的顯示功能 97
5.1.1 可視化器的概念 97
5.1.2 建立可視化器 97
5.1.3 測試可視化器 102
5.1.4 部署可視化器 103
5.2 調整對象以便于調試 104
5.2.1 設置對象成員的可見性 105
5.2.2 用類型代理簡化對象視圖 107
5.2.3 給業(yè)務對象添加調試邏輯 108
5.2.4 總結 110
5.3 小結 113
第6章 控件的竅門程序 115
6.1 用XML控件發(fā)布RSS 115
6.1.1 內容管理 115
6.1.2 定義控件 116
6.1.3 提取內容 116
6.1.4 高速緩存以提高性能 117
6.1.5 管理XSLT源代碼 118
6.2 快速定制類型轉換器 120
6.2.1 創(chuàng)建定制的類型轉換器 120
6.2.2 建立定制的動作列表
和設計器 125
6.2.3 管理設計期間的支持 129
6.2.4 進入Visual Studio 2005
自動對象模型 131
6.2.5 實現(xiàn)定制的類型編輯器 132
6.2.6 在設計期間調試 139
6.3 小結 139
第7章 GridView竅門程序 141
7.1 行的動態(tài)擴展 141
7.2 為GridView控件創(chuàng)建
PagerTemplate 146
7.3 刪除GridView的選中行 152
7.4 更新GridView的所有行 157
7.5 添加選中的行 165
7.6 使用標題中的上下箭頭
進行排序 170
7.7 給GridView控件添加
客戶端腳本 173
7.8 用IPostBackEventHandler
擴展GridView 175
7.9 小結 180
第8章 數(shù)據(jù)綁定 181
8.1 繼承自己的DataSource控件 181
8.2 使用數(shù)據(jù)源配置向導 183
8.2.1 添加控件設計器 188
8.2.2 生成與應用程序
相關的DataSource控件 190
8.3 擴展DataSource控件 190
8.3.1 在插入過程中處理默認值 191
8.3.2 擴展XMLDataSource
來調用對象 194
8.4 使用定制參數(shù) 198
8.5 擴展QueryStringParameter 198
8.5.1 建立定制參數(shù)來獲取數(shù)據(jù) 201
8.5.2 使用反射建立定制參數(shù) 203
8.5.3 從另一個DataSource
中獲得值 205
8.6 使用定制字段 209
8.7 小結 214
第9章 ViewState 215
9.1 ViewState:是邪惡之神
還是聰明的狐貍 215
9.2 LosFormatter:遺漏的
串行化器 216
9.3 處理ViewState 219
9.3.1 用ASP.NET 1.1分解
ViewState 219
9.3.2 壓縮ViewState 222
9.3.3 ViewState的其他存儲位置 225
9.3.4 把ViewState移到頁面
的底部 227
9.4 小結 230
第10章 高速緩存竅門程序 231
10.1 靜態(tài)高速緩存 231
10.1.1 Cache示例類 231
10.1.2 示例解決方案剖析 234
10.1.3 初始化高速緩存 234
10.1.4 讀取高速緩存 236
10.1.5 修改高速緩存 238
10.1.6 高速緩存的改變通知 239
10.1.7 刷新高速緩存 241
10.2 查看ASP.NET高速緩存 242
10.3 小結 247
第11章 從1.x遷移到ASP.NET 2.0 249
11.1 創(chuàng)建v1.x演示應用程序 249
11.1.1 用戶控件 250
11.1.2 類 251
11.1.3 頁面 252
11.2 理解遷移 255
11.2.1 執(zhí)行遷移 255
11.2.2 舊網站移到什么地方 257
11.2.3 重要的文件變化 258
11.2.4 理解用戶控件引用
的變化 259
11.2.5 轉換問題 259
11.3 小結 260
第12章 部署竅門程序 261
12.1 Copy Web Site向導 261
12.2 Publish Web Site向導 263
12.3 使用Windows安裝程序 264
12.4 產品團隊的一個竅門程序 264
12.4.1 安裝插件 265
12.4.2 添加到解決方案中 265
12.4.3 添加項目之后 266
12.4.4 修改默認選項 266
12.4.5 加快開發(fā)人員的
構建速度 266
12.4.6 構建服務器的特殊配置 267
12.4.7 設置編譯選項 268
12.4.8 輸出程序集選項 268
12.4.9 與其他項目共享
App_Code 269
12.4.10 簽署選項 269
12.4.11 部署選項 269
12.4.12 進一步定制部署項目 270
12.5 準備服務器 274
12.6 小結 275
12.7 其他部署資源 276
第13章 使用Visual Studio 277
13.1 ASP.NET代碼片斷 277
13.1.1 使用片斷 277
13.1.2 使用預生成的片斷 278
13.1.3 創(chuàng)建定制的片斷 278
13.1.4 管理片斷 280
13.1.5 使用片斷函數(shù) 281
13.2 簡化開發(fā)工作的設置 283
13.2.1 Source視圖和Design
視圖 283
13.2.2 使用另一個Web服務器 284
13.2.3 導入導出團隊設置 285
13.3 模板 285
13.3.1 定制的項模板 285
13.3.2 定制的項目模板 286
13.4 小結 287
第14章 安全竅門程序 289
14.1 避免SQL注射 289
14.2 IN表達式的參數(shù)化 292
14.3 防止規(guī)范化攻擊 295
14.4 使用新文件上載控件 297
14.5 安全地使用動態(tài)模擬功能 297
14.6 在Login控件中驗證強密碼 299
14.7 小結 300
第15章 建立自己的竅門程序 301
15.1 確定何時有竅門程序 301
15.1.1 竅門程序是否超出了
技術文檔 302
15.1.2 是否找出已有功能
的新用法 302
15.1.3 它是否不為人知 303
15.1.4 它是否可以重用 303
15.1.5 是否可以與其他人共享 304
15.1.6 可以擁有一個竅門程序 304
15.2 打磨竅門程序以發(fā)布它 304
15.2.1 注釋代碼 304
15.2.2 使代碼含義明確 305
15.2.3 使用公共編碼約定 305
15.2.4 編寫泛型例程 305
15.2.5 把竅門程序實現(xiàn)為
組件或控件 308
15.2.6 編寫文檔說明 309
15.3 通過團隊測試竅門程序
并獲得反饋 309
15.4 小結 310
第16章 Master Page 311
16.1 Master Page基礎 311
16.1.1 創(chuàng)建Master Page 312
16.1.2 創(chuàng)建內容頁面 313
16.2 編程修改Master Page 316
16.2.1 修改Master Page
的標題部分 316
16.2.2 查找Master Page
中的控件 316
16.2.3 定義Master Page的屬性 317
16.2.4 使用MasterType指令 318
16.3 嵌套Master Page 319
16.3.1 創(chuàng)建嵌套的Master Page 319
16.3.2 在Visual Studio .NET
2005中使用嵌套的
Master Page 321
16.4 在IIS應用程序之間共享
Master Page 324
16.4.1 把Master Page發(fā)布
為程序集 325
16.4.2 使用Web Deployment
Projects插件 328
16.5 動態(tài)修改內容頁面中的
Master Page 330
16.6 小結 334
第17章 處理程序和模塊 335
17.1 HttpModule 335
17.1.1 IP Blacklisting
HttpModule 335
17.1.2 用HttpModule重寫
或重定向URL 340
17.2 HttpHandler 344
17.2.1 樣板HttpHandler 344
17.2.2 不鼓勵依賴專用于
圖像的HttpHandler 347
17.2.3 用HttpHandler合成圖像 351
17.2.4 用HttpHandler生成閃電 353
17.3 聯(lián)合使用處理程序和模塊 357
17.4 小結 358