庖丁解牛︰縱向切入ASP.NET 3.5控件和組件開發技術(附贈光盤)

庖丁解牛︰縱向切入ASP.NET 3.5控件和組件開發技術(附贈光盤)
定價:510
NT $ 510
  • 作者:鄭健
  • 出版社:電子工業出版社
  • 出版日期:2009-04-01
  • 語言:簡體中文
  • ISBN10:7121079798
  • ISBN13:9787121079795
  • 裝訂:平裝 / 646頁 / 普通級 / 單色印刷 / 初版
 

內容簡介

本書主要介紹ASP.NET的控件開發,書中通過70多個例子講解了ASP.NET控件開發技術的各個方面,而且剖析了很多控件中系統基類源代碼,讀者從這些系統源代碼可以體會設計模式思想。如果扎實地掌握了ASP.NET控件的運行機制,開發一個頁面級的ASP.NET應用程序會變得非常簡單。本書宗旨就是讓開發人員真正理解ASP.NET技術,幫助開發人員提高ASP.NET開發的技術水平。學完本書後您不僅能夠掌握控件開發各個方面的技術,而且深曉ASP.NET的工作原理。對大部分使用ASP.NET技術開發兩年左右的開發人員來說,本書75%以上的內容可能沒有接觸過,本書將通過筆者精心準備的一些生動的例子來闡述這些內容。

本書適合從事ASP.NET技術多年想往深度理解ASP.NET工作機制的開發人員閱讀,對于剛剛入門的初級開發人員,本書的前面幾章也介紹了幾個入門性的應用例子,本書還可以作為在校學生的就業預備教材。針對讀者安裝的開發環境不同,筆者分別為VS 2005和VS 2008建立了解決方案,即無論您是使用VS 2005還是VS 2008都可以成功打開本書隨書光盤的代碼,只是使用VS 2005打開的解決方案不包含.NET 3.5對應章節內容的示例代碼。
 

目錄

