精通C#(第6版)

《精通C#(第6版)》
基本信息
原書名:Pro C# 5.0 and the .NET 4.5 framework,sixth edition
做者: (美)Andrew Troelsen   
譯者: 姚琪琳 朱曄 肖逵 張大磊
出版社:人民郵電出版社
ISBN:9787115321817
上架時間:2013-6-22
出版日期:2013 年7月
開本:16開
頁碼:1
版次:1-1
所屬分類:計算機 > 軟件與程序設計 > C#

泵多關於 》》》《 精通C#(第6版)
內容簡介
    書籍
    計算機書籍
《精通c#(第6版)》是c# 領域久負盛名的經典著做,深刻全面地講解了c# 編程語言和.net 平臺的核心內容,並結合大量示例剖析相關概念。全書分爲八部分:c# 和.net 平臺、c# 核心編程結構、c# 面向對象編程、高級c# 編程結構、用.net 程序集編程、.net 基礎類庫、wpf 和asp.net web forms。第6 版是對第5 版的進一步更新和完善,內容涵蓋了最早進的.net 編程技術和技巧,並準確呈現出c# 編程語言的最新變化和.net 4.5 framework 的新特性。
《精通c#(第6版)》由微軟c# mvp andrew troelsen 編寫,第6 版專門針對c# 5.0 和.net 4.5 進行了細緻入微的修訂,是各層次.net 開發人員的必讀之做。
《精通c#(第6版)》是被譽爲「c#聖經」的經典著做,因語言生動流暢、剖析深刻、涵蓋全面而廣受推崇,暢銷不衰。曾經得到referenceware編程圖書大獎,併入選jolt大獎提名。書中探討了c#語言和.net平臺的各類特性,包括面向對象編程,委託、事件和lambda表達式的關係,linq編程,多線程、並行和異步編程,ado.net、wcf、wf、wpf等技術。新版更透徹闡述了c# 5.0和.net 4.5的新功能。
《精通c#(第6版)》做者爲世界級c#專家、c#超級暢銷書做家andrew troelsen,英文原版一出即成爲亞馬遜銷量最好的c#圖書。第5版中文版在豆瓣評分高達9.1分,是衆多c#程序員力薦的經典好書。
不管是從零開始的菜鳥,仍是小有水平的中級程序員,抑或是已經躋身高手梯隊的老碼農,都須要用這本書來武裝本身,正如一位讀者所說,「不藏此書,便不像一名真正的c#程序員」。
目錄
《精通c#(第6版)》 
第一部分 c#與.net平臺 
第1章 .net之道 2 
1.1 初識.net平臺 2 
1.2 .net平臺構造塊(clr、cts和cls)簡介 3 
1.2.1 基礎類庫的做用 3 
1.2.2 c#的優勢 4 
1.2.3 託管代碼與非託管代碼 5 
1.3 其餘支持.net的編程語言 5 
1.4 .net程序集概覽 7 
1.4.1 cil的做用 8 
1.4.2 .net類型元數據的做用 10 
1.4.3 程序集清單的做用 11 
1.5 cts 12 
1.5.1 cts類類型 12 
1.5.2 cts接口類型 12 
1.5.3 cts結構類型 13 
1.5.4 cts枚舉類型 13 
1.5.5 cts委託類型 13 
1.5.6 cts類型成員 14 
.1.5.7 內建的cts數據類型 14 
1.6 cls 15 
1.7 clr 16 
1.8 程序集/命名空間/類型的區別 17 
1.8.1 microsoft根命名空間的做用 20 
1.8.2 以編程方式訪問命名空間 20 
1.8.3 引用外部程序集 21 
1.9 使用ildasm.exe探索程序集 22 
1.9.1 查看cil代碼 23 
1.9.2 查看類型元數據 23 
1.9.3 查看程序集元數據(即清單) 24 
1.10 .net的平臺無關性 24 
1.11 windows 8應用程序簡介 25 
1.11.1 構建windows 8應用程序 26 
1.11.2 .net在windows 8中的做用 27 
1.12 小結 28 
第2章 構建c#應用程序 29 
2.1 .net framework 4.5 sdk的做用 29 
2.2 用csc.exe構建c#應用程序 30 
2.2.1 指定輸入輸出目標 31 
2.2.2 引用外部程序集 32 
2.2.3 引用多個外部程序集 33 
2.2.4 編譯多個源文件 33 
2.2.5 使用c#響應文件 34 
2.3 使用notepad++構建.net應用程序 35 
2.4 使用sharpdevelop構建.net應用程序 36 
2.5 使用visual c# express構建.net應用程序 38 
2.6 使用visual studio構建.net應用程序 39 
2.6.1 visual studio的獨特功能 39 
2.6.2 使用new project對話框指向.net framework 40 
2.6.3 解決方案資源管理器 40 
2.6.4 class view工具 42 
2.6.5 object browser工具 43 
2.6.6 集成對代碼重構的支持 43 
2.6.7 代碼擴展和圍繞技術 45 
2.6.8 可視化class designer 47 
2.6.9 集成的.net framework 4.5 sdk文檔系統 50 
2.7 小結 51 
第二部分 c#核心編程結構 
第3章 c#核心編程結構ⅰ 54 
3.1 一個簡單的c#程序 54 
3.1.1 main()方法的其餘形式 55 
3.1.2 指定應用程序錯誤代碼 56 
3.1.3 處理命令行參數 57 
3.1.4 使用visual studio指定命令行參數 59 
3.2 有趣的題外話:system.environment類的其餘成員 59 
3.3 system.console類 61 
3.3.1 使用console類進行基本的輸入和輸出 61 
3.3.2 格式化控制檯輸出 62 
3.3.3 格式化數值數據 63 
3.3.4 在控制檯應用程序外格式化數值數據 64 
3.4 系統數據類型和相應的c#關鍵字 64 
3.4.1 變量聲明和初始化 65 
3.4.2 內建數據類型與new操做符 67 
3.4.3 數據類型類的層次結構 67 
3.4.4 數值數據類型的成員 69 
3.4.5 system.boolean的成員 69 
3.4.6 system.char的成員 69 
3.4.7 從字符串數據中解析數值 70 
3.4.8 system.datetime和system.timespan 70 
3.4.9 system.numerics.dll程序集 71 
3.5 使用字符串數據 72 
3.5.1 基本的字符串操做 73 
3.5.2 字符串拼接 73 
3.5.3 轉義字符 74 
3.5.4 定義逐字字符串 75 
3.5.5 字符串和相等性 75 
3.5.6 字符串是不可變的 76 
3.5.7 system.text.stringbuilder類型 77 
3.6 窄化和寬化數據類型轉換 78 
3.6.1 checked關鍵字 80 
3.6.2 設定項目級別的溢出檢測 81 
3.6.3 unchecked關鍵字 82 
3.7 隱式類型本地變量 82 
3.7.1 隱式類型變量的限制 84 
3.7.2 隱式類型數據是強類型數據 84 
3.7.3 隱式類型本地變量的用途 85 
3.8 c#迭代結構 86 
3.8.1 for循環 86 
3.8.2 foreach循環 87 
3.8.3 while和do/while循環結構 87 
3.9 條件結構和關係/相等操做符 88 
3.9.1 if/else語句 88 
3.9.2 關係/相等操做符 88 
3.9.3 邏輯操做符 89 
3.9.4 switch語句 89 
3.10 小結 91 
第4章 c#核心編程結構ⅱ 92 
4.1 方法和參數修飾符 92 
4.1.1 默認的參數傳遞行爲 93 
4.1.2 out修飾符 94 
4.1.3 ref修飾符 95 
4.1.4 params修飾符 96 
4.1.5 定義可選參數 97 
4.1.6 使用命名參數調用方法 98 
4.1.7 成員重載 99 
4.2 c#數組 101 
4.2.1 c#數組初始化語法 102 
4.2.2 隱式類型本地數組 103 
4.2.3 定義object數組 103 
4.2.4 使用多維數組 104 
4.2.5 數組做爲參數(和返回值) 105 
4.2.6 system.array基類 106 
4.3 枚舉類型 107 
4.3.1 控制枚舉的底層存儲 108 
4.3.2 聲明枚舉變量 109 
4.3.3 system.enum類型 110 
4.3.4 動態獲取枚舉的名稱/值對 110 
4.4 結構類型 112 
4.5 值類型和引用類型 115 
4.5.1 值類型、引用類型和賦值操做符 116 
4.5.2 包含引用類型的值類型 117 
4.5.3 按值傳遞引用類型 119 
4.5.4 按引用傳遞引用類型 120 
4.5.5 值類型和引用類型:最後的細節 121 
4.6 c#可空類型 122 
4.6.1 使用可空類型 123 
4.6.2 ??操做符 124 
4.7 小結 124 
第三部分 c#面向對象編程 
第5章 封裝 126 
5.1 c#類類型 126 
5.2 構造函數 129 
5.2.1 默認構造函數的做用 129 
5.2.2 定義自定義的構造函數 130 
5.2.3 再談默認構造函數 131 
5.3 this關鍵字的做用 132 
5.3.1 使用this進行串聯構造函數調用 133 
5.3.2 觀察構造函數流程 135 
5.3.3 再談可選參數 137 
5.4 static關鍵字 138 
5.4.1 定義靜態數據 138 
5.4.2 定義靜態方法 140 
5.4.3 定義靜態構造函數 141 
5.4.4 定義靜態類 143 
5.5 定義oop的支柱 144 
5.5.1 封裝的做用 144 
5.5.2 繼承的做用 144 
5.5.3 多態的做用 146 
5.6 c#訪問修飾符 147 
5.6.1 默認的訪問修飾符 148 
5.6.2 訪問修飾符和嵌套類型 148 
5.7 第一個支柱:c#的封裝服務 149 
5.7.1 使用傳統的訪問方法和修改方法執行封裝 149 
5.7.2 使用.net屬性進行封裝 151 
5.7.3 使用類的屬性 154 
5.7.4 只讀和只寫屬性 155 
5.7.5 靜態屬性 156 
5.8 自動屬性 156 
5.8.1 與自動屬性交互 158 
5.8.2 關於自動屬性和默認值 158 
5.9 對象初始化語法 160 
5.9.1 使用初始化語法調用自定義構造函數 161 
5.9.2 初始化內部類型 162 
5.10 常量數據 163 
5.10.1 只讀字段 164 
5.10.2 靜態只讀字段 165 
5.11 分部類型 165 
5.12 小結 167 
第6章 繼承和多態 168 
6.1 繼承的基本機制 168 
6.1.1 指定既有類的父類 169 
6.1.2 多個基類 170 
6.1.3 sealed關鍵字 171 
6.2 回顧visual studio類關係圖 172 
6.3 oop的第二個支柱:繼承 173 
6.3.1 使用base關鍵字控制基類的建立 174 
6.3.2 家族的祕密:protected關鍵字 176 
6.3.3 增長密封類 177 
6.4 包含/委託編程 178 
6.5 oop的第三個支柱:c#的多態支持 180 
6.5.1 virtual和override關鍵字 181 
6.5.2 使用visual studio ide重寫虛方法 183 
6.5.3 密封虛成員 184 
6.5.4 抽象類 184 
6.5.5 構建多態接口 186 
6.5.6 成員投影 189 
6.6 基類/派生類的轉換規則 191 
6.6.1 c#的as關鍵字 192 
6.6.2 c#的is關鍵字 193 
6.7 超級父類:system.object 193 
6.7.1 重寫system.object.tostring() 196 
6.7.2 重寫system.object.equals() 196 
6.7.3 重寫system.object.gethashcode() 197 
6.7.4 測試修改後的person類 198 
6.7.5 system.object的靜態成員 199 
6.8 小結 199 
第7章 結構化異常處理 200 
7.1 錯誤、bug與異常 200 
7.2 .net異常處理的做用 201 
7.2.1 .net異常處理的四要素 202 
7.2.2 system.exception基類 202 
7.3 最簡單的例子 203 
7.3.1 引起普通的異常 205 
7.3.2 捕獲異常 206 
7.4 配置異常的狀態 207 
7.4.1 targetsite屬性 207 
7.4.2 stacktrace屬性 208 
7.4.3 helplink屬性 208 
7.4.4 data屬性 209 
7.5 系統級異常 211 
7.6 應用程序級異常 211 
7.6.1 構建自定義異常,第一部分 212 
7.6.2 構建自定義異常,第二部分 213 
7.6.3 構建自定義異常,第三部分 214 
7.7 處理多個異常 215 
7.7.1 通用的catch語句 217 
7.7.2 再次引起異常 218 
7.7.3 內部異常 218 
7.7.4 finally塊 219 
7.8 誰在引起什麼異常 220 
7.9 未處理異常的後果 220 
7.10 使用visual studio調試未處理的異常 221 
7.11 小結 222 
第8章 接口 223 
8.1 接口類型 223 
8.2 定義自定義接口 226 
8.3 實現接口 227 
8.4 在對象級別調用接口成員 229 
8.4.1 獲取接口引用:as關鍵字 230 
8.4.2 獲取接口引用:is關鍵字 230 
8.5 接口做爲參數 231 
8.6 接口做爲返回值 233 
8.7 接口類型數組 233 
8.8 使用visual studio實現接口 234 
8.9 顯式接口實現 235 
8.10 設計接口層次結構 238 
8.11 構建可枚舉類型(ienumerable和ienumerator) 241 
8.11.1 用yield關鍵字構建迭代器方法 243 
8.11.2 構建命名迭代器 244 
8.12 構建可克隆的對象(icloneable) 245 
8.13 構建可比較的對象(icomparable) 249 
8.13.1 指定多個排序順序 252 
8.13.2 自定義屬性、自定義排序類型 253 
8.14 小結 253 
第四部分 高級c#編程結構 
第9章 集合與泛型 256 
9.1 集合類的動機 256 
9.1.1 system.collections命名空間 257 
9.1.2 system.collections.specialized命名空間 259 
9.2 非泛型集合的問題 260 
9.2.1 性能問題 260 
9.2.2 類型安全問題 263 
9.2.3 初識泛型集合 265 
9.3 泛型類型參數的做用 266 
9.3.1 爲泛型類/結構指定類型參數 267 
9.3.2 爲泛型成員指定類型參數 268 
9.3.3 爲泛型接口指定類型參數 269 
9.4 system.collections.generic命名空間 270 
9.4.1 集合初始化語法 271 
9.4.2 使用list[t]類 272 
9.4.3 使用stack[t]類 273 
9.4.4 使用queue[t]類 274 
9.4.5 使用sortedset[t]類 275 
9.5 system.collections.objectmodel命名空間 277 
9.6 建立自定義泛型方法 279 
9.7 建立自定義泛型結構和類 282 
9.8 類型參數的約束 284 
9.8.1 使用where關鍵字的示例 284 
9.8.2 操做符約束的不足 285 
9.9 小結 286 
第10章 委託、事件和lambda表達式 287 
10.1 .net委託類型 287 
10.1.1 在c#中定義委託類型 288 
10.1.2 system.multicastdelegate與system.delegate基類 290 
10.2 最簡單的委託示例 291 
10.3 使用委託發送對象狀態通知 293 
10.3.1 支持多路廣播 296 
10.3.2 從委託的調用列表中移除成員 297 
10.3.3 方法組轉換語法 298 
10.4 泛型委託 300 
10.5 c#事件 303 
10.5.1 event關鍵字 304 
10.5.2 揭開事件的神祕面紗 305 
10.5.3 監聽傳入的事件 306 
10.5.4 使用visual studio簡化事件註冊 307 
10.5.5 建立自定義的事件參數 308 
10.5.6 泛型eventhandler[t]委託 309 
10.6 c#匿名方法 310 
10.7 lambda表達式 313 
10.7.1 剖析lambda表達式 315 
10.7.2 使用多個語句處理參數 316 
10.7.3 含有多個(或零個)參數的lambda表達式 317 
10.7.4 使用lambda表達式從新編寫carevents示例 318 
10.8 小結 319 
第11章 高級c#語言特性 320 
11.1 索引器方法 320 
11.1.1 使用字符串值索引對象 322 
11.1.2 重載索引器方法 323 
11.1.3 多維的索引器 323 
11.1.4 在接口類型上定義索引器 324 
11.2 操做符重載 325 
11.2.1 重載二元操做符 325 
11.2.2 +=與-=操做符 327 
11.2.3 重載一元操做符 328 
11.2.4 重載相等操做符 329 
11.2.5 重載比較操做符 329 
11.2.6 操做符重載的最後思考 330 
11.3 自定義類型轉換 331 
11.3.1 回顧:數值轉換 331 
11.3.2 回顧:相關的類類型間的轉換 331 
11.3.3 建立自定義轉換例程 332 
11.3.4 square類型的其餘顯式轉換 334 
11.3.5 定義隱式轉換例程 335 
11.4 擴展方法 336 
11.4.1 定義擴展方法 336 
11.4.2 在實例層次上調用擴展方法 337 
11.4.3 導入擴展方法 338 
11.4.4 擴展方法的智能感知 339 
11.4.5 擴展實現了指定接口的類型 339 
11.5 匿名類型 340 
11.5.1 定義匿名類型 341 
11.5.2 匿名類型的內部表示方式 342 
11.5.3 方法tostring()和gethashcode()的實現 343 
11.5.4 匿名類型的相等語義 344 
11.5.5 包含匿名類型的匿名類型 345 
11.6 指針類型 346 
11.6.1 unsafe關鍵字 347 
11.6.2 *和&操做符 348 
11.6.3 不安全(與安全)交換功能 349 
11.6.4 經過指針訪問字段 350 
11.6.5 stackalloc關鍵字 350 
11.6.6 使用fixed關鍵字固定類型 351 
11.6.7 sizeof關鍵字 352 
11.7 小結 352 
第12章 linq to object 353 
12.1 linq特有的編程結構 353 
12.1.1 隱式類型本地變量 354 
12.1.2 對象和集合初始化語法 354 
12.1.3 lambda表達式 355 
12.1.4 擴展方法 355 
12.1.5 匿名類型 356 
12.2 linq的做用 356 
12.2.1 linq表達式是強類型的 357 
12.2.2 核心linq程序集 357 
12.3 將linq查詢應用於原始數組 358 
12.3.1 再一次,不使用linq 359 
12.3.2 反射linq結果集 360 
12.3.3 linq和隱式類型本地變量 361 
12.3.4 linq和擴展方法 362 
12.3.5 延遲執行的做用 363 
12.3.6 當即執行的做用 364 
12.4 返回linq查詢的結果 365 
12.5 將linq查詢應用到集合對象 367 
12.5.1 訪問包含的子對象 367 
12.5.2 將linq查詢應用於非泛型集合 368 
12.5.3 使用oftype[t]()篩選數據 369 
12.6 c# linq查詢操做符 369 
12.6.1 基本的選擇語法 371 
12.6.2 獲取數據子集 371 
12.6.3 投影新數據類型 372 
12.6.4 使用enumerable獲取總數 373 
12.6.5 反轉結果集 373 
12.6.6 對錶達式進行排序 374 
12.6.7 維恩圖工具 374 
12.6.8 移除重複 375 
12.6.9 linq聚合操做 376 
12.7 linq查詢語句的內部表示 376 
12.7.1 用查詢操做符創建查詢表達式(複習) 377 
12.7.2 使用enumerable類型和lambda表達式來創建查詢表達式 377 
12.7.3 使用enumerable類型和匿名方法來創建查詢表達式 379 
12.7.4 用enumerable類型和原始委託創建查詢表達式 379 
12.8 小結 380 
第13章 對象的生命週期 381 
13.1 類、對象和引用 381 
13.2 對象生命週期的基礎 382 
13.2.1 cil的new指令 383 
13.2.2 將對象引用設置爲空 384 
13.3 應用程序根的做用 385 
13.4 對象的代 386 
13.5 .net 1.0 至.net 3.5的併發垃圾回收 387 
13.6 .net 4.0及後續版本 387 
13.7 system.gc類型 388 
13.8 構建可終結對象 391 
13.8.1 重寫system.object.finalize() 392 
13.8.2 終結過程的細節 393 
13.9 構建可處置對象 394 
13.10 構建可終結類型和可處置類型 397 
13.11 延遲對象實例化 400 
13.12 小結 403 
第五部分 用.net程序集編程 
第14章 .net程序集入門 406 
14.1 定義自定義命名空間 406 
14.1.1 使用徹底限定名解決命名衝突 408 
14.1.2 使用別名解決命名衝突 409 
14.1.3 建立嵌套的命名空間 410 
14.1.4 visual studio 的默認命名空間 411 
14.2 .net程序集的做用 412 
14.2.1 程序集促進代碼重用 412 
14.2.2 程序集肯定類型邊界 412 
14.2.3 程序集是可版本化的單元 412 
14.2.4 程序集是自描述的 413 
14.2.5 程序集是可配置的 413 
14.3 .net程序集的格式 413 
14.3.1 windows文件首部 413 
14.3.2 clr文件首部 414 
14.3.3 cil代碼、類型元數據和程序集清單 415 
14.3.4 可選的程序集資源 415 
14.4 構建和使用自定義類庫 416 
14.4.1 清單 418 
14.4.2 cil 421 
14.4.3 類型元數據 421 
14.4.4 構建c#客戶端應用程序 422 
14.4.5 構建visual basic客戶端應用程序 424 
14.4.6 實現跨語言繼承 425 
14.5 私有程序集 425 
14.5.1 私有程序集的標識 426 
14.5.2 探測過程 426 
14.5.3 配置私有程序集 427 
14.5.4 app.config文件 428 
14.6 共享程序集 430 
14.6.1 全局程序集緩存 430 
14.6.2 強名稱 431 
14.6.3 在命令行生成強名稱 432 
14.6.4 使用visual studio爲程序集賦予強名稱 434 
14.6.5 在gac中安裝強名稱的程序集 436 
14.7 使用共享程序集 437 
14.8 配置共享程序集 439 
14.8.1 凍結當前的共享程序集 439 
14.8.2 構建共享程序集2.0.0.0版本 440 
14.8.3 動態重定向到共享程序集的特定版本 441 
14.9 發行者策略程序集 443 
14.10 [codebase]元素 444 
14.11 system.configuration命名空間 446 
14.12 配置文件架構文檔 447 
14.13 小結 448 
第15章 類型反射、晚期綁定和基於特性的編程 449 
15.1 類型元數據的必要性 449 
15.1.1 查看(部分)enginestate枚舉的元數據 450 
15.1.2 查看(部分)car類型的元數據 451 
15.1.3 研究typeref 452 
15.1.4 記錄定義的程序集 452 
15.1.5 記錄引用的程序集 453 
15.1.6 記錄字符串字面量 453 
15.2 反射 454 
15.2.1 system.type類 454 
15.2.2 使用system.object.gettype()獲得type引用 455 
15.2.3 使用typeof()獲得type引用 455 
15.2.4 使用system.type.gettype()獲得type引用 455 
15.3 構建自定義的元數據查看器 456 
15.3.1 反射方法 456 
15.3.2 反射字段和屬性 457 
15.3.3 反射實現的接口 457 
15.3.4 顯示其餘信息 458 
15.3.5 實現main() 458 
15.3.6 反射泛型類型 460 
15.3.7 反射方法參數和返回值 460 
15.4 動態加載程序集 461 
15.5 反射共享程序集 464 
15.6 晚期綁定 465 
15.6.1 system.activator類 466 
15.6.2 調用沒有參數的方法 467 
15.6.3 調用有參數的方法 468 
15.7 .net特性的做用 469 
15.7.1 特性的使用者 470 
15.7.2 在c#中使用特性 470 
15.7.3 c#特性簡化符號 471 
15.7.4 爲特性指定構造參數 472 
15.7.5 obsolete特性 472 
15.8 構建自定義特性 473 
15.8.1 應用自定義特性 473 
15.8.2 命名屬性語法 474 
15.8.3 限制特性使用 474 
15.9 程序集級別特性 475 
15.10 使用早期綁定反射特性 477 
15.11 使用晚期綁定反射特性 478 
15.12 反射、晚期綁定和自定義特性的使用背景 479 
15.13 構建可擴展的應用程序 480 
15.13.1 構建commonsnappable-types.dll 480 
15.13.2 構建c#插件 481 
15.13.3 構建visual basic插件 482 
15.13.4 構建可擴展的windows forms應用程序 482 
15.14 小結 485 
第16章 動態類型和動態語言運行時 486 
16.1 dynamic關鍵字的做用 486 
16.1.1 調用動態聲明的數據的成員 488 
16.1.2 microsoft.csharp.dll程序集的做用 489 
16.1.3 dynamic關鍵字的做用域 490 
16.1.4 dynamic關鍵字的限制 491 
16.1.5 dynamic關鍵字的實際用途 491 
16.2 dlr的做用 492 
16.2.1 表達式樹的做用 492 
16.2.2 system.dynamic命名空間的做用 493 
16.2.3 表達式樹的動態運行時查找 493 
16.3 使用動態類型簡化後期綁定調用 494 
16.4 使用動態數據簡化com互操做 497 
16.4.1 主互操做程序集的做用 498 
16.4.2 嵌入互操做元數據 499 
16.4.3 普通com互操做的難點 500 
16.5 使用c# 動態數據進行com互操做 500 
16.6 不使用c# 動態數據進行com互操做 504 
16.7 小結 505 
第17章 進程、應用程序域和對象上下文 506 
17.1 windows進程的做用 506 
17.2 .net平臺下與進程進行交互 508 
17.2.1 列舉運行中的進程 510 
17.2.2 特定的進程 511 
17.2.3 進程的線程集合 511 
17.2.4 進程中的模塊集合 513 
17.2.5 以編程方式啓動或結束進程 514 
17.2.6 使用processstartinfo類控制進程的啓動 515 
17.3 .net應用程序域 516 
17.4 與默認應用程序域進行交互 518 
17.4.1 枚舉加載的程序集 519 
17.4.2 接收程序集加載通知 520 
17.5 建立新的應用程序域 521 
17.5.1 在自定義應用程序域中加載程序集 522 
17.5.2 以編程方式卸載應用程序域 523 
17.6 對象上下文邊界 525 
17.6.1 上下文靈活和上下文綁定類型 525 
17.6.2 定義上下文綁定對象 526 
17.6.3 研究對象的上下文 526 
17.7 進程、應用程序域和上下文小結 528 
17.8 小結 528 
第18章 cil和動態程序集的做用 529 
18.1 學習cil語法的緣由 529 
18.2 cil指令、特性和操做碼 530 
18.2.1 cil指令的做用 530 
18.2.2 cil特性的做用 530 
18.2.3 cil操做碼的做用 531 
18.2.4 區別cil操做碼和cil助記符 531 
18.3 入棧和出棧:cil基於棧的本質 532 
18.4 正反向工程 533 
18.4.1 cil代碼標籤的做用 536 
18.4.2 與cil交互:修改*.il文件 536 
18.4.3 使用ilasm.exe編譯cil代碼 537 
18.4.4 peverify.exe的做用 538 
18.5 cil指令和特性 539 
18.5.1 在cil中指定外部引用程序集 539 
18.5.2 在cil中定義當前程序集 539 
18.5.3 在cil中定義命名空間 540 
18.5.4 在cil中定義類類型 540 
18.5.5 在cil中定義和實現接口 541 
18.5.6 在cil中定義結構 542 
18.5.7 在cil中定義枚舉 542 
18.5.8 在cil中定義泛型 543 
18.5.9 編譯ciltypes.il文件 543 
18.6 .net基礎類庫、c#和cil數據類型的映射 544 
18.7 在cil中定義類型成員 544 
18.7.1 在cil中定義數據字段 545 
18.7.2 在cil中定義類型的構造函數 545 
18.7.3 在cil中定義屬性 546 
18.7.4 定義成員參數 546 
18.8 剖析cil操做碼 547 
18.8.1 .maxstack指令 548 
18.8.2 在cil中聲明本地變量 549 
18.8.3 在cil中映射參數到本地變量 550 
18.8.4 this隱式引用 550 
18.8.5 在cil中使用循環結構 551 
18.9 使用cil構建.net程序集 551 
18.9.1 構建cilcars.dll 551 
18.9.2 構建cilcarclient.exe 554 
18.10 動態程序集 555 
18.10.1 system.reflection.emit命名空間 556 
18.10.2 system.reflection.emit.ilgenerator的做用 557 
18.10.3 產生動態的程序集 557 
18.10.4 產生程序集和模塊集 559 
18.10.5 modulebuilder類型的做用 560 
18.10.6 產生helloclass類型和字符串成員變量 561 
18.10.7 產生構造函數 561 
18.10.8 產生sayhello()方法 562 
18.10.9 使用動態產生的程序集 563 
18.11 小結 564 
第六部分 .net基礎類庫 
第19章 多線程、並行和異步編程 566 
19.1 進程、應用程序域、上下文及線程之間的關係 566 
19.1.1 併發問題 567 
19.1.2 線程同步的做用 568 
19.2 .net委託的簡短回顧 568 
19.3 委託的異步性 570 
19.3.1 begininvoke()和endinvoke()方法 570 
19.3.2 system.iasyncresult接口 570 
19.4 異步調用方法 571 
19.4.1 同步調用線程 572 
19.4.2 asynccallback委託的做用 573 
19.4.3 asyncresult類的做用 575 
19.4.4 傳遞和接收自定義狀態數據 575 
19.5 system.threading命名空間 576 
19.6 system.threading.thread類 577 
19.6.1 得到當前執行線程的統計信息 578 
19.6.2 name屬性 579 
19.6.3 priority屬性 579 
19.7 手工建立次線程 580 
19.7.1 使用threadstart委託 580 
19.7.2 使用parameterizedthreadstart委託 582 
19.7.3 autoresetevent類 583 
19.7.4 前臺線程和後臺線程 584 
19.8 併發問題 585 
19.8.1 使用c#的lock關鍵字進行同步 588 
19.8.2 使用system.threading.monitor類型進行同步 589 
19.8.3 使用system.threading.interlocked類型進行同步 590 
19.8.4 使用[synchronization]特性進行同步 591 
19.9 使用timercallback編程 592 
19.10 clr線程池 593 
19.11 使用任務並行庫進行並行編程 595 
19.11.1 任務並行庫api 595 
19.11.2 parallel類的做用 596 
19.11.3 使用parallel類的數據並行 596 
19.11.4 在次線程中訪問ui元素 598 
19.11.5 task類 599 
19.11.6 處理取消請求 599 
19.11.7 使用並行類的任務並行 601 
19.12 並行linq查詢(plinq) 603 
19.12.1 使用plinq查詢 604 
19.12.2 取消plinq查詢 604 
19.13 .net 4.5下的異步調用 605 
19.13.1 c# async和await關鍵字初探 606 
19.13.2 異步方法的命名約定 607 
19.13.3 返回void的異步方法 609 
19.13.4 具備多個await的異步方法 609 
19.13.5 用async/await改進addwiththreads示例 610 
19.14 小結 611 
第20章 文件輸入輸出和對象序列化 612 
20.1 研究system.io命名空間 612 
20.2 directory(info)和file(info)類型 613 
20.3 使用directoryinfo類型 614 
20.3.1 使用directoryinfo類型枚舉出文件 616 
20.3.2 使用directoryinfo類型建立子目錄 616 
20.4 使用directory類型 617 
20.5 使用driveinfo類類型 618 
20.6 使用fileinfo類 619 
20.6.1 fileinfo.create()方法 620 
20.6.2 fileinfo.open()方法 621 
20.6.3 fileinfo.openread()和fileinfo.openwrite()方法 622 
20.6.4 fileinfo.opentext()方法 622 
20.6.5 fileinfo.createtext()和fileinfo.appendtext()方法 623 
20.7 使用file類型 623 
20.8 stream抽象類 625 
20.9 使用streamwriter和streamreader類型 627 
20.9.1 寫文本文件 628 
20.9.2 讀文本文件 628 
20.9.3 直接建立streamwriter/streamreader類型 629 
20.10 使用stringwriter和stringreader類型 630 
20.11 使用binarywriter和binaryreader 631 
20.12 以編程方式「觀察」文件 632 
20.13 對象序列化 634 
20.14 爲序列化配置對象 637 
20.14.1 定義可序列化的類型 637 
20.14.2 公共字段、私有字段和公共屬性 638 
20.15 選擇序列化格式化程序 638 
20.15.1 iformatter和iremoting-formatting接口 639 
20.15.2 在格式化程序中的類型保真 640 
20.16 使用binaryformatter序列化對象 641 
20.17 使用soapformatter序列化對象 642 
20.18 使用xmlserializer序列化對象 643 
20.19 序列化對象集合 645 
20.20 自定義soap/binary序列化過程 647 
20.20.1 深刻了解對象序列化 647 
20.20.2 使用iserializable自定義序列化 648 
20.20.3 使用特性定製序列化 650 
20.21 小結 651 
第21章 ado.net之一:鏈接層 653 
21.1 ado.net的宏觀定義 653 
21.2 ado.net數據提供程序 655 
21.2.1 微軟提供的ado.net數據提供程序 656 
21.2.2 關於system.data.oracle-client.dll 657 
21.2.3 選擇第三方的數據提供程序 657 
21.3 其餘的ado.net命名空間 658 
21.4 system.data命名空間的類型 658 
21.4.1 idbconnection接口的做用 659 
21.4.2 idbtransaction接口的做用 659 
21.4.3 idbcommand接口的做用 660 
21.4.4 idbdataparameter和idataparameter接口的做用 660 
21.4.5 idbdataadapter和idataadapter接口的做用 661 
21.4.6 idatareader和idatarecord接口的做用 661 
21.5 使用接口的抽象數據提供程序 662 
21.6 建立autolot數據庫 665 
21.6.1 建立inventory表 665 
21.6.2 爲inventory表添加測試記錄 667 
21.6.3 編寫getpetname()存儲過程 668 
21.6.4 建立customers和orders表 669 
21.6.5 可視化建立表關係 671 
21.7 ado.net數據提供程序工廠模型 672 
21.7.1 完整的數據提供程序工廠的例子 673 
21.7.2 數據提供程序工廠模型的潛在缺陷 675 
21.7.3 [connectionstrings]元素 676 
21.8 ado.net的鏈接層 677 
21.8.1 使用鏈接對象 678 
21.8.2 使用connectionstringbuilder對象 679 
21.8.3 使用命令對象 680 
21.9 使用數據讀取器 681 
21.10 構建可重用的數據訪問庫 683 
21.10.1 增長鏈接邏輯 684 
21.10.2 增長插入邏輯 685 
21.10.3 增長刪除邏輯 686 
21.10.4 增長更新邏輯 686 
21.10.5 增長選擇邏輯 687 
21.10.6 使用參數化的命令對象 688 
21.10.7 執行存儲過程 690 
21.11 建立控制檯ui前端 691 
21.11.1 實現main()方法 691 
21.11.2 實現showinstructions()方法 693 
21.11.3 實現listinventory()方法 693 
21.11.4 實現deletecar()方法 694 
21.11.5 實現insertnewcar()方法 694 
21.11.6 實現updatecarpetname()方法 695 
21.11.7 實現lookuppetname() 696 
21.12 數據庫事務 697 
21.12.1 ado.net事務對象的主要成員 697 
21.12.2 爲autolot數據庫添加creditrisks表 698 
21.12.3 爲inventorydal添加事物方法 699 
21.12.4 測試數據庫事務 700 
21.13 小結 701 
第22章 ado.net之二:斷開鏈接層 702 
22.1 ado.net斷開鏈接層 702 
22.2 dataset的做用 703 
22.2.1 dataset的主要屬性 704 
22.2.2 dataset的主要方法 704 
22.2.3 構建dataset 705 
22.3 使用datacolumn 705 
22.3.1 構建datacolumn 706 
22.3.2 啓用自增列 707 
22.3.3 把datacolumn對象加入datatable 707 
22.4 使用datarow 707 
22.4.1 rowstate屬性 709 
22.4.2 datarowversion屬性 710 
22.5 使用datatable 710 
22.5.1 將datatable插入到dataset中 711 
22.5.2 獲取dataset中的數據 712 
22.5.3 使用datatablereader對象處理datatable 713 
22.5.4 序列化datatable/dataset對象爲xml 714 
22.5.5 以二進制格式序列化data-table/dataset對象 715 
22.6 將datatable對象綁定到用戶界面 716 
22.6.1 從泛型list[t]合成datatable 717 
22.6.2 從datatable中刪除行 719 
22.6.3 根據篩選條件選擇行 720 
22.6.4 在datatable中更新行 722 
22.6.5 使用dataview類型 723 
22.7 使用數據適配器 724 
22.7.1 一個簡單的數據適配器示例 725 
22.7.2 映射數據庫名稱爲友好名稱 726 
22.8 向autolotdal.dll添加斷開鏈接功能 727 
22.8.1 定義初始類類型 727 
22.8.2 使用sqlcommandbuilder來配置數據適配器 728 
22.8.3 實現getallinventory() 729 
22.8.4 實現updateinventory() 729 
22.8.5 設置版本號 729 
22.8.6 測試非鏈接的功能 730 
22.9 多表dataset對象和數據關係 731 
22.9.1 創建數據適配器 732 
22.9.2 創建表間關係 733 
22.9.3 更新database表 733 
22.9.4 在關聯表中切換 734 
22.10 windows forms數據庫設計器工具 736 
22.10.1 可視化設計datagridview 736 
22.10.2 生成的app.config文件 740 
22.10.3 強類型的dataset 740 
22.10.4 強類型的datatable 741 
22.10.5 強類型的datarow 742 
22.10.6 強類型的數據適配器 743 
22.10.7 完成windows forms應用程序 744 
22.11 將強類型的數據庫代碼隔離到類庫中 744 
22.11.1 查看生成的代碼 746 
22.11.2 用生成的代碼選擇數據 747 
22.11.3 用生成的代碼插入數據 748 
22.11.4 用生成的代碼刪除數據 748 
22.11.5 用生成的代碼調用存儲過程 749 
22.12 linq to dataset 750 
22.12.1 dataset extensions庫的做用 751 
22.12.2 獲取與linq兼容的datatable 752 
22.12.3 datarowextensions.field-[t]()擴展方法的做用 753 
22.12.4 從linq查詢中生成新的datatable 754 
22.13 小結 754 
第23章 ado.net之三:entity framework 756 
23.1 entity framework的做用 756 
23.1.1 實體的做用 758 
23.1.2 entity framework的基礎知識 760 
23.2 建立和分析edm 764 
23.3 對概念模型進行編程 774 
23.4 autolotdal 4.0版,加入實體 779 
23.4.1 導航屬性的做用 780 
23.4.2 在linq to entity查詢中使用導航屬性 781 
23.4.3 調用存儲過程 782 
23.5 將數據實體綁定到windows forms gui 783 
23.6 展望.net數據訪問api的將來 786 
23.7 小結 787 
第24章 linq to xml簡介 788 
24.1 兩個xml api的故事 788 
24.1.1 更優秀的dom——linq to xml 789 
24.1.2 更優秀的linq to xml——vb字面量語法 790 
24.2 system.xml.linq命名空間的成員 791 
24.2.1 linq to xml的軸方法 793 
24.2.2 奇妙的xname和xnamespace 794 
24.3 使用xelement和xdocument 795 
24.3.1 從數組和容器中生成文檔 797 
24.3.2 加載和解析xml內容 798 
24.4 在內存中操做xml文檔 798 
24.4.1 構建linq to xml應用程序的ui 799 
24.4.2 引入inventory.xml文件 799 
24.4.3 定義linq to xml輔助類 800 
24.4.4 將ui組裝到輔助類 801 
24.5 小結 802 
第25章 wcf 803 
25.1 各類分佈式計算api 803 
25.1.1 dcom的做用 804 
25.1.2 com+/企業服務的做用 804 
25.1.3 msmq的做用 805 
25.1.4 .net remoting的做用 805 
25.1.5 xml web服務的做用 806 
25.2 wcf的做用 807 
25.2.1 wcf特性概覽 807 
25.2.2 soa概覽 808 
25.2.3 wcf概要 809 
25.3 wcf核心程序集 809 
25.4 visual studio wcf項目模板 810 
25.5 wcf應用程序的基本構成 811 
25.6 wcf的abc 812 
25.6.1 wcf契約 813 
25.6.2 wcf綁定 814 
25.6.3 wcf地址 816 
25.7 構建wcf服務 816 
25.7.1 [servicecontract]特性 818 
25.7.2 [operationcontract]特性 819 
25.7.3 做爲操做契約的服務類型 819 
25.8 承載wcf服務 820 
25.8.1 在app.config文件中建立 
abc 820 
25.8.2 針對servicehost類型進行編程 821 
25.8.3 指定庫地址 821 
25.8.4 servicehost類型的功能 823 
25.8.5 [system.servicemodel]元素的細節 824 
25.8.6 啓用元數據交換 825 
25.9 構建wcf客戶端應用程序 827 
25.9.1 使用svcutil.exe生成代理代碼 827 
25.9.2 使用visual studio生成代理代碼 828 
25.9.3 配置基於tcp的綁定 830 
25.10 簡化配置設置 831 
25.10.1 使用默認終結點 831 
25.10.2 使用多重綁定公開單獨的wcf服務 832 
25.10.3 修改wcf綁定的設置 833 
25.10.4 使用默認的mex行爲配置 835 
25.10.5 刷新客戶端代理和選擇綁定 836 
25.11 使用wcf服務庫項目模板 837 
25.11.1 構建簡單的math服務 837 
25.11.2 使用wcftestclient.exe測試wcf服務 838 
25.11.3 使用svcconfigeditor.exe修改配置文件 839 
25.12 以windows服務承載wcf服務 840 
25.12.1 在代碼中指定abc 841 
25.12.2 啓用mex 843 
25.12.3 建立windows服務安裝程序 843 
25.12.4 安裝windows服務 845 
25.13 從客戶端異步調用服務 845 
25.14 定義wcf數據契約 847 
25.14.1 使用web相關的wcf服務項目模板 848 
25.14.2 實現服務契約 849 
25.14.3 *.svc文件的做用 851 
25.14.4 更新web.config文件 851 
25.14.5 測試服務 851 
25.15 小結 852 
第26章 windows workflow foundation簡介 853 
26.1 定義業務流程 853 
26.2 構建簡單的工做流 854 
26.3 workflow運行時 857 
26.3.1 使用workflowinvoker承載工做流 857 
26.3.2 使用workflowapplication承載工做流 860 
26.3.3 第一個工做流示例回顧 861 
26.4 檢查workflow中的活動 861 
26.4.1 控制流活動 861 
26.4.2 流程圖活動 862 
26.4.3 消息傳遞活動 862 
26.4.4 狀態機活動 863 
26.4.5 運行時活動與基元活動 863 
26.4.6 事務活動 863 
26.4.7 集合活動和錯誤處理活動 864 
26.5 構建流程圖工做流 864 
26.5.1 在流程圖中鏈接活動 865 
26.5.2 使用invokemethod活動 866 
26.5.3 定義工做流變量 867 
26.5.4 使用flowdecision活動 868 
26.5.5 使用terminateworkflow活動 868 
26.5.6 構建「true」條件 869 
26.5.7 使用foreach[t]活動 870 
26.5.8 完成應用程序 872 
26.5.9 咱們作了什麼 873 
26.6 在專門的dll中構建squence工做流 874 
26.6.1 定義初始化項目 874 
26.6.2 引入程序集和命名空間 876 
26.6.3 定義工做流參數 877 
26.6.4 定義工做流變量 877 
26.6.5 使用assign活動 878 
26.6.6 使用if和switch活動 879 
26.6.7 構建自定義代碼活動 882 
26.7 使用工做流庫 884 
26.8 小結 886 
第七部分 wpf 
第27章 wpf和xaml 888 
27.1 wpf背後的動機 888 
27.1.1 統一多種不一樣的api 889 
27.1.2 經過xaml將關注點分離 889 
27.1.3 提供優化的呈現模型 890 
27.1.4 簡化複雜的ui編程 890 
27.2 各類形式的wpf應用程序 891 
27.2.1 傳統的桌面應用程序 891 
27.2.2 基於導航的wpf應用程序 892 
27.2.3 xbap應用程序 893 
27.2.4 wpf/silverlight關係 894 
27.3 wpf程序集 894 
27.3.1 application類的做用 896 
27.3.2 window類的做用 897 
27.4 建立不使用xaml的wpf應用程序 900 
27.4.1 建立強類型的window類 902 
27.4.2 建立簡單的用戶界面 902 
27.4.3 與應用程序級別的數據交互 904 
27.4.4 處理window對象的關閉 905 
27.4.5 攔截鼠標事件 906 
27.4.6 攔截鍵盤事件 907 
27.5 僅使用xaml構建wpf應用程序 908 
27.5.1 用xaml定義窗體對象 909 
27.5.2 用xaml定義應用對象 910 
27.5.3 經過msbuild.exe處理xaml文件 911 
27.6 將標記轉換爲.net程序集 913 
27.6.1 將窗口xaml標記映射到c#代碼 913 
27.6.2 baml的做用 914 
27.6.3 將應用程序xaml標記映射到c#代碼 915 
27.6.4 xaml到程序集的過程摘要 916 
27.7 wpf xaml語法 916 
27.7.1 kaxaml 917 
27.7.2 xaml xml命名空間和xaml關鍵字 918 
27.7.3 控制類和成員變量的可見性 920 
27.7.4 xaml元素、xaml特性和類型轉換器 920 
27.7.5 xaml屬性元素語法 921 
27.7.6 xaml附加屬性 922 
27.7.7 xaml標記擴展 923 
27.8 使用代碼隱藏文件構建wpf應用程序 924 
27.8.1 爲mainwindow類添加代碼文件 925 
27.8.2 爲myapp類添加代碼文件 925 
27.8.3 用msbuild.exe處理代碼文件 926 
27.9 使用visual studio構建wpf應用程序 927 
27.9.1 wpf項目模板 927 
27.9.2 工具箱和xaml設計器/編輯器 928 
27.9.3 使用properties窗口設置屬性 929 
27.9.4 使用properties窗口處理事件 930 
27.9.5 在xaml編輯器中處理事件 931 
27.9.6 document outline窗口 932 
27.9.7 查看自動生成的代碼文件 933 
27.10 使用visual studio構建自定義xaml編輯器 933 
27.10.1 設計窗口的gui 934 
27.10.2 實現loaded事件 935 
27.10.3 實現按鈕的click事件 936 
27.10.4 實現closed事件 937 
27.10.5 測試應用程序 937 
27.10.6 探索wpf 文檔 938 
27.11 小結 939 
第28章 使用wpf控件編程 941 
28.1 wpf核心控件概述 941 
28.1.1 wpf ink控件 942 
28.1.2 wpf document控件 942 
28.1.3 wpf公共對話框 942 
28.1.4 文檔中的細節 943 
28.2 visual studio wpf設計器 944 
28.2.1 在visual studio中使用wpf控件 944 
28.2.2 使用document outline編輯器 945 
28.3 使用面板控制內容佈局 946 
28.3.1 在canvas面板中放置內容 948 
28.3.2 在wrappanel面板中放置內容 949 
28.3.3 在stackpanel面板中放置內容 951 
28.3.4 在grid面板中放置內容 952 
28.3.5 在dockpanel面板中放置內容 954 
28.3.6 啓用panel類型的滾動功能 955 
28.3.7 使用visual studio設計器配置panel 956 
28.4 使用嵌套面板構建窗口框架 959 
28.4.1 構建菜單系統 960 
28.4.2 構建工具條 962 
28.4.3 構建狀態條 963 
28.4.4 完成ui設計 963 
28.4.5 實現mouseenter/mouseleave事件處理程序 964 
28.4.6 實現拼寫檢查邏輯 964 
28.5 wpf命令 965 
28.5.1 內置的命令對象 965 
28.5.2 將命令鏈接到command屬性 966 
28.5.3 將命令鏈接到任意行爲 967 
28.5.4 使用open和save命令 968 
28.6 深刻了解wpf api和控件 970 
28.7 構建ink api選項卡 972 
28.7.1 設計工具條 973 
28.7.2 radiobutton控件 975 
28.7.3 處理ink api選項卡的事件 977 
28.7.4 inkcanvas控件 977 
28.7.5 combobox控件 980 
28.7.6 保存、加載和清除inkcanvas數據 981 
28.8 documents api 982 
28.8.1 塊元素和內聯元素 982 
28.8.2 文檔佈局管理器 982 
28.9 構建documents選項卡 983 
28.9.1 使用代碼填充flowdocument 984 
28.9.2 啓用批註和便籤 985 
28.9.3 保存和加載流文檔 986 
28.10 wpf數據綁定模型 987 
28.10.1 構建data binding選項卡 988 
28.10.2 使用visual studio創建數據綁定 988 
28.10.3 datacontext屬性 990 
28.10.4 使用ivalueconverter進行數據轉換 991 
28.10.5 在代碼中創建數據綁定 992 
28.10.6 構建datagrid選項卡 992 
28.11 小結 994 
第29章 wpf圖形呈現服務 995 
29.1 理解wpf的圖形呈現服務 995 
29.2 使用形狀呈現圖形數據 996 
29.2.1 在畫布中添加矩形、橢圓形和線條 998 
29.2.2 在畫布中移除矩形、圓形和線條 1001 
29.2.3 折線和多邊形 1002 
29.2.4 路徑 1002 
29.3 wpf畫刷和畫筆 1005 
29.3.1 使用visual studio配置畫刷 1006 
29.3.2 在代碼中配置畫刷 1008 
29.3.3 配置畫筆 1009 
29.4 圖形變換 1009 
29.4.1 變換概覽 1010 
29.4.2 變換canvas數據 1011 
29.5 使用visual studio變換編輯器 1012 
29.5.1 構建初始佈局 1012 
29.5.2 在設計時應用變換 1014 
29.5.3 在代碼中變換畫布 1015 
29.6 使用繪圖和幾何圖形呈現圖形數據 1015 
29.6.1 使用幾何圖形構建drawingbrush 1017 
29.6.2 用drawingbrush進行繪畫 1017 
29.6.3 在drawingimage中使用繪圖類型 1018 
29.7 expression design的做用 1019 
29.7.1 將示例設計文件導出爲xaml 1019 
29.7.2 將圖像數據導入wpf對象 1021 
29.7.3 與熊共舞 1022 
29.8 使用可視化層呈現圖形數據 1022 
29.9 小結 1028 
第30章 wpf資源、動畫和樣式 1029 
30.1 理解wpf資源系統 1029 
30.2 使用對象(邏輯)資源 1034 
30.2.1 resources屬性的做用 1034 
30.2.2 定義窗口級別的資源 1035 
30.2.3 {staticresource}標記擴展 1037 
30.2.4 {dynamicresource}標記擴展 1037 
30.2.5 應用程序級別的資源 1038 
30.2.6 定義合併的資源字典 1039 
30.2.7 定義只含資源的程序集 1041 
30.3 理解wpf動畫服務 1042 
30.3.1 動畫類型的做用 1043 
30.3.2 to、from和by屬性 1043 
30.3.3 timeline基類的做用 1044 
30.3.4 用c#代碼建立動畫 1044 
30.3.5 控制動畫的速度 1045 
30.3.6 動畫的反轉和循環 1046 
30.4 用xaml建立動畫 1047 
30.4.1 演示圖板的做用 1047 
30.4.2 事件觸發器的做用 1048 
30.4.3 使用不連續的關鍵幀建立動畫 1048 
30.5 wpf樣式的做用 1049 
30.5.1 定義並使用樣式 1050 
30.5.2 重寫樣式設置 1050 
30.5.3 使用targettype自動應用樣式 1051 
30.5.4 繼承已有的樣式 1052 
30.5.5 未命名樣式的做用 1052 
30.5.6 使用觸發器定義樣式 1053 
30.5.7 使用多個觸發器定義樣式 1053 
30.5.8 動畫樣式 1054 
30.5.9 以編程方式設置樣式 1054 
30.6 小結 1056 
第31章 依賴屬性、路由事件和模板 1057 
31.1 依賴屬性的做用 1057 
31.1.1 已知的依賴屬性 1059 
31.1.2 clr屬性包裝器的重要說明 1061 
31.2 構建自定義依賴屬性 1061 
31.2.1 添加數據驗證例程 1065 
31.2.2 響應屬性的改變 1065 
31.3 路由事件 1066 
31.3.1 路由冒泡事件的做用 1067 
31.3.2 繼續或停止冒泡 1068 
31.3.3 路由隧道事件的做用 1068 
31.4 邏輯樹、可視樹和默認模板 1070 
31.4.1 以編程方式查看邏輯樹 1070 
31.4.2 以編程方式查看可視樹 1072 
31.4.3 以編程方式查看控件的默認模板 1073 
31.5 使用觸發器框架構建自定義控件模板 1075 
31.5.1 模板資源 1076 
31.5.2 使用觸發器添加可視提示 1078 
31.5.3 {templatebinding}標記擴展的做用 1079 
31.5.4 contentpresenter的做用 1080 
31.5.5 融合模板和樣式 1081 
31.6 小結 1082 
第八部分 asp.net web form 
第32章 asp.net web form 1084 
32.1 http的做用 1084 
32.1.1 http請求/響應循環 1084 
32.1.2 http是無狀態協議 1085 
32.2 web應用程序和web服務器 1085 
32.2.1 iis虛擬目錄的做用 1085 
32.2.2 asp.net development web server 1086 
32.3 html的做用 1087 
32.3.1 html文檔結構 1087 
32.3.2 html表單的做用 1088 
32.3.3 visual studio html設計器工具 1088 
32.3.4 構建html表單 1090 
32.4 客戶端腳本的做用 1091 
32.5 回發到web服務器 1093 
32.6 asp.net api概覽 1094 
32.6.1 asp.net 2.0及其後續版本的主要特性 1095 
32.6.2 asp.net 3.5(和.net 3.5 sp1)的主要特性 1096 
32.6.3 asp.net 4.0和4.5的主要特性 1096 
32.7 構建單個文件的asp.net網頁 1097 
32.7.1 引用autolotdal.dll 1098 
32.7.2 設計ui 1098 
32.7.3 添加數據訪問邏輯 1099 
32.7.4 asp.net指令的做用 1101 
32.7.5 腳本塊 1102 
32.7.6 asp.net控件聲明 1103 
32.8 使用代碼文件構建asp.net web頁面 1104 
32.8.1 引用autolotdal.dll程序集 1106 
32.8.2 更新代碼文件 1107 
32.8.3 調試並跟蹤asp.net頁面 1107 
32.9 asp.net web site和asp.net web application 1108 
32.10 asp.net網站目錄結構 1110 
32.10.1 引用程序集 1110 
32.10.2 app_code文件夾的做用 1111 
32.11 頁面類型的繼承鏈 1111 
32.12 與傳入的http請求交互 1113 
32.12.1 得到瀏覽器統計數據 1113 
32.12.2 訪問傳入的表單數據 1114 
32.12.3 ispostback屬性 1115 
32.13 與輸出http響應交互 1115 
32.13.1 提交html內容 1116 
32.13.2 重定向用戶 1116 
32.14 asp.net網頁的生命週期 1117 
32.14.1 autoeventwireup特性的做用 1118 
32.14.2 error事件 1118 
32.15 web.config文件的做用 1120 
32.16 小結 1121 
第33章 asp.net web控件、母版頁和主題 1122 
33.1 web控件的本質 1122 
33.1.1 服務器端事件處理 1123 
33.1.2 autopostback屬性 1123 
33.2 control和webcontrol基類 1124 
33.2.1 枚舉所包含的控件 1125 
33.2.2 動態添加和刪除控件 1127 
33.2.3 與動態建立的控件交互 1128 
33.2.4 webcontrol基類的功能 1128 
33.3 asp.net web控件的類別 1129 
33.3.1 關於system.web.ui.htmlcontrols的簡短說明 1131 
33.3.2 web控件的文檔 1132 
33.4 構建asp.net汽車網站 1132 
33.4.1 使用asp.net母版頁工做 1133 
33.4.2 定義默認的內容頁面 1138 
33.4.3 設計inventory內容頁面 1140 
33.4.4 設計build-a-car內容頁面 1143 
33.5 驗證控件的做用 1146 
33.5.1 開啓客戶端javascript驗證支持 1147 
33.5.2 requiredfieldvalidator 1148 
33.5.3 regularexpressionvalidator 1148 
33.5.4 rangevalidator 1148 
33.5.5 comparevalidator 1149 
33.5.6 建立validationsummary 1150 
33.5.7 定義驗證分組 1151 
33.6 使用主題 1152 
33.6.1 *.skin文件 1153 
33.6.2 應用網站級別的主題 1155 
33.6.3 在頁面級別應用主題 1155 
33.6.4 skinid屬性 1155 
33.6.5 以編程方式分配主題 1156 
33.7 小結 1157 
第34章 asp.net狀態管理技術 1158 
34.1 狀態問題 1158 
34.2 asp.net狀態管理技術 1160 
34.3 asp.net視圖狀態的做用 1160 
34.3.1 演示視圖狀態 1161 
34.3.2 添加自定義視圖狀態數據 1162 
34.4 global.asax文件的做用 1163 
34.4.1 全局最後異常事件處理程序 1164 
34.4.2 httpapplication基類 1165 
34.5 應用程序狀態與會話狀態的差異 1165 
34.5.1 維護應用程序級的狀態數據 1166 
34.5.2 修改應用程序數據 1168 
34.5.3 處理web應用程序的關閉 1169 
34.6 使用應用程序緩存 1169 
34.6.1 使用數據緩存 1170 
34.6.2 修改*.aspx文件 1172 
34.7 維護會話數據 1174 
34.8 cookie 1177 
34.8.1 建立cookie 1177 
34.8.2 讀取傳入的cookie數據 1178 
34.9 [sessionstate]元素的做用 1179 
34.9.1 在asp.net會話狀態服務器中保存會話數據 1179 
34.9.2 把會話數據保存在專門的數據庫中 1180 
34.10 asp.net用戶配置api 1181 
34.10.1 aspnetdb.mdf數據庫 1181 
34.10.2 在web.config中定義用戶配置 1182 
34.10.3 以編程方式訪問用戶配置數據 1183 
34.10.4 分組用戶配置數據而且持久化自定義對象 1185 
34.11 小結 1186 
索引 1187

圖書信息來源: 互動出版網
相關文章
相關標籤/搜索