C#和.NET 2.0實戰(zhàn)

出版時間:2008-1  出版社:人民郵電  作者:Patrick Smacchia  頁數(shù):765  譯者:施凡  
Tag標簽:無  

內容概要

  本書是一本知識密集的C#技術經(jīng)典圖書,Microsoft .NET MVP力作,眾多.NET專家口口相傳的一本秘籍。全書分為三個部分,第一部分講述底層的.NET平臺,涵蓋了.NET各方面的基礎知識和工作原理;第二部分是C#語言部分,通過與C++比較的方式進行講解,清晰易懂;第三部分講述.NETFramework中的基本類庫,內容幾乎涉及.NET常見領域的全部知識?! ”緯饕嫦蚴煜?NET的編程人員,也適合.NET技術的初學者閱讀。

作者簡介

來自法國的微軟MVP,擁有多年大型項目開發(fā)經(jīng)驗。

書籍目錄

第1章 .NET簡介1.1 什么是.NET1.1.1 微軟軟件開發(fā)平臺1.1.2 一組規(guī)范1.1.3 .NET概覽1.2 發(fā)展歷程1.2.1 過去1.2.2 現(xiàn)在1.2.3 未來1.3 微軟和Windows以外的.NET1.3.1 ECMA組織與.NET1.3.2 W3C聯(lián)盟1.3.3 Mono項目1.3.4 微軟SSCLI項目1.4 .NET資源鏈接1.4.1 網(wǎng)站1.4.2 新聞組1.4.3 博客第一部分 .NET平臺第2章 程序集、模塊和IL語言2.1 程序集、模塊和資源文件2.1.1 程序集和模塊2.1.2 資源文件2.1.3 程序集、模塊、類型和資源2.1.4 為何對多模塊程序集感興趣2.1.5 ILMerge工具2.2 模塊的剖析2.2.1 可移植的可執(zhí)行文件簡介2.2.2 模塊的結構2.2.3 清單的結構2.2.4 類型元數(shù)據(jù)段的結構2.3 使用ildasm.exe和Reflector工具分析程序集2.3.1 創(chuàng)建需要分析的程序集2.3.2 使用ildasm.exe分析模塊2.3.3 Reflector工具2.4 程序集attribute和版本設定2.4.1 程序集的標準attribute2.4.2 程序集的版本設定2.4.3 友元程序集2.5 強名稱程序集2.5.1 簡介2.5.2 sn.exe工具2.5.3 公鑰記號2.5.4 為程序集簽名2.5.5 具體示例2.5.6 程序集的延遲簽名2.6 國際化/本地化與衛(wèi)星程序集2.6.1 區(qū)域設置和本地化2.6.2 資源文件2.6.3 在代碼中使用資源2.6.4 創(chuàng)建衛(wèi)星程序集2.6.5 部署和使用衛(wèi)星程序集2.6.6 避免在資源無法找到時引發(fā)異常2.6.7 Visual Studio與衛(wèi)星程序集2.6.8 區(qū)域設置與字符串格式化2.7 IL語言簡介2.7.1 棧及其特殊的IL指令2.7.2 示例1:局部變量與棧2.7.3 示例2:方法調用與棧2.7.4 用于比較、分支和跳轉的IL指令2.7.5 IL的面向對象特性2.7.6 元數(shù)據(jù)符號第3章 生成、部署以及配置.NET應用程序3.1 用MSBuild生成應用程序3.2 MSBuild:目標、任務、屬性、項與條件3.2.1 .proj文件、目標與任務3.2.2 屬性3.2.3 項3.2.4 條件3.3 高級 MSBuild3.3.1 增量生成與目標間的依賴3.3.2 MSBuild轉換3.3.3 將一個MSBuild項目分解到多個文件3.3.4 Visual Studio 2005如何利用MSBuild3.3.5 創(chuàng)建自定義MSBuild任務3.4 配置文件3.4.1 machine.config文件3.4.2 標準配置參數(shù)3.4.3 使用  appSettings 元素定義配置參數(shù)3.4.4 使用配置節(jié)定義配置參數(shù)3.4.5 使用Visual Studio 2005創(chuàng)建配置節(jié)3.4.6 配置節(jié)的注意事項3.5 程序集部署:XCopy與GAC3.5.1 XCopy部署3.5.2 共享程序集與GAC文件夾3.5.3 GAC的并存存儲模型是如何解決DLL hell問題的3.5.4 并存執(zhí)行3.5.5 查看及編輯GAC文件夾3.6 發(fā)布者策略程序集3.6.1 潛在的問題3.6.2 解決方案3.6.3 創(chuàng)建發(fā)布者策略程序集3.7 .NET應用程序部署簡介3.7.1 MSI、cab、XCopy、ClickOnce 和NTD之間的對比3.7.2 MSI與ClickOnce的對比3.8 使用cab文件部署應用程序3.9 使用MSI技術部署應用程序3.9.1 添加文件3.9.2 安裝快捷方式3.9.3 在GAC文件夾中添加一個共享程序集3.9.4 安裝項目屬性3.9.5 更新注冊表3.9.6 指定在安裝期間執(zhí)行的自定義動作3.9.7 為安裝提供一個自定義用戶界面3.10 使用ClickOnce技術部署應用程序3.10.1 部署文件夾3.10.2 為ClickOnce部署做準備3.10.3 ClickOnce部署與移動代碼安全3.10.4 按需安裝與下載組3.10.5 更新一個使用ClickOnce安裝的應用程序3.10.6 應用程序所需的CAS權限集的工作機制3.10.7 ClickOnce應用程序安裝與執(zhí)行的細節(jié)3.11 使用無接觸部署(NTD)技術部署應用程序3.12 如果目標機器上沒有安裝.NET運行庫怎么辦第4章 CLR4.1 應用程序域4.1.1 簡介4.1.2 線程與AppDomain4.1.3 卸載AppDomain4.1.4 AppDomain和孤立性4.1.5 System.AppDomain類4.1.6 在一個進程中承載多個應用程序4.1.7 在其他AppDomain的上下文中運行代碼4.1.8 AppDomain類的事件4.1.9 在同一個進程的AppDomain之間共享信息4.2 在Windows進程內通過運行庫宿主加載CLR4.2.1 mscorsvr.dll和mscorwks.dll4.2.2 mscorlib.dll程序集4.2.3 運行庫宿主介紹4.2.4 在同一臺計算機上承載多個版本的CLR4.2.5 使用CorBindToRuntimeExO函數(shù)加載CLR4.2.6 創(chuàng)建一個自定義的運行庫宿主4.2.7 在自定義運行庫宿主中調整CLR4.2.8 SQL Server 2005運行庫宿主的特性4.3 剖析.NET應用程序的執(zhí)行狀況4.4 定位和加載程序集4.4.1 CLR何時嘗試定位程序集4.4.2 CLR使用的定位算法4.4.3 配置文件的  assemblyBinding 元素4.4.4 定位算法示意圖4.4.5 影子復制機制4.5 運行庫類型解析4.5.1 顯式或隱式加載程序集4.5.2 編譯時引用程序集4.5.3 示例4.5.4 類型解析算法示意圖4.6 JIT(即時)編譯4.6.1 可移植的二進制代碼4.6.2 即時編譯技術簡介4.6.3 ngen.exe工具4.6.4 性能計數(shù)器與JIT編譯4.7 垃圾收集器和托管堆4.7.1 垃圾收集技術簡介4.7.2 垃圾收集算法遇到的問題4.7.3 .NET的GC4.7.4 第一步:尋找根對象4.7.5 第二步:建立活動對象樹4.7.6 第三步:解除分配非活動對象4.7.7 第四步:清理堆碎片4.7.8 第五步:重新計算托管引用所使用的物理地址4.7.9 推薦做法4.7.10 針對大對象的特殊堆4.7.11 多線程環(huán)境下的垃圾收集4.7.12 弱引用4.7.13 使用System.GC類影響GC的行為4.8 提高代碼可靠性的機制4.8.1 異步異常及托管代碼可靠性4.8.2 受約束執(zhí)行區(qū)域4.8.3 如何定義CER4.8.4 內存門4.8.5 可靠性契約4.8.6 關鍵終結器4.8.7 臨界區(qū)4.9 CLI和CLS4.9.1 .NET語言必須滿足的要求4.9.2 從開發(fā)人員的觀點看CLI和CLS第5章 進程、線程與同步5.1 簡介5.2 進程5.2.1 簡介5.2.2 System.Diagnostics.Process類5.2.3 創(chuàng)建和銷毀子進程5.2.4 避免在一臺機器上同時運行同一應用程序的多個實例5.2.5 終止當前進程5.3 線程5.3.1 簡介5.3.2 受托管的線程與Windows線程5.3.3 搶占式多任務處理5.3.4 進程與線程的優(yōu)先級5.3.5 System.Threading.Thread類5.3.6 創(chuàng)建與聯(lián)結線程5.3.7 掛起線程5.3.8 終止線程5.3.9 前臺線程與后臺線程5.3.10 受托管線程的狀態(tài)圖5.4 訪問資源同步簡介5.4.1 競態(tài)條件5.4.2 死鎖5.5 使用volatile字段與Interlocked類實現(xiàn)同步5.5.1 volatile字段5.5.2 System.Threading.Inter-locked類5.5.3 Interlocked類提供的其他功能5.6 使用System.Threading.Monitor類與C#的lock關鍵字實現(xiàn)同步5.6.1 EnterO方法和ExitO方法5.6.2 C#的lock關鍵字5.6.3 SyncRoot模式5.6.4 線程安全類5.6.5 Monitor.TryEnterO方法5.6.6 Monitor類的WaitO方法、PulseO方法以及PulseAllO方法5.7 使用Win32對象同步:互斥體、事件與信號量5.7.1 共享Win32同步對象5.7.2 互斥體5.7.3 事件5.7.4 信號量5.8 利用System.Threading.Reader-WriterLock類實現(xiàn)同步 1135.9 利用System.Runtime.Remoting.Contexts.SynchronizationAttr-ibute實現(xiàn)同步5.9.1 同步域簡介5.9.2 System.Runtime.Remoting.Contexts.Synchronization與同步域5.9.3 重入與同步域5.9.4 另一個名為Synchronization 的attribute5.10 CLR的線程池5.10.1 簡介5.10.2 使用線程池5.11 定時器5.11.1 System.Timers.Timer類5.11.2 System.Threading.Timer類5.11.3 System.Windows.Forms.Timer類5.12 異步方法調用5.12.1 異步委托5.12.2 回調方法5.12.3 向回調方法傳遞狀態(tài)5.12.4 one-way調用5.13 線程-資源親緣性5.13.1 System.ThreadStatic-Attribute5.13.2 線程本地存儲(TLS)5.13.3 System.ComponentModel. ISynchronizeInvoke接口5.14 執(zhí)行上下文簡介第6章 安全性6.1 代碼訪問安全性(CAS)概述6.1.1 什么是移動代碼6.1.2 CAS:全局觀6.1.3 給程序集代碼授予權限6.1.4 在運行程序集的代碼時檢查權限6.2 CAS:證據(jù)和權限6.2.1 什么是證據(jù)6.2.2 .NET Framework所提供的標準證據(jù)6.2.3 誰提供證據(jù)6.2.4 權限6.2.5 標準權限6.2.6 標識權限6.2.7 安全權限6.2.8 自定義權限6.3 CAS:通過應用安全策略根據(jù)證據(jù)授予權限6.3.1 安全策略級別6.3.2 剖析安全策略6.3.3 用于應用安全策略的算法6.3.4 默認安全策略配置6.3.5 配置安全策略6.4 CAS:FullTrust權限6.5 CAS:從源代碼進行命令式的權限檢查6.5.1 CodeAccessPermissions類和PermissionSet類6.5.2 DemandO方法6.5.3 DenyO方法、RevertDenyO方法、PermitOnlyO方法和RevertPermitOnlyO方法6.5.4 AssertO方法和RevertAssertO方法6.5.5 FromXmlO方法和ToXmlO方法6.5.6 System.Security.IPermission接口6.6 CAS:使用attribute進行聲明式的權限檢查6.6.1 加載程序集時調整所授權限集合的attribute6.6.2 命令式與聲明式的對比6.7 CAS:測試和調試移動代碼的實用機制6.8 CAS:獨立存儲區(qū)權限6.9 .NET、Windows 用戶與角色6.9.1 Windows安全簡介6.9.2 IIdentity接口與IPrincipal接口6.9.3 Windows 安全標識符6.9.4 在底層Windows線程中模擬用戶6.10 .NET與Windows資源的訪問控制6.10.1 Windows訪問控制簡介6.10.2 在.NET代碼中使用特殊的SD6.10.3 在.NET代碼中使用通用的SD6.11 .NET與角色6.11.1 定義應用程序域的主體策略6.11.2 檢查用戶是否屬于某個特定角色6.11.3 COM+角色6.12 .NET與密碼學:對稱算法6.12.1 對稱算法概述6.12.2 .NET Framework與對稱算法6.13 .NET與密碼學:非對稱算法(公鑰/私鑰)6.13.1 非對稱算法概述6.13.2 安全會話簡介6.13.3 RSA 算法6.13.4 非對稱算法與數(shù)字簽名6.13.5 .NET Framework與RSA算法6.14 數(shù)據(jù)保護API6.14.1 Windows的數(shù)據(jù)保護API6.14.2 System.Security.Crypto-graphy.ProtectedData類6.14.3 System.Security.Crypto-graphy.ProtectedMemory類6.14.4 System.Security.SecureString類6.14.5 保護配置文件中的數(shù)據(jù)6.14.6 確保網(wǎng)絡傳輸中數(shù)據(jù)的安全6.15 使用Authenticode 技術與X.509證書驗證程序集6.15.1 Authenticode與強名稱6.15.2 證書與證書認證中心6.15.3 根證書6.15.4 Windows、.NET與Authenti- code技術第7章 反射、后期綁定與attribute7.1 反射7.1.1 何時需要反射7.1.2 .NET反射有何新意7.1.3 對載入AppDomain的程序集的反射7.1.4 從元數(shù)據(jù)獲取信息7.2 后期綁定7.2.1 “綁定類”的含義7.2.2 早期綁定與動態(tài)綁定7.2.3 后期綁定7.2.4 在C#編譯到IL期間如何實例化一個未知的類7.2.5 使用后期綁定7.2.6 利用接口:使用后期綁定的正確方法7.3 attribute7.3.1 attribute是什么7.3.2 何時需要attribute7.3.3 關于attribute應該知道的事7.3.4 可以應用attribute的代碼元素7.3.5 .NET Framework中的一些標準attribute7.3.6 自定義的attribute的示例7.3.7 條件attribute7.4 動態(tài)生成程序集并在運行中使用7.4.1 為什么要考慮動態(tài)生成程序集7.4.2 一個實際的問題 1867.4.3 理想的第三種解決方案——動態(tài)創(chuàng)建程序集7.4.4 將程序集保存到磁盤上的能力7.4.5 結論第8章 .NET與本機代碼/COM/COM+之間的互操作性8.1 P/Invoke8.1.1 DllImportAttribute8.1.2 類型轉換8.1.3 使用指針傳遞參數(shù)8.1.4 傳遞字符串8.1.5 傳遞結構與聯(lián)合8.1.6 方向attribute8.1.7 委托與非托管的函數(shù)指針8.2 C++/CLI語言互操作性簡介8.2.1 IJW功能8.2.2 托管類型與非托管類型共存8.2.3 在本機代碼中使用托管對象8.3 .NET與Win32句柄8.3.1 簡介8.3.2 HandleCollector類8.3.3 SafeHandle類與Critical-Handle類8.4 在.NET 中使用COM 對象8.4.1 類型元數(shù)據(jù)與類型庫8.4.2 Interop程序集與Runtime Callable Wrapper類8.4.3 訪問不使用類型庫的COM組件中的COM類8.4.4 使用Visual Studio導入ActiveX8.4.5 使用RCW類時需要牢記的COM特性8.4.6 COM類的顯式后期綁定8.4.7 免注冊COM8.5 將.NET對象包裝成CCW8.5.1 CCW簡介8.5.2 從.NET程序集中生成描述CCW類的COM類型庫8.5.3 在操作系統(tǒng)上注冊CCW8.5.4 將.NET程序集作為COM組件使用8.5.5 .NET異常與CCW8.5.6 處理對象生命周期8.6 COM+簡介8.6.1 COM+是什么8.6.2 在.NET中使用COM+:企業(yè)服務8.7 COM+企業(yè)服務簡介8.7.1 COM+企業(yè)服務的完整列表8.7.2 你需要COM+企業(yè)服務嗎8.8 在.NET類中利用COM+服務8.8.1 服務組件簡介8.8.2 聲明服務組件使用的企業(yè)服務8.8.3 COM+上下文與服務組件8.8.4 COM+應用程序簡介8.8.5 COM+目錄8.8.6 COM+應用程序的激活模式8.8.7 安裝服務組件8.8.8 查看并操作COM+目錄8.8.9 構建一個使用服務組件的客戶第二部分 C#語言第9章 語言基本概念9.1 源代碼組織9.1.1 命名空間9.1.2 命名空間中可聲明的全套語法元素9.1.3 C#項目的結構9.1.4 命名空間和程序集的組織9.2 編譯步驟9.3 預處理器9.3.1 預處理符號與條件編譯9.3.2 預處理符號與條件attribute9.3.3 #error指令和#warning指令9.3.4 #pragma warning disable 指令和#pragma warning restore指令9.3.5 #line指令9.3.6 #region指令和#endregion指令9.4 csc.exe編譯器9.5 別名機制9.5.1 創(chuàng)建命名空間和類型的別名9.5.2 命名空間別名限定符9.5.3 全局限定符9.5.4 外部別名9.6 注釋和自動文檔9.6.1 注釋9.6.2 使用Visual Studio的任務列表9.6.3 自動文檔9.7 標識符9.8 控制結構9.8.1 條件語句(if/else、?:和switch)9.8.2 循環(huán)語句(do、while、for和foreach)9.8.3 goto語句9.9 MainO方法第10章 從C# 2.0的角度看.NET 2.0類型系統(tǒng)10.1 對象在內存中的存儲10.1.1 對象的分配和解除分配10.1.2 托管線程棧10.1.3 托管堆10.1.4 對象存儲:托管線程棧與托管堆的比較10.1.5 靜態(tài)分配與動態(tài)分配的比較10.2 引用類型和值類型10.3 公共類型系統(tǒng)(CTS)10.3.1 .NET類型不與任何編程語言關聯(lián)10.3.2 CTS:全局觀10.4 System.Object類10.5 對象比較10.5.1 等價與恒等10.5.2 自定義相等比較規(guī)則10.5.3 相等性與散列表10.5.4 自定義大小比較規(guī)則10.6 對象克隆10.7 裝箱和拆箱10.7.1 裝箱10.7.2 裝箱導致的危險問題10.7.3 拆箱10.8 基本類型10.8.1 整型10.8.2 實型10.8.3 布爾型10.8.4 字符型10.8.5 整數(shù)和字符串之間的轉換10.9 基本類型的運算10.9.1 同一基本類型上的算術運算10.9.2 處理被零除的錯誤10.9.3 處理溢出10.9.4 運算符的優(yōu)先級10.9.5 前綴和后綴遞增/遞減運算符10.9.6 不同基本類型之間的算術運算10.9.7 位運算10.10 結構10.11 枚舉10.11.1 枚舉和整型10.11.2 System.Enum類10.11.3 位域(一組標志)10.12 字符串10.12.1 System.String類10.12.2 字符串字面常量10.12.3 無轉義字符串字面常量10.12.4 使用字符串10.12.5 格式化字符串10.12.6 System.Text.StringBui-lder類10.13 委托類和委托對象10.13.1 簡介10.13.2 委托對象與靜態(tài)方法10.13.3 C# 2.0編譯器的委托類推測功能10.13.4 委托對象與實例方法10.13.5 用一個委托對象引用多個方法10.13.6 System.Delegate類10.13.7 更改引用方法列表10.14 可空類型10.14.1 值類型和空值范式10.14.2 System.Nullable T 結構10.14.3 C#語法革新:Nullable T 關鍵字和null關鍵字10.14.4 C#語法革新:Nullable T 的等價寫法T?10.14.5 C# 2.0中bool?的無差別對待10.14.6 可空類型與裝箱/拆箱10.14.7 可空結構和可空枚舉10.15 部分類型10.15.1 必須在每個部分聲明上重復出現(xiàn)的類型聲明元素10.15.2 在每個部分聲明上可選重復出現(xiàn)的類型聲明元素10.15.3 在多個部分聲明上重復出現(xiàn)就會累積效果的類型聲明元素10.15.4 僅在某個部分聲明上起作用的類型聲明元素第11章 類和對象11.1 簡介11.2 術語11.3 類的定義11.4 字段11.4.1 字段初始化11.4.2 常數(shù)字段11.4.3 字段初始化的潛在問題11.5 方法11.5.1 按值或按引用傳遞參數(shù)11.5.2 C#的默認規(guī)則11.5.3 按引用傳遞任意參數(shù)11.5.4 在引用類型上使用ref關鍵字11.5.5 參數(shù)初始化11.5.6 輸出參數(shù)11.5.7 params關鍵字11.5.8 方法重載11.6 屬性11.6.1 get訪問器11.6.2 set訪問器11.6.3 關于屬性的注釋11.7 索引器11.8 事件11.8.1 介紹11.8.2 C#語法11.8.3 一個實際的例子11.8.4 異步事件處理11.8.5 在同步條件下保護代碼不受訂閱者方法所拋異常的影響11.9 嵌套類型11.10 封裝性和可見性11.10.1 成員的可見性11.10.2 類型的可見性11.10.3 屬性和索引器訪問器的可見性11.10.4 私有成員的附加說明11.10.5 IL語言可見性的附加說明11.11 this關鍵字11.12 構造函數(shù)11.12.1 構造函數(shù)的聲明11.12.2 創(chuàng)建對象時訪問構造函數(shù)11.13 對象終結和析構11.13.1 析構函數(shù)、終結器和Object.FinalizeO方法11.13.2 IDisposable接口和DisposeO方法11.13.3 何時需要終結器和DisposeO方法11.14 靜態(tài)成員11.14.1 靜態(tài)字段、屬性和事件11.14.2 靜態(tài)方法11.14.3 靜態(tài)構造函數(shù)11.14.4 靜態(tài)類11.15 運算符重載11.15.1 算術運算符的重載11.15.2 類型轉換運算符的重載11.15.3 比較運算符的重載11.15.4 運算符重載和CLS第12章 繼承、多態(tài)性與抽象性12.1 目標:代碼重用12.1.1 潛在問題12.1.2 解決方案之一:類的繼承12.2 類的繼承12.2.1 語法12.2.2 保護及內部或保護可見性級別12.2.3 類繼承圖12.2.4 調用基類的構造函數(shù)12.2.5 基類成員的可見性12.2.6 封閉類12.3 虛方法和多態(tài)性12.3.1 潛在問題12.3.2 解決方案之一:虛方法和多態(tài)性12.3.3 示例一則12.3.4 屏蔽多態(tài)性12.4 抽象性12.4.1 潛在的問題12.4.2 解決方案之一:抽象類和抽象方法12.4.3 示例一則12.4.4 同時使用abstract關鍵字和override關鍵字12.5 接口12.5.1 強制代碼使用者使用抽象體代替實現(xiàn)體12.5.2 解決方法命名的沖突12.5.3 解決接口擴展帶來的沖突12.5.4 覆寫接口的實現(xiàn)方法12.5.5 接口與結構12.6 虛擬或抽象屬性、事件和索引器12.7 is和as運算符12.7.1 is運算符12.7.2 as運算符12.8 代碼重用的解決方案第13章 泛型13.1 C# 1.0的一個問題以及使用C# 2.0 泛型的解決方法13.1.1 C# 1.0中集合項的類型化問題13.1.2 C# 2.0泛型帶來的理想方案13.2 .NET 2.0泛型概覽13.2.1 聲明多個類型參數(shù)13.2.2 開放和封閉泛型類型13.2.3 .NET泛型與C++模板的比較13.2.4 泛型類型的可見性13.2.5 泛型結構與接口13.2.6 泛型類型與別名13.3 類型參數(shù)的約束13.3.1 默認構造函數(shù)約束13.3.2 派生約束13.3.3 引用類型或值類型約束13.4 泛型類型的成員13.4.1 方法重載13.4.2 靜態(tài)字段13.4.3 靜態(tài)方法13.4.4 類構造函數(shù)13.4.5 運算符重載13.4.6 嵌套類型13.5 運算符與泛型13.5.1 類型參數(shù)的相等、不等及比較運算符13.5.2 typeof運算符與泛型13.5.3 params及l(fā)ock關鍵字與泛型13.5.4 default運算符13.6 類型轉換與泛型13.6.1 基本規(guī)則13.6.2 類型轉換與泛型數(shù)組13.6.3 is和as運算符13.7 繼承與泛型13.7.1 基本規(guī)則13.7.2 覆寫泛型類型的虛方法13.8 泛型方法13.8.1 簡介13.8.2 泛型方法與約束13.8.3 虛擬泛型方法13.8.4 泛型方法類型參數(shù)的推測13.8.5 C# 2.0語法的二義性13.9 委托、事件與泛型13.9.1 簡介13.9.2 泛型委托與泛型方法13.9.3 泛型與委托的協(xié)變性及反變性13.9.4 事件和泛型委托13.10 反射、attribute、IL與泛型13.10.1 泛型與System.Type類13.10.2 泛型與System.Reflection.MethodBase類及System.Reflection.MethodInfo類13.10.3 attribute與泛型13.10.4 IL語言與泛型13.11 .NET Framework 2.0中的泛型13.11.1 對象序列化與泛型13.11.2 .NET Remoting與泛型13.11.3 集合與泛型13.11.4 不支持泛型的領域第14章 不安全代碼、異常、匿名方法和迭代器14.1 指針和不安全代碼14.1.1 允許不安全代碼的編譯器選項14.1.2 在C#中聲明不安全代碼14.2 在C#中使用指針14.2.1 .NET中支持指針的類型14.2.2 聲明指針14.2.3 提領和間接運算符14.2.4 取大小運算符14.2.5 指針運算14.2.6 指針類型轉換14.2.7 雙重指針14.2.8 定址對象14.2.9 指針和數(shù)組14.2.10 固定數(shù)組14.2.11 使用stackalloc關鍵字在棧上分配內存14.2.12 字符串與指針14.3 利用異常處理錯誤14.3.1 潛在問題:如何恰當處理運行時出現(xiàn)的大多數(shù)錯誤14.3.2 C#異常處理簡介14.4 異常對象和定義自己的異常類14.4.1 System.Exception類14.4.2 定義自己的異常類14.4.3 從自己的代碼中拋出異常14.4.4 C#的非檢查型異常14.5 catch塊和finally塊14.5.1 catch塊的一些說明(異常處理程序)14.5.2 finally塊14.5.3 增加異常語義14.6 從構造函數(shù)或終結器中拋出的異常14.6.1 靜態(tài)構造函數(shù)所拋異?;蜢o態(tài)字段初始化時所拋異常14.6.2 終結器所拋異常14.7 異常處理與CLR14.8 異常處理與Visual Studio14.9 異常管理使用指南14.9.1 何時考慮拋出異常14.9.2 在異常處理程序中做什么14.9.3 在何處放置異常處理程序14.9.4 異常與返回錯誤代碼的對比14.9.5 永遠不要預測bug造成的后果能夠被異常處理程序所捕獲14.10 匿名方法14.10.1 C# 2.0匿名方法簡介14.10.2 匿名方法可以接受參數(shù)14.10.3 一個精妙的特殊語法14.10.4 匿名方法與泛型14.10.5 匿名方法的實際應用14.11 C# 2.0編譯器與匿名方法14.11.1 簡單的方式14.11.2 捕獲局部變量14.11.3 捕獲的局部變量與代碼復雜性14.11.4 匿名方法訪問外圍方法的參數(shù)14.11.5 匿名方法訪問外圍類的成員14.12 匿名方法的高級用法14.12.1 定義:閉包與詞法環(huán)境14.12.2 漫談閉包14.12.3 使用閉包代替類14.12.4 委托與閉包14.12.5 使用匿名方法處理集合14.13 C# 1.x迭代器14.13.1 可枚舉對象、枚舉器和Iterator設計模式14.13.2 實例一則14.13.3 一個可枚舉對象對應多個枚舉器14.13.4 C# 1.x迭代器的缺點14.14 C# 2.0迭代器14.14.1 yield return關鍵字14.14.2 迭代器與泛型14.14.3 一個可枚舉對象對應多個枚舉14.14.4 yield break關鍵字14.14.5 yield return關鍵字和yield break關鍵字的語法限制14.14.6 遞歸迭代器實例14.15 C# 2.0編譯器與迭代器14.15.1 編譯器自動創(chuàng)建并使用的枚舉器類14.15.2 關于生成類的說明14.16 C# 2.0迭代器的高級用法14.16.1 定義:協(xié)同例程和延拓14.16.2 通過迭代器利用協(xié)同例程和延拓的威力14.16.3 Pipeline模式14.16.4 延拓與多線程的比較14.16.5 C# 2.0迭代器的一個限制第三部分 .NET Framework第15章 集合15.1 使用foreach和in關鍵字迭代訪問集合中的項15.1.1 在數(shù)組上使用foreach和in15.1.2 交錯數(shù)組上的foreach語法15.1.3 在自定義集合類上支持foreach語法15.2 數(shù)組15.2.1 創(chuàng)建和引用數(shù)組15.2.2 訪問數(shù)組的項和處理越界訪問15.2.3 交錯數(shù)組15.2.4 初始化數(shù)組的項15.2.5 數(shù)組的協(xié)變15.2.6 System.Array類15.2.7 位數(shù)組15.3 序列15.3.1 System.Collections.Generic.ICollection T 接口15.3.2 System.Collections.Generic.IList T 接口15.3.3 System.Collections.Generic.List T 類15.3.4 System.ComponentModel.IBindingList接口和System.ComponentModel.IListSource接口15.3.5 System.Collections.Generic.LinkedList T 類15.3.6 字符串列表15.3.7 System.Collections.Generic.Queue T 類15.3.8 System.Collections.Generic.Stack T 類15.4 字典15.4.1 System.Collections.Generic.IDictionary K,V 接口15.4.2 System.Collections.Generic.SortedDictionary K,V 類15.4.3 System.Collections.Generic.Dictionary K,V 類15.4.4 迭代訪問字典中的項15.5 對集合中的項進行排序15.5.1 IComparer T 接口和Icom-parable T 接口15.5.2 對數(shù)組中的項排序15.5.3 對List T 實例中的元素排序15.6 用于處理集合的函數(shù)對象15.6.1 特化的委托類型15.6.2 使用匿名方法15.6.3 List T 類和Array類支持函數(shù)對象15.6.4 C# 2.0的迭代器和集合15.7 System.Collections.Generic和System.Collections之間的聯(lián)系第16章 基類16.1 數(shù)學16.1.1 System.Math類16.1.2 System.Random類16.2 時間、日期和持續(xù)時間16.2.1 System.DateTime結構16.2.2 System.TimeSpan結構16.2.3 System.Diagnostics. Stopwatch類16.3 驅動器、目錄、文件和路徑16.3.1 操作驅動器16.3.2 操作目錄16.3.3 操作文件16.3.4 操作路徑16.3.5 文件系統(tǒng)監(jiān)視器16.4 注冊表16.4.1 引言16.4.2 注冊表的結構16.4.3 注冊表的層級16.4.4 用.NET讀/寫注冊表16.5 調試16.5.1 用來自定義對象調試時的視圖的attribute16.5.2 調試“僅我的代碼”16.5.3 調試模式16.5.4 解決調試問題16.6 跟蹤16.6.1 監(jiān)聽器16.6.2 跟蹤源和源級別16.6.3 篩選跟蹤源16.6.4 跟蹤縮進16.7 正則表達式16.7.1 引言16.7.2 語法16.7.3 示例16.7.4 .NET和正則表達式16.7.5 優(yōu)化正則表達式的求值16.8 控制臺16.8.1 光標16.8.2 顯示16.8.3 大小與位置16.8.4 顏色16.8.5 數(shù)據(jù)輸入16.8.6 重定向控制臺的流16.8.7 雜項第17章 輸入、輸出和流17.1 流的簡介17.1.1 流的類層次結構17.1.2 操作流的工具17.1.3 流數(shù)據(jù)的類型化17.1.4 字符串編碼17.2 讀寫文件17.2.1 簡單的文件讀寫17.2.2 讀寫二進制數(shù)據(jù)文件17.2.3 讀寫文本文件17.2.4 以異步的方式操作流17.3 用套接字來使用TCP/IP17.3.1 套接字和TCP/IP簡介17.3.2 以同步的方式操作套接字17.3.3 以異步的方式操作套接字17.4 獲取網(wǎng)絡接口和狀態(tài)的信息17.4.1 發(fā)現(xiàn)可用網(wǎng)絡接口17.4.2 Ping17.4.3 網(wǎng)絡發(fā)生更改時所觸發(fā)的事件17.4.4 網(wǎng)絡活動統(tǒng)計17.5 HTTP和FTP客戶端17.5.1 URI17.5.2 WebClient類17.5.3 通過URI訪問資源的其他類17.6 在HTTP.SYS上用HttpListener編HTTP服務器代碼17.6.1 HTTP.SYS簡介17.6.2 System.Net.HttpListener類17.6.3 以異步方式處理HTTP請求17.7 支持郵件協(xié)議17.8 緩沖和壓縮數(shù)據(jù)流17.8.1 通過Decorator設計模式在流上應用服務17.8.2 緩沖流數(shù)據(jù)17.8.3 壓縮數(shù)據(jù)流17.9 在串行端口上讀寫數(shù)據(jù)17.10 支持安全通訊協(xié)議:SSL、NTLM和Kerberos17.10.1 安全通訊協(xié)議簡介17.10.2 安全通訊協(xié)議和System.Net.Security命名空間17.10.3 SslStream類17.10.4 NegociateStream類17.10.5 加密數(shù)據(jù)流第18章 Windows Forms應用程序18.1 Windows用戶界面18.1.1 控制臺應用程序與窗口應用程序18.1.2 Windows消息簡介18.1.3 Windows應用程序開發(fā)的發(fā)展18.1.4 System.Windows.Forms命名空間簡介18.2 Windows Forms開發(fā)簡介18.2.1 處理事件18.2.2 編寫方法18.2.3 沒有Visual Studio的Windows Forms開發(fā)18.3 Windows Forms開發(fā)工具18.3.1 模態(tài)/非模態(tài)對話框簡介18.3.2 鼠標和鍵盤事件18.3.3 Paint事件18.3.4 異步處理18.3.5 其他特性18.4 標準控件18.4.1 Windows Forms 2.0控件的層次結構18.4.2 新增控件概述18.5 創(chuàng)建自定義控件18.6 顯示和編輯數(shù)據(jù)18.6.1 Visual Studio 2005提供的工具18.6.2 BindingSource控件18.6.3 用BindingSource來利用數(shù)據(jù)源18.6.4 用對象列表作為數(shù)據(jù)源18.7 Windows Forms和本地化18.8 GDI+18.8.1 System.Drawing.Graphics類18.8.2 System.Drawing.Pen類18.8.3 System.Drawing.Brush類18.8.4 繪制文本18.8.5 處理圖像18.8.6 優(yōu)化圖像的處理18.8.7 動畫和雙緩沖第19章 ADO.NET 2.019.1 數(shù)據(jù)庫簡介19.1.1 DBMS19.1.2 RDBMS19.1.3 SQL語言19.1.4 分布式架構的必要性19.2 ADO.NET簡介19.2.1 連接模式與非連接模式19.2.2 數(shù)據(jù)提供程序19.2.3 ADO.NET:全局觀19.2.4 我們將在范例中使用的DB19.3 連接與數(shù)據(jù)提供程序19.3.1 解除應用程序與數(shù)據(jù)提供程序之間的耦合19.3.2 連接字符串19.3.3 如何存儲連接字符串以及連接字符串存儲在哪里19.3.4 連接池19.3.5 訪問數(shù)據(jù)源的元數(shù)據(jù)19.4 使用DataReader在連接模式下工作19.4.1 使用DataReader從數(shù)據(jù)庫中獲取數(shù)據(jù)19.4.2 在數(shù)據(jù)庫端進行標量運算19.4.3 使用SQL查詢來修改數(shù)據(jù)19.5 使用DataSet在非連接模式下工作19.5.1 使用來自數(shù)據(jù)庫的數(shù)據(jù)填充緩存19.5.2 在DataSet中對多表之間的關聯(lián)進行操作19.5.3 將DataSet中更新的數(shù)據(jù)保存到數(shù)據(jù)庫19.5.4 非連接模式與樂觀/悲觀并發(fā)策略19.5.5 DataSet中數(shù)據(jù)表的約束19.5.6 DataView類19.6 強類型DataSet19.6.1 創(chuàng)建強類型DataSet類19.6.2 TableAdapter和強類型SQL請求19.7 連接模式和非連接模式之間的橋接器19.8 對象與關系數(shù)據(jù)之間的橋接器19.8.1 結構問題19.8.2 行為問題19.8.3 解決上述問題的途徑19.8.4 用于對象關系映射的.NET工具19.9 SQL Server數(shù)據(jù)提供程序的專有功能19.9.1 異步請求19.9.2 批量復制19.9.3 SqlClient連接上的統(tǒng)計數(shù)據(jù)19.9.4 SQL Server 2005 Express版本第20章 事務20.1 事務簡介20.1.1 事務管理器、資源管理器和數(shù)據(jù)源20.1.2 分布式事務以及2PC算法簡介20.1.3 在SQL Server連接上進行的本地事務20.1.4 分布式事務協(xié)調器20.2 System.Transactions20.2.1 LTM、持久RM和易變RM簡介20.2.2 System.Transactions 實現(xiàn)的隱式事務20.2.3 在事務中被觸發(fā)的事件20.2.4 System.Transactions揭秘20.2.5 事務隔離級別簡介20.2.6 事務作用域20.2.7 System.Transactions 實現(xiàn)的顯式事務20.3 System.Transactions的高級用法20.3.1 在多個線程中執(zhí)行一個事務20.3.2 以異步方式完成事務20.3.3 System.Transactions和CAS20.4 用于實現(xiàn)自定義RM的機制第21章 XML21.1 簡介21.1.1 XML所解決的問題21.1.2 統(tǒng)一文檔世界和數(shù)據(jù)世界21.1.3 XML文檔的結構21.2 XSD、XPath、XSLT和XQuery簡介21.2.1 用XSD schema類型化XML文檔及其數(shù)據(jù)21.2.2 Xpath21.2.3 XSLT21.2.4 XQuery21.3 遍歷和編輯XML文檔的方法21.4 使用XmlReader類和XmlWriter類的Cursor方法21.4.1 使用XmlReader類讀取數(shù)據(jù)21.4.2 在讀取數(shù)據(jù)時對其進行驗證21.4.3 使用XmlWriter類編輯數(shù)據(jù)21.5 使用XmlDocument類的Tree/DOM方法21.5.1 使用XmlDocument類裝載和遍歷XML文檔21.5.2 使用XmlDocument類編輯和保存XML數(shù)據(jù)21.5.3 使用XmlDocument類驗證XML文檔21.5.4 XmlDocument類的事件21.6 使用XPath遍歷和編輯XML文檔21.6.1 對內存中的DOM樹應用XPath表達式21.6.2 用XPathNavigator對象遍歷XPathDocument對象21.6.3 用XPathNodeIterator對象遍歷XPath的選擇結果集21.6.4 用XPathNavigator對象編輯XmlDocument對象21.7 使用XSLT樣式表轉換XML文檔21.8 連接關系型數(shù)據(jù)與XML文檔的橋接器21.8.1 從DataSet獲取XML文檔21.8.2 用XML文檔填充DataSet21.8.3 System.Xml.XmlDataDocument類21.8.4 XML和SQL Server21.9 連接對象與XML文檔的橋梁21.9.1 System.Xml.XmlSerialization類21.9.2 用于XML序列化的attribute21.9.3 sgen.exe工具21.9.4 xsd.exe工具21.10 Visual Studio和XML21.10.1 創(chuàng)建、查看以及編輯XML 文檔和XSD schema21.10.2 用XSD schema驗證XML文檔21.10.3 編輯和調試XSLT程序第22章 .NET Remoting22.1 簡介22.1.1 什么是.NET Remoting22.1.2 FAQ22.2 按引用封送22.3 按值封送和二進制序列化22.4 ObjectHandle類22.5 對象的激活22.5.1 分布式體系的組件22.5.2 宿主概覽22.5.3 信道概覽22.5.4 同步方式、異步方式和單向方式調用22.5.5 對象激活與對象創(chuàng)建22.6 well-known對象的激活22.7 客戶端激活的對象22.7.1 使用new關鍵字激活對象22.7.2 潛在的問題22.8 Factory設計模式和soapsuds.exe工具22.8.1 Factory設計模式22.8.2 soapsuds.exe工具22.9 well-known和客戶端激活的對象的生命周期22.10 配置.NET Remoting22.10.1 配置宿主22.10.2 配置客戶端22.10.3 聯(lián)合使用接口和配置文件22.11 .NET Remoting服務器的部署22.11.1 Windows服務22.11.2 IIS22.12 安全的.NET Remoting信道22.12.1 安全的TCP信道22.12.2 安全的HTTP信道22.13 代理和消息22.13.1 把方法調用轉換成消息22.13.2 IMessage接口的層次結構22.13.3 透明代理、真實代理和ObjRef類22.13.4 通過ObjRef類發(fā)布對象22.13.5 消息接收器22.13.6 為何考慮自定義真實代理22.13.7 開發(fā)自定義真實代理22.13.8 在類的所有實例上使用自定義真實代理22.13.9 讀寫方法調用的參數(shù)22.14 信道22.14.1 簡介22.14.2 發(fā)送方信道和代理22.14.3 接收方信道和服務器對象22.14.4 消息接收器、格式化程序和信道22.14.5 信道接收器提供程序22.14.6 示例:顯示網(wǎng)絡消息的大小22.15 .NET上下文22.15.1 簡介22.15.2 上下文綁定和上下文靈活對象22.15.3 上下文attribute和上下文屬性22.15.4 消息接收器區(qū)域22.15.5 使用區(qū)域的示例22.15.6 調用上下文22.16 小結22.16.1 激活對象的方式22.16.2 截獲消息第23章 ASP.NET 2.023.1 簡介23.1.1 歷史23.1.2 ASP與ASP.NET23.1.3 ASP.NET 1.x與ASP.NET 2.023.2 ASP.NET概覽23.2.1 Web Form23.2.2 運行期的ASP.NET、IIS和Web應用程序23.2.3 在你自己的.NET應用程序中承載ASP.NET23.2.4 基于HTTP.SYS使用ASP.NET23.3 ASP.NET應用程序的源代碼23.3.1 內聯(lián)代碼23.3.2 服務器端腳本的代碼段23.3.3 代碼隱藏23.4 編譯和部署模型23.4.1 動態(tài)編譯23.4.2 就地預編譯23.4.3 部署預編譯23.5 Web Form和控件23.5.1 服務器控件23.5.2 客戶端和服務器端之間的交互23.5.3 視圖狀態(tài)23.5.4 回發(fā)事件和非回發(fā)事件23.5.5 控件狀態(tài)23.5.6 跨頁面?zhèn)鬟f23.5.7 HTML服務器控件與Web服務器控件23.6 頁面生命周期23.7 ASP.NET應用程序配置23.7.1 Web.Config文件的組織23.7.2 Web.Config文件的部分23.7.3  processModel 部分23.7.4 更新配置23.7.5 在運行期應用配置更新23.8 HTTP管線23.8.1 簡介23.8.2 HttpApplication類和Global.asax文件23.8.3 HTTP上下文23.8.4 HTTP模塊23.8.5 HTTP處理程序23.9 狀態(tài)和會話管理23.9.1 會話管理23.9.2 處理會話標識符23.9.3 會話存儲的標準實現(xiàn)23.9.4 為存儲會話提供自定義實現(xiàn)23.10 Provider設計模式23.11 錯誤處理23.11.1  system .Web 配置元素和 customErrors 配置元素23.11.2 Application_Error事件23.11.3 ErrorPage屬性23.12 跟蹤、診斷以及事件管理23.12.1 trace.axd HTTP處理程序23.12.2 ASP.NET性能計數(shù)器23.12.3 ASP.NET狀態(tài)監(jiān)視23.13 輸入數(shù)據(jù)的校驗23.13.1 校驗控件23.13.2 實現(xiàn)自定義校驗23.13.3 校驗組23.13.4 ValidationSummary類23.14 用戶控件23.14.1 復合用戶控件23.14.2 用戶控件事件23.14.3 用戶控件狀態(tài)23.14.4 用戶控件與Visual Studio的設計時支持23.15 緩存23.15.1 頁面緩存23.15.2 緩存頁面的多個版本23.15.3 頁面片段緩存23.15.4 緩存后替換23.15.5 數(shù)據(jù)緩存23.15.6 緩存依賴23.15.7 SQL Server緩存依賴23.15.8 自定義緩存依賴23.16 數(shù)據(jù)源23.16.1 通過程序的方式綁定控件和數(shù)據(jù)源23.16.2 聲明式綁定控件和數(shù)據(jù)源23.16.3 平鋪數(shù)據(jù)源與層次數(shù)據(jù)源23.16.4 ObjectDataSource類23.16.5 利用數(shù)據(jù)源更新數(shù)據(jù)23.17 查看并編輯數(shù)據(jù) 23.17.1 GridView控件23.17.2 模板23.17.3 DetailsView控件23.17.4 FormView控件23.17.5 顯示XML數(shù)據(jù)23.18 母版頁23.18.1 母版頁和內容頁面23.18.2 嵌套母版頁23.18.3 配置母版頁23.18.4 從內容頁面訪問母版頁23.19 ASP.NET 2.0與本地化23.20 站點導航23.21 安全23.21.1 通過IIS驗證Windows用戶23.21.2 ASP.NET驗證23.21.3 表單驗證提供程序23.21.4 管理用戶23.21.5 管理角色23.21.6 安全服務器控件23.22 個性化與用戶配置23.22.1 配置提供程序以及用戶數(shù)據(jù)的管理23.22.2 匿名識別23.22.3 個性化與會話23.23 樣式、主題與皮膚23.23.1 CSS樣式和控件23.23.2 主題23.23.3 皮膚23.23.4 命名的皮膚23.24 WebPart23.24.1 創(chuàng)建包含WebPart的頁面23.24.2 設計方式23.24.3 WebPart目錄23.24.4 編輯方式23.24.5 連接WebPart第24章 使用.NET進行Web服務開發(fā)24.1 簡介24.1.1 SOA:面向服務架構24.1.2 SOAP和WSDL24.1.3 WS-I基本概要24.1.4 消息交換模式24.2 開發(fā)一個簡單的Web服務24.2.1 不使用Visual Studio開發(fā)一個簡單的Web服務24.2.2 使用Visual Studio開發(fā)一個簡單的Web服務24.3 測試與調試Web服務24.3.1 測試Web服務24.3.2 調試Web服務24.4 創(chuàng)建Web服務的.NET客戶端24.4.1 不使用Visual Studio來創(chuàng)建Web服務的.NET客戶端24.4.2 使用Visual Studio創(chuàng)建Web 服務的.NET客戶端24.5 異步調用與消息交換模式24.6 通過.NET Remoting客戶端使用Web服務24.7 SOAP消息24.7.1 簡介24.7.2 定義以及處理SOAP首部24.7.3 對SOAP消息體編碼24.7.4 SOAP錯誤消息24.7.5 SOAP與底層傳輸協(xié)議24.8 Web服務契約與WSDL語言24.8.1 WSDL能夠表達什么24.8.2 剖析WSDL文檔24.9 WSE與WS-*規(guī)范簡介24.9.1 WSE簡介24.9.2 WSE 3.0所支持的規(guī)范24.9.3 安裝WSE24.9.4 WSE是如何利用SOAP擴展的24.9.5 使用WSE診斷的第一個測試24.10 WSE尚未支持的WS-*規(guī)范24.10.1 WS-PolicyAttachment與WS-MetadataExchange24.10.2 WS-ReliableMessage24.10.3 UDDI and WS-Discovery24.10.4 WS-Federation24.10.5 WS-Coordination24.10.6 WS-AtomicTransaction與WS-BusinessActivity24.10.7 WS-Enumeration24.10.8 WS-Eventing24.10.9 WS-Management24.11 WCF簡介附錄A C# 2.0的關鍵字附錄B .NET 2.0的新增功能附錄C 設計模式簡介附錄D 針對.NET 2.0平臺的工具 

圖書封面

圖書標簽Tags

評論、評分、閱讀與下載


    C#和.NET 2.0實戰(zhàn) PDF格式下載


用戶評論 (總計0條)

 
 

 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網(wǎng) 手機版

京ICP備13047387號-7