第1章 服務器控件概述及開發環境部署
1.1 自定義服務器控件
1.2 服務器控件在軟件開發過程中的作用
1.3 在控件開發中提升自己
1.4 可繼承控件基類介紹
1.5 運行一個簡單的控件
1.5.1 開發一個簡單控件
1.5.2 部署和運行
1.6 控件生命周期
1.6.1 概述
1.6.2 用代碼跟蹤控件生命周期過程
1.7 本章總結
第2章 服務器控件開發中的調試技術
2.1 預置代碼示例
2.2 調試頁面服務端代碼
2.3 服務器控件的調試
2.3.1 運行模式下的調試方法
2.3.2 設計模式下的調試方法
2.4 JavaScript腳本調試方法
2.4.1 調試頁面中的JavaScript腳本(方法一)
2.4.2 調試頁面中的JavaScript腳本(方法二)
2.4.3 調試非嵌入式JavaScript腳本文件
2.4.4 調試嵌入式JavaScript腳本資源文件
2.4.5 高效率調試的技巧
2.5 Ajax Library對JavaScript調試支持
2.6 本章總結
第3章 從零開始開發服務器控件
3.1 選擇基類
3.2 控件呈現順序
3.3 Render呈現控件的幾種方式
3.3.1 使用HTMLTextWriter類輸出
3.3.2 直接輸出HTML標簽
3.3.3 使用服務器控件的RenderControl方法
3.4 AddAttributesToRender方法
3.5 CreateChildControls方法
3.6 INamingContainer接口
3.7 實現復合控件
3.7.1 CreateChildControls方法
3.7.2 ChildControlsCreated屬性
3.7.3 EnsureChildControls方法
3.7.4 RecreateChildControls方法
3.7.5 Controls屬性
3.7.6 HasControls方法
3.7.7 HasEvents方法
3.7.8 FindControl方法
3.7.9 實現復合控件示例
3.8 常用開發技巧
3.8.1 DesignMode屬性
3.8.2 屏蔽基類控件中的屬性
3.8.3 Page.Request.Browser屬性
3.8.4 設置控件ID規範
3.8.5 增強FindControl功能
3.8.6 映射服務端控件值到客戶端
3.8.7 禁止派生自CompositeControl的控件創建子控件
3.8.8 使用CreateChildControls的注意事項
3.8.9 不要誤解設計元屬性DefaultValue
3.8.10 在Render方法中利用基類資源
3.8.11 條件編譯&條件屬性
3.9 本章總結
第4章 服務器控件屬性
4.1 控件屬性的作用
4.1.1 系統屬性
4.1.2 自定義屬性
4.2 簡單屬性
4.3 屬性的設計時特性
4.4 復雜屬性
4.4.1 概述
4.4.2 復雜屬性的幾種標記形式
4.4.3 深入研究——復雜屬性分析器
4.5 深入研究——定制自己的屬性編輯器
4.5.1 系統屬性編輯器
4.5.2 定制屬性編輯器
4.6 類型轉換器
4.6.1 系統類型轉換器
4.6.2 定制自己的類型轉換器
4.7 實現自定義屬性
4.8 本章總結
第5章 事件和數據回發機制
5.1 控件事件和數據回發概述
5.1.1 事件及其意義
5.1.2 數據回發機制
5.2 事件和數據回發機制的實現
5.2.1 客戶端回傳事件接口IPostBackEventHandler
5.2.2 客戶端回發/回調揭密
5.2.3 回傳數據處理接口IPostBackDataHandler
5.2.4 正確處理繼承基類中控件的事件
5.2.5 擴展KingTextBox控件功能(KingTextBoxCanPostEvent控件)
5.3 復合控件的事件處理機制
5.3.1 高效率事件集合對象
5.3.2 定制自己的委托和事件參數類
5.3.3 復合控件的事件處理
5.3.4 自動完成功能控件SearchControlIntelligent
5.4 本章總結
第6章 頁面狀態機制
6.1 頁面狀態概述
6.2 視圖狀態機制
6.2.1 IStateManager接口
6.2.2 控件生命周期中的裝載和保存視圖階段
6.2.3 簡單類型視圖狀態應用
6.2.4 實現自定義類型視圖狀態
6.3 控件狀態機制
6.4 視圖狀態和控件狀態的關系
6.4.1 在禁用視圖狀態的情況下仍然使用ViewState對象
6.4.2 IStateManager接口仍然可以在控件狀態中使用
6.4.3 視圖狀態和控件狀態組合使用規則
6.5 加密頁面狀態
6.6 清除頁面狀態
6.7 對動態添加控件的視圖狀態分析
6.8 自定義類型轉換器實現高效率序列化
6.9 頁面狀態性能優化策略
6.9.1 存儲位置優化——把視圖狀態信息保存在服務端而非客戶端
6.9.2 體積優化——壓縮視圖狀態數據
6.9.3 分塊存儲視圖狀態數據
6.10 視圖狀態和控件狀態的總結
6.11 本章總結
第7章 定制自定義控件主題樣式
7.1 控件樣式概述
7.2 ASP.NET對樣式的支持
7.2.1 Style類的工作原理及使用
7.2.2 WebControl基類對樣式的支持功能及其工作原理
7.2.3 HTMLTextWriter類對控件樣式的支持
7.2.4 定義控件內部的樣式屬性規則
7.2.5 兩個常用轉換方法
7.3 應用示例
7.3.1 復合控件樣式及視圖狀態
7.3.2 控件結構與樣式分離方案
7.4 本章總結
第8章 控件客戶端編程模型
8.1 ASP.NET服務端控件對客戶端的支持
8.2 ClientScriptManager類功能詳解
8.2.1 RegisterArrayDeclaration方法
8.2.2 RegisterClientScriptBlock方法
8.2.3 RegisterClientScriptInclude方法
8.2.4 RegisterClientScriptResource方法
8.2.5 RegisterStartupScript方法
8.2.6 RegisterExpandoAttribute方法
8.2.7 RegisterHiddenField方法
8.2.8 GetCallbackEventReference方法
8.2.9 GetPostBackClientHyperlink方法
8.2.10 GetPostBackEventReference方法
8.2.11 GetWebResourceUrl方法
8.2.12 RegisterOnSubmitStatement方法
8.3 客戶端回調
8.4 客戶端控件應用示例
8.4.1 封裝JS客戶端對象
8.4.2 封裝HTC客戶端對象
8.4.3 在線簽名控件示例應用
8.5 常用的一些JavaScript框架
8.6 本章總結
第9章 定制用戶控件
9.1 用戶控件概述
9.1.1 用戶控件的作用
9.1.2 了解System.Web.UI.UserControl基類
9.2 用戶控件應用示例
9.2.1 簡單用戶控件
9.2.2 復雜數據綁定用戶控件
9.3 用戶控件緩存
9.3.1 ASP.NET緩存介紹
9.3.2 用戶控件緩存
9.4 本章總結
第10章 開發驗證控件
10.1 驗證控件的工作原理
10.1.1 內置驗證控件簡述
10.1.2 驗證控件的工作機制解析
10.2 實現自定義驗證控件
10.3 本章總結
第11章 在控件中使用嵌入資源
11.1 在控件中嵌入資源的原理
11.2 在控件中應用嵌入資源
11.2.1 在控件中使用嵌入資源
11.2.2 常用嵌入資源類型及用法
11.3 瀏覽器常用工具
11.3.1 HttpWatch
11.3.2 IE Develper Toolbar
11.3.3 Fiddler
11.4 本章總結
第12章 開發模板數據綁定控件
12.1 ASP.NET模板屬性控件機制
12.1.1 模板屬性介紹
12.1.2 ASP.NET對模板控件的支持
12.1.3 Repeater控件模板實現機制解析
12.2 自定義控件應用示例
12.2.1 模板控件功能
12.2.2 應用示例
12.3 本章總結
第13章 數據綁定和數據源控件
13.1 數據綁定控件
13.1.1 數據綁定控件概述
13.1.2 ASP.NET對數據綁定控件的支持
13.2 數據綁定控件示例應用
13.2.1 控件實現功能
13.2.2 應用示例
13.3 數據源控件
13.3.1 數據源控件概述
13.3.2 ASP.NET對數據源控件的支持
13.4 數據源控件示例應用
13.4.1 控件實現功能
13.4.2 應用示例
13.5 本章總結
第14章 擴展控件方案——GridView
14.1 擴展控件概述
14.2 任意定制GridView多表頭
14.2.1 功能概述
14.2.2 代碼實現
14.3 固定GridView表頭並增加滾動條支持
14.3.1 功能概述
14.3.2 代碼實現
14.4 本章總結
第15章 自定義控件設計模式下編程匯總
15.1 .NET框架對設計時支持
15.2 設計時元數據支持
15.3 復雜屬性序列化
15.4 類型轉換器
15.5 屬性編輯器
15.6 設計模式可用基類介紹
15.7 設計時對控件呈現的支持
15.7.1 概述
15.7.2 應用示例
15.8 自動套用格式
15.8.1 概述
15.8.2 應用示例
15.9 模板UI設計器
15.10 智能操作列表
15.10.1 概述
15.10.2 應用示例
15.11 控件設計器區域
15.11.1 概述
15.11.2 應用示例
15.12 本章總結
第16章 ASP.NET Ajax控件開發——客戶端
16.1 ASP.NET Ajax框架概述
16.2 Ajax Library對客戶端面向對象功能支持
16.2.1 命名空間及Type和Function類
16.2.2 接口類型
16.2.3 類類型以及面向對象繼承特征
16.2.4 枚舉類型
16.2.5 反射功能
16.3 Ajax Library中的常用類型
16.3.1 Ajax Library對JavaScript基類型的擴展
16.3.2 Sys.StringBuilder類
16.4 Ajax Library請求服務端和WebServices
16.4.1 Sys.NET命名空間中的類
16.4.2 請求過程解析
16.4.3 WebRequest請求示例
16.4.4 使用代理實現Ajax調用服務端示例
16.5 Ajax Library對控件客戶端類開發的支持
16.5.1 客戶端控件基成員(類/接口)
16.5.2 ASP.NET Ajax控件客戶端生命周期
16.6 客戶端控件示例應用
16.7 調試和跟蹤
16.8 本章總結
第17章 ASP.NET Ajax控件開發——服務端
17.1 ASP.NET Ajax服務器控件概述
17.2 Ajax服務器控件
17.2.1 Ajax服務器控件
17.2.2 ASP.NET Ajax擴展程序控件
17.3 ASP.NET Ajax對服務器控件支持的基類
17.3.1 Ajax控件支持的基類
17.3.2 Ajax控件應用示例
17.4 本章總結
附錄A .NET 3.5技術教程系列——Collection/ASP.NET Ajax/ SilverLight/JQuery
 

