圖書信息
作 者:周金橋
出 版 社: 電子工業出版社
出版時間: 2009-7-1
頁 數:464頁
開 本: 16開
I S B N : 9787121090561
內 容 簡 介
本書是筆者對多年項目開發的總結,著重講述如何利用.NET開發出高效率和高安全性的Web應用程式,通過由淺入深、循序漸進的方式講解在.NET開發中涉及的方方面面。
本書適合於大專院校計算機系的學生閱讀,同時也適合初、中級Web開發人員,以及希望了解.NET企業級開發的編程愛好者使用。
本書的作者周金橋2002年畢業於江漢石油學院(長江大學的前身)建築工程系,畢業後在天津大港油田集團參加工作,2006年辭職前往山西,同年擔任微軟山西.NET俱樂部技術負責人,於2008年和2009年獲得微軟最有價值專家稱號(MVP)。
推 薦 語
本書的作者周金橋具有多年的.NET開發經驗,微軟最有價值專家(Microsoft MVP),本書很多知識點都來自於他的經驗總結。本書的一大特點是在講述基本原理的同時還會適當地延伸,使知識點能與實際項目結合起來,使之更適合指導實際開發。本書不僅僅是在簡單地陳述知識點,在書中還列舉了大量的容易混淆的知識點的對比。本書內容從難易程度上劃分為基礎知識部分、進階知識部分和高級知識部分,非常值得一讀。
本書的基礎知識部分攜讀者回顧了.NET的基礎、基本控制項、表單、數據綁定控制項、驗證控制項等,並介紹了Visual Studio 2008。此部分內容可以幫助初學者和初級開發人員對於.NET有一個整體了解並掌握其內容。進階知識部分作為基礎知識的延續,向中級開發人員講述了web.config詳解、.NET中的AJAX開發和.NET中的三層架構等內容。高級知識部分講解了開發高性能.NET應用程式涉及的問題,並以一個綜合實例來講述知識點在實際項目中的套用。
前 言
算算從事軟體開發已經有好幾個年頭了,在這些年開發了多少個網站我自己也記不清了。每次在開發中遇到問題解決以後我總喜歡把解決過程記錄下來放在網上,以備自己隨時查閱,直到有一天有一個朋友跟我說他在開發過程中每次遇到問題總能發現我也曾遇到過類似的問題,向我致謝的同時還建議我將這些問題整理成一個系統的知識系統,我當時接受了這個建議。
2008年9月,我整理出第一篇文章放在我的部落格上,我以為沒有人會在意,沒有想到當天就有大量的朋友在我的部落格上給我好評,鼓勵我繼續整理下去,正是有這樣一群朋友熱情的鼓勵,給了我無窮的動力,所以儘管每天回家都已經很晚很累了,但是我仍會打開筆記本繼續奮鬥,力爭早一日讓大家看到我的成果。我清楚地記得第一篇文章是從晚上9點開始寫,到凌晨才結束的,因為我打算將它寫成一個系列文章,冥思苦想之後我把這個系列文章起名為《.NET夜話》。之所以叫夜話,是因為我每天白天都在上班,寫這個系列文章的時候都是夜晚甚至凌晨。我喜歡品茶,在寫本書的過程中我都是一邊品茶一邊寫作,每每沒有思路的時候品茶總能給我靈感,讓我繼續寫下去。
正因為寫作的時候我在品茶,所以我是以一種寫散文的形式來寫作本書,寫完本章之後下一章寫什麼都是由當時的靈感來決定,而不是事先預計好的,也正是因為這樣,所以本書在大多數章節中都會著重講解一些知識點,然後對相關的知識點做一個延伸和拓展,這樣就不會拘泥於每一個細節之中。當然,既然決定把本書當做散文來做,要做到形散而神不散,在寫作過程中我還是有所側重的,那就是一切都基於企業開發所用到的知識點,整本書講解的就是企業開發的方方面面。我相信讀者在閱讀本書時也會有這種體會。
既然在寫作過程中我是抱著寫散文的心態去寫的,那么書中的章節大多數並沒有嚴格意義上的先後順序,所以讀者朋友可以從任何一個感興趣的章節去讀。不過,在這裡筆者要告訴讀者,本書不是一本介紹.NET API的書,書中列出了不少類、方法及控制項,這些都是筆者在開發中經常用到的,所以書中把它們單獨列出來講解。
按照寫作時的安排,我將整本書分作三個部分:基礎知識、進階知識和高級知識。基本知識點主要偏重.NET開發的基礎知識,初學者和初級開發人員應力求掌握這一部分;進階知識基於基礎知識進行拓展和延伸,中級開發人員應著重掌握這部分內容;高級知識講解了開發高性能.NET應用程式涉及的問題,並以一個綜合實例來講述知識點在實際項目中的套用。
本書中的代碼基於Visual Studio 2008和SQL Server 2005,因為經常需要訪問數據,所以在閱讀本書時要安裝上這個兩個軟體;然後將配書光碟中的資料庫附加到SQL Server 2005中,再按照本機的實際情況在web.config中配置資料庫連線字元串。此外,在書中還提到了不少的第三方軟體,請讀者到網上下載這些軟體並安裝。
如何閱讀本書散文一樣的寫作方式決定了在閱讀本書時完全不必按照本書的章節順序來閱讀本書,可以從任何一個感興趣的章節開始閱讀。不過,如果想紮實地掌握.NET開發技巧,我建議你不管以什麼順序來閱讀,但是一定要閱讀本書的每一個章節。
目 錄1 基 礎 知 識
第1章 .NET介紹 21.1 xhtml語言 2
1.2 靜態網頁 3
1.3 動態網頁 3
1.4 IIS的安裝和配置 3
1.5 .NET開發的預備知識 4
1.5.1 .NET簡介 4
1.5.2 在IIS上配置.NET 4
1.5.3 Visual Studio版本與
1.5.3 .NET Framework版本及
1.5.3 .NET版本之間的關係 7
1.5.4 .NET運行內幕 7
1.6 結論 9
2.1 Request對象 10
2.2 Response對象 11
2.3 Server對象 13
2.4 Session對象 14
2.5 Cookie對象 15
2.6 Application對象 16
2.7 ViewState對象 18
2.8 <%%>表達式 20
2.9 <%=%>表達式 20
2.10 目錄運算符 22
2.11 總結 22
3.1 HTML表單的提交方式 23
3.2 HTML控制項 25
3.3 獲取HTML控制項的值 25
3.4 SQL注入 26
3.5 亂碼問題 26
3.6 伺服器端表單 28
3.7 HTML伺服器控制項 28
3.8 總結 31
4.1 Visual Studio 2008網站
4.1 開發環境介紹 32
4.2 .NET網站類型介紹 33
4.3 創建基於解決方案的.NET
4.3 應用程式 35
4.4 .NET內置資料夾介紹 36
4.5 XML注釋 37
4.6 任務管理器 38
4.7 配置外部工具 39
4.8 代碼段管理器 40
4.9 發布.NET網站 44
4.10 總結 45
5.1 Page類介紹 46
5.1.1 單檔案頁模型 46
5.1.2 代碼隱藏頁模型 48
5.2 .NET頁面的生命周期 50
5.3 利用Page的事件進行統一
5.3 身份驗證 52
5.4 IsPostBack屬性 54
5.5 ValidateRequest屬性 55
5.6 ClientScript屬性 56
5.7 回調技術 60
5.8 總結 67
6.1 .NET伺服器控制項簡介 68
6.2 Button控制項 69
6.3 TextBox控制項 75
6.4 .NET伺服器控制項的特殊
6.4 客戶端事件 78
6.5 fileupload控制項 81
6.6 Literal控制項 84
6.7 Panel控制項 86
6.8 PlaceHolder控制項 88
6.9 總結 89
7.1 .NET簡介 90
7.2 Connection對象 93
7.3 Command對象 100
7.4 DataReader對象 101
7.5 DataAdapter對象 105
7.6 DataSet對象 105
7.7 DataTable對象 108
7.8 參數化SQL語句 110
7.9 分頁查詢SQL語句 111
7.10 總結 114
8.1 dropdownlist控制項 116
8.2 ListBox控制項 118
8.3 數據綁定表達式 120
8.4 GridView控制項 122
8.5 DataList控制項 133
8.6 Repeater控制項 136
8.7 Form View控制項 138
8.8 DetailsView控制項 141
8.9 總結 144
9.1 數據驗證介紹 145
9.2 客戶端腳本驗證 146
9.3 .NET驗證控制項概述 148
9.4 RequiredFieldValidator控制項 149
9.5 CompareValidator控制項 151
9.6 RangeValidator控制項 155
9.7 正則表達式 157
9.8 RegularExpressionValidator控制項 159
9.9 CustomValidator控制項 161
9.10 ValidationSummary控制項 165
9.11 分組驗證技術 167
9.12 總結 170
10.1 TreeView控制項 172
10.2 MultiView控制項 176
10.3 用JavaScript方式實現
10.3 選項卡式效果 181
10.4 Wizard控制項 186
10.5 MasterPage母板頁 190
10.6 總結 194
目錄2 進 階 知 識
第11章 web.config詳解 19611.1 配置檔案的查找算法 196
11.2 配置檔案節點介紹 198
11.2.1 <configSections>節點 198
11.2.2 <appSettings>節點 199
11.2.3 <connectionStrings>節點 199
11.2.4 <location>節點 199
11.2.5 <system.web>節點 200
11.3 配置檔案的讀/寫操作 209
11.4 總結 213
12.1 .NET底層之旅 214
12.2 IHttpModule接口 217
12.3 HttpApplication及Global.asax 220
12.4 IHttpHandler接口 224
12.4.1 實現自定義檔案類型處理 224
12.4.2 給圖片動態添加水印功能 226
12.4.3 防盜鏈功能 229
12.5 在IIS中配置自己編寫的
12.5 HttpHandler 236
12.6 總結 237
13.1 純JavaScript開發AJAX套用 238
13.2 第三方(AjaxPro)開發
13.2 AJAX套用 246
13.3 微軟AJAX控制項庫開發AJAX套用 254
13.3.1 ScriptManager控制項 254
13.3.2 ScriptManagerProxy控制項 255
13.3.3 UpdatePanel控制項 255
13.3.4 Timer控制項 259
13.3.5 UpdateProgress控制項 260
13.4 總結 265
14.1 分散式計算的概念 266
14.2 XML Web Service開發 266
14.2.1 XML Web Service介紹 266
14.2.2 XML Web Service伺服器端
14.2.2 開發及部署 268
14.2.3 WebService的部署 270
14.2.4 WebService客戶端開發 272
14.2.5 異步調用WebService 274
14.3 WCF開發 276
14.3.1 定義WCF服務契約和引入
14.3.1 WCF服務契約 277
14.3.2 構架WCF服務,運行WCF
14.3.1 服務 281
14.3.3 生成WCF服務代理的
14.3.1 代碼檔案 283
14.3.4 客戶端訪問WCF 285
14.3.5 運行程式 286
14.4 總結 286
15.1 資料庫通用類 287
15.1.1 SQL Server資料庫訪問
15.1.1 通用類 288
15.1.2 using關鍵字的用法 293
15.2 三層架構的定義及代碼示例 294
15.3 三層架構的特點 309
15.4 對三層架構的一點擴充 309
15.5 總結 310
16.1 Nunit簡介 311
16.2 NUnit界面介紹 312
16.2.1 File選單 312
16.2.2 Project選單 313
16.3 NUnit API介紹 313
16.4 利用NUnit進行單元測試 318
16.5 其他的單元測試軟體 320
16.6 總結 321
17.1 GDI+介紹 322
17.2 在數據中保存和顯示圖片 323
17.3 使用GDI+生成圖片 330
17.4 驗證碼實現 331
17.5 總結 335
目錄3 高 級 知 識
第18章 .NET報表技術 33818.1 owc控制項的使用 338
18.2 ZedGraph控制項的使用 344
18.3 RDLC報表的使用 349
18.4 總結 355
靜態頁面生成技術 356
19.1 .NET中的檔案體系 356
19.1.1 DriveInfo類 356
19.1.2 Directory及DirectoryInfo類 359
19.1.3 File及FileInfo類 362
19.1.4 Path類 366
19.2 .NET中的IO體系 369
19.2.1 基於位元組的流 369
19.2.2 基於字元的流 373
19.3 靜態頁面生成技術 378
19.3.1 為什麼要生成靜態頁面 378
19.3.2 什麼時候生成靜態頁面 379
19.3.3 如何生成靜態頁面 379
19.4 總結 387
20.1 自定義加密 388
20.2 對稱加密 391
20.3 不對稱加密 398
20.4 加密簽名 402
20.5 加密哈希 403
20.6 總結 406
21.1 程式編碼最佳化 407
21.1.1 集合操作 407
21.1.2 字元串連線最佳化 410
21.1.3 類型轉換最佳化 413
21.1.4 使用Server.Transfer()方法 414
21.1.5 避免不必要的伺服器往返 414
21.1.6 儘早釋放對象 415
21.1.7 儘量減少伺服器控制項的使用 415
21.2 數據操作最佳化 415
21.2.1 資料庫連線對象使用最佳化 415
21.2.2 數據訪問最佳化 416
21.2.3 最佳化SQL語句 416
21.2.4 合理使用快取 416
21.3 配置最佳化 420
21.3.1 禁用調試模式 420
21.3.2 合理使用ViewState 420
21.3.3 合理選擇會話狀態數據
21.3.3 存儲模式 423
21.4 總結 424
22.1 項目介紹 425
22.2 資料庫設計 426
22.3 實體層設計 429
22.4 數據訪問層設計 433
22.5 業務邏輯層設計 441
22.6 網站項目和單元測試項目說明 447
22.7 總結 448