中學的時候,在語文課堂上學習過庖丁解牛的寓言故事。生活在戰國時期的著名思想家莊子,以其神來之筆向我們介紹了一位古代的“牛人”庖丁,通過長期的實踐,在掌握了“牛”的生理結構後,“解牛”時可以得心應手,運用自如,尤其是最後的描述“提刀而立,為之四顧,為之躊躇滿志,善刀而藏之”,讓吾輩神往不已,一代“解牛”大俠,頗有獨孤求敗的氣勢!

後來我又學過一篇寓言故事,即宋朝歐陽修所著的《賣油翁》,同樣描述了一位經過反復實踐,在酌油時,油可以“自錢孔入,而錢不濕”的賣油翁,這其實也是一位神人。而且賣油翁非常謙虛,在總結自己的成功經驗時,只說了一句“無他,但手熟爾”。

在很長的一段時間內,我一直認為這兩篇故事講述的是同一個道理,所有的技能通過反復的磨煉,最後在實踐時均可以做到得心應手,運用自如,均為“無它,但手熟爾”。

三十六行,行行出狀元。我也一直將各種程序界的“牛”人比喻為庖丁或者賣油翁,認為他們可以非常熟練地掌握各種相關知識,在編寫程序時信手拈來,拖拖拽拽之間,最終的應用程序成型出爐,最後提“鼠標”而立,為之四顧,為之躊躇滿志。當有後輩請教時,非常謙虛地面帶微笑日︰我亦無它,惟手熟爾。讓周圍手不熟的同事也為之神往不已。

但後來我發現,其實這些神人之間還是有很大差異的,這種差異其實正好體現了賣油翁與庖丁的不同境界。

回顧一下,在ASP.NET之後,Web編程開始變得異常簡單,因為它將更多的實現細節隱藏在框架內部。大部分需求場景甚至僅需要拖曳控件就可以了,不需要編寫任何代碼。更有甚者,從ASP.NET2.0開始,包括用戶管理(注冊、找回密碼、更改密碼等)、導航(站點地圖、菜單等)在內的場景都不需要再編寫代碼,只需要將相應的控件拖到表單上即可以完成編碼。

這在一定程度上使得生產力得以大大提升,開發人員不必了解具體的開發細節,只需要將這些積木式的“控件”所完成的功能了解清楚即可。在工作中,隨心所欲地玩轉這些控件,似乎已經成為了ASP.NET編程高手的象征。而在遇到問題時,大部分ASP.NET開發人員的第一個想法就是去互聯網上尋找現成的控件。

這樣,很多開發人員可以在經過短時間的磨煉後,就可以面帶微笑得向其新來同事笑日︰我亦無它,惟手熟爾。但相信在這些“謙虛”的“賣油翁”當中,有很多只是“知其然,而不知其所以然”。

所以,與ASP.NET程序員的增長速度一樣,在論壇上,一些類似的ASP.NET開發問題也在呈幾何級數的增加︰

“服務器控件與客戶端控件有什麼區別?”

“動態創建的Button的單擊事件怎麼不執行?”

“為什麼點擊Button時,總是先觸發PageLoad事件?”

所以作為一位開發人員,我們不應該只夢想著成為賣油翁,還要立志成為“知其然,更知其所以然”的庖丁。

鄭健的這本《庖丁解牛—縱向切入ASP.NET 3.5控件和組件開發技術》恰恰是為那些已經可以鍛煉使用ASP.NET控件,但卻渴望了解其內在運行機制的朋友們所準備的。本書以極為詳盡的筆墨,向大家介紹了ASP.NET3.5控件和組件的相關機制,並且提供了詳細的示例代碼,讓你在實踐當中逐步找到共通的原理,達到舉一反三的目的。相信佻閱讀過此書後,會有一種提書而立,為之四顧,為之躊躇滿志的感覺。

祝願每位朋友都在工作中可以成為程序界的“皰丁”。

王洪超
微軟(中國)有限公司
互聯網架構首席顧問
2008/12/16
網路書店 類別 折扣 價格
  1. 新書
    $510