TOP
0
0
【簡體曬書區】 單本79折,5本7折,活動好評延長至5/31,趕緊把握這一波!
C# 和.NET 2.0 實戰:平臺、語言與框架(簡體書)
滿額折

C# 和.NET 2.0 實戰:平臺、語言與框架(簡體書)

人民幣定價:99 元
定  價:NT$ 594 元
優惠價:87517
領券後再享88折
海外經銷商無庫存,到貨日平均30天至45天
可得紅利積點:15 點
相關商品
商品簡介
目次

商品簡介

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

目次

第1章 .NET簡介 
 1.1 什么是.NET 
1.1.1 微軟軟件開發平臺 
1.1.2 一組規范 
1.1.3 .NET概覽 
 1.2 發展歷程 
1.2.1 過去 
1.2.2 現在 
1.2.3 未來 
 1.3 微軟和Windows以外的.NET 
1.3.1 ECMA組織與.NET 
1.3.2 W3C聯盟 
1.3.3 Mono項目 
1.3.4 微軟SSCLI項目 
 1.4 .NET資源鏈接 
1.4.1 網站 
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 可移植的可執行文件簡介 
2.2.2 模塊的結構 
2.2.3 清單的結構 
2.2.4 類型元數據段的結構 
2.3 使用ildasm.exe和Reflector工具分析程序集 
2.3.1 創建需要分析的程序集 
2.3.2 使用ildasm.exe分析模塊 
2.3.3 Reflector工具 
2.4 程序集attribute和版本設定 
2.4.1 程序集的標準attribute 
2.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 國際化/本地化與衛星程序集 
2.6.1 區域設置和本地化 
2.6.2 資源文件 
2.6.3 在代碼中使用資源 
2.6.4 創建衛星程序集 
2.6.5 部署和使用衛星程序集 
2.6.6 避免在資源無法找到時引發異常 
2.6.7 Visual Studio與衛星程序集 
2.6.8 區域設置與字符串格式化 
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 元數據符號 
 第3章 生成、部署以及配置.NET應用程序 
3.1 用MSBuild生成應用程序 
3.2 MSBuild:目標、任務、屬性、項與條件 
3.2.1 .proj文件、目標與任務 
3.2.2 屬性 
3.2.3 項 
3.2.4 條件 
3.3 高級 MSBuild 
3.3.1 增量生成與目標間的依賴 
3.3.2 MSBuild轉換 
3.3.3 將一個MSBuild項目分解到多個文件 
3.3.4 Visual Studio 2005如何利用MSBuild 
3.3.5 創建自定義MSBuild任務 
3.4 配置文件 
3.4.1 machine.config文件 
3.4.2 標準配置參數 
3.4.3 使用 appSettings 元素定義配置參數 
3.4.4 使用配置節定義配置參數 
3.4.5 使用Visual Studio 2005創建配置節 
3.4.6 配置節的注意事項 
3.5 程序集部署:XCopy與GAC 
3.5.1 XCopy部署 
3.5.2 共享程序集與GAC文件夾 
3.5.3 GAC的并存存儲模型是如何解決DLL hell問題的 
3.5.4 并存執行 
3.5.5 查看及編輯GAC文件夾 
3.6 發布者策略程序集 
3.6.1 潛在的問題 
3.6.2 解決方案 
3.6.3 創建發布者策略程序集 
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 指定在安裝期間執行的自定義動作 
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應用程序安裝與執行的細節 
3.11 使用無接觸部署(NTD)技術部署應用程序 
3.12 如果目標機器上沒有安裝.NET運行庫怎么辦 
 第4章 CLR 
4.1 應用程序域 
4.1.1 簡介 
4.1.2 線程與AppDomain 
4.1.3 卸載AppDomain 
4.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進程內通過運行庫宿主加載CLR 
4.2.1 mscorsvr.dll和mscorwks.dll 
4.2.2 mscorlib.dll程序集 
4.2.3 運行庫宿主介紹 
4.2.4 在同一臺計算機上承載多個版本的CLR 
4.2.5 使用CorBindToRuntimeExO函數加載CLR 
4.2.6 創建一個自定義的運行庫宿主
4.2.7 在自定義運行庫宿主中調整CLR
4.2.8 SQL Server 2005運行庫宿主的特性 
4.3 剖析.NET應用程序的執行狀況 
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 性能計數器與JIT編譯 
4.7 垃圾收集器和托管堆 
4.7.1 垃圾收集技術簡介 
4.7.2 垃圾收集算法遇到的問題 
4.7.3 .NET的GC 
4.7.4 第一步:尋找根對象 
4.7.5 第二步:建立活動對象樹 
4.7.6 第三步:解除分配非活動對象 
4.7.7 第四步:清理堆碎片 
4.7.8 第五步:重新計算托管引用所使用的物理地址 
4.7.9 推薦做法 
4.7.10 針對大對象的特殊堆 
4.7.11 多線程環境下的垃圾收集 
4.7.12 弱引用 
4.7.13 使用System.GC類影響GC的行為 
4.8 提高代碼可靠性的機制 
4.8.1 異步異常及托管代碼可靠性 
4.8.2 受約束執行區域 
4.8.3 如何定義CER 
4.8.4 內存門 
4.8.5 可靠性契約 
4.8.6 關鍵終結器 
4.8.7 臨界區 
4.9 CLI和CLS 
4.9.1 .NET語言必須滿足的要求 
4.9.2 從開發人員的觀點看CLI和CLS 
 第5章 進程、線程與同步 
5.1 簡介 
5.2 進程 
5.2.1 簡介 
5.2.2 System.Diagnostics.Process類 
5.2.3 創建和銷毀子進程 
5.2.4 避免在一臺機器上同時運行同一應用程序的多個實例 
5.2.5 終止當前進程 
5.3 線程 
5.3.1 簡介 
5.3.2 受托管的線程與Windows線程 
5.3.3 搶占式多任務處理 
5.3.4 進程與線程的優先級 
5.3.5 System.Threading.Thread類 
5.3.6 創建與聯結線程 
5.3.7 掛起線程 
5.3.8 終止線程 
5.3.9 前臺線程與后臺線程 
5.3.10 受托管線程的狀態圖 
5.4 訪問資源同步簡介 
5.4.1 競態條件 
5.4.2 死鎖 
5.5 使用volatile字段與Interlocked類實現同步
5.5.1 volatile字段 
5.5.2 System.Threading.Inter-locked類 
5.5.3 Interlocked類提供的其他功能 
5.6 使用System.Threading.Monitor類與C#的lock關鍵字實現同步 
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類實現同步 113
5.9 利用System.Runtime.Remoting.Contexts.SynchronizationAttr-ibute實現同步 
5.9.1 同步域簡介 
5.9.2 System.Runtime.Remoting.Contexts.Synchronization與同步域 
5.9.3 重入與同步域 
5.9.4 另一個名為Synchronization 的attribute 
5.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 向回調方法傳遞狀態 
5.12.4 one-way調用 
5.13 線程-資源親緣性 
5.13.1 System.ThreadStatic-Attribute 
5.13.2 線程本地存儲(TLS) 
5.13.3 System.ComponentModel. ISynchronizeInvoke接口 
5.14 執行上下文簡介 
 第6章 安全性 
6.1 代碼訪問安全性(CAS)概述 
6.1.1 什么是移動代碼 
6.1.2 CAS:全局觀 
6.1.3 給程序集代碼授予權限 
6.1.4 在運行程序集的代碼時檢查權限 
6.2 CAS:證據和權限 
6.2.1 什么是證據 
6.2.2 .NET Framework所提供的標準證據 
6.2.3 誰提供證據 
6.2.4 權限 
6.2.5 標準權限 
6.2.6 標識權限 
6.2.7 安全權限 
6.2.8 自定義權限 
6.3 CAS:通過應用安全策略根據證據授予權限 
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 加載程序集時調整所授權限集合的attribute 
6.6.2 命令式與聲明式的對比 
6.7 CAS:測試和調試移動代碼的實用機制 
6.8 CAS:獨立存儲區權限 
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代碼中使用特殊的SD 
6.10.3 在.NET代碼中使用通用的SD 
6.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 非對稱算法與數字簽名 
6.13.5 .NET Framework與RSA算法 
6.14 數據保護API 
6.14.1 Windows的數據保護API 
6.14.2 System.Security.Crypto-graphy.ProtectedData類 
6.14.3 System.Security.Crypto-graphy.ProtectedMemory類 
6.14.4 System.Security.SecureString類 
6.14.5 保護配置文件中的數據 
6.14.6 確保網絡傳輸中數據的安全 
6.15 使用Authenticode 技術與X.509證書驗證程序集 
6.15.1 Authenticode與強名稱 
6.15.2 證書與證書認證中心 
6.15.3 根證書 
6.15.4 Windows、.NET與Authenti- code技術 
 第7章 反射、后期綁定與attribute 
7.1 反射 
7.1.1 何時需要反射 
7.1.2 .NET反射有何新意 
7.1.3 對載入AppDomain的程序集的反射 
7.1.4 從元數據獲取信息 
7.2 后期綁定 
7.2.1 “綁定類”的含義 
7.2.2 早期綁定與動態綁定 
7.2.3 后期綁定 
7.2.4 在C#編譯到IL期間如何實例化一個未知的類 
7.2.5 使用后期綁定 
7.2.6 利用接口:使用后期綁定的正確方法 
7.3 attribute 
7.3.1 attribute是什么 
7.3.2 何時需要attribute 
7.3.3 關于attribute應該知道的事 
7.3.4 可以應用attribute的代碼元素 
7.3.5 .NET Framework中的一些標準attribute 
7.3.6 自定義的attribute的示例 
7.3.7 條件attribute 
7.4 動態生成程序集并在運行中使用 
7.4.1 為什么要考慮動態生成程序集 
7.4.2 一個實際的問題 186
7.4.3 理想的第三種解決方案——動態創建程序集 
7.4.4 將程序集保存到磁盤上的能力 
7.4.5 結論 
 第8章 .NET與本機代碼/COM/COM+之間的互操作性 
8.1 P/Invoke 
8.1.1 DllImportAttribute
8.1.2 類型轉換 
8.1.3 使用指針傳遞參數
8.1.4 傳遞字符串 
8.1.5 傳遞結構與聯合 
8.1.6 方向attribute 
8.1.7 委托與非托管的函數指針 
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 類型元數據與類型庫 
8.4.2 Interop程序集與Runtime Callable Wrapper類 
8.4.3 訪問不使用類型庫的COM組件中的COM類 
8.4.4 使用Visual Studio導入ActiveX 
8.4.5 使用RCW類時需要牢記的COM特性 
8.4.6 COM類的顯式后期綁定 
8.4.7 免注冊COM 
8.5 將.NET對象包裝成CCW 
8.5.1 CCW簡介 
8.5.2 從.NET程序集中生成描述CCW類的COM類型庫 
8.5.3 在操作系統上注冊CCW 
8.5.4 將.NET程序集作為COM組件使用 
8.5.5 .NET異常與CCW 
8.5.6 處理對象生命周期 
8.6 COM+簡介 
8.6.1 COM+是什么 
8.6.2 在.NET中使用COM+:企業服務 
8.7 COM+企業服務簡介 
8.7.1 COM+企業服務的完整列表 
8.7.2 你需要COM+企業服務嗎 
8.8 在.NET類中利用COM+服務 
8.8.1 服務組件簡介 
8.8.2 聲明服務組件使用的企業服務 
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 預處理符號與條件attribute 
9.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 創建命名空間和類型的別名 
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 循環語句(do、while、for和foreach) 
9.8.3 goto語句 
9.9 MainO方法 
 第10章 從C# 2.0的角度看.NET 2.0類型系統 
10.1 對象在內存中的存儲 
10.1.1 對象的分配和解除分配 
10.1.2 托管線程棧 
10.1.3 托管堆 
10.1.4 對象存儲:托管線程棧與托管堆的比較 
10.1.5 靜態分配與動態分配的比較 
10.2 引用類型和值類型 
10.3 公共類型系統(CTS) 
10.3.1 .NET類型不與任何編程語言關聯 
10.3.2 CTS:全局觀 
10.4 System.Object類 
10.5 對象比較 
10.5.1 等價與恒等 
10.5.2 自定義相等比較規則 
10.5.3 相等性與散列表 
10.5.4 自定義大小比較規則 
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 整數和字符串之間的轉換 
10.9 基本類型的運算 
10.9.1 同一基本類型上的算術運算 
10.9.2 處理被零除的錯誤 
10.9.3 處理溢出 
10.9.4 運算符的優先級 
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 委托對象與靜態方法 
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 必須在每個部分聲明上重復出現的類型聲明元素 
10.15.2 在每個部分聲明上可選重復出現的類型聲明元素 
10.15.3 在多個部分聲明上重復出現就會累積效果的類型聲明元素 
10.15.4 僅在某個部分聲明上起作用的類型聲明元素 
 第11章 類和對象 
11.1 簡介 
11.2 術語 
11.3 類的定義 
11.4 字段 
11.4.1 字段初始化 
11.4.2 常數字段 
11.4.3 字段初始化的潛在問題 
11.5 方法 
11.5.1 按值或按引用傳遞參數 
11.5.2 C#的默認規則 
11.5.3 按引用傳遞任意參數 
11.5.4 在引用類型上使用ref關鍵字 
11.5.5 參數初始化 
11.5.6 輸出參數 
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 構造函數 
11.12.1 構造函數的聲明 
11.12.2 創建對象時訪問構造函數 
11.13 對象終結和析構 
11.13.1 析構函數、終結器和Object.FinalizeO方法 
11.13.2 IDisposable接口和DisposeO方法 
11.13.3 何時需要終結器和DisposeO方法 
11.14 靜態成員 
11.14.1 靜態字段、屬性和事件 
11.14.2 靜態方法 
11.14.3 靜態構造函數 
11.14.4 靜態類 
11.15 運算符重載 
11.15.1 算術運算符的重載
11.15.2 類型轉換運算符的重載 
11.15.3 比較運算符的重載 
11.15.4 運算符重載和CLS 
 第12章 繼承、多態性與抽象性 
12.1 目標:代碼重用 
12.1.1 潛在問題 
12.1.2 解決方案之一:類的繼承 
12.2 類的繼承 
12.2.1 語法 
12.2.2 保護及內部或保護可見性級別 
12.2.3 類繼承圖 
12.2.4 調用基類的構造函數 
12.2.5 基類成員的可見性 
12.2.6 封閉類 
12.3 虛方法和多態性 
12.3.1 潛在問題 
12.3.2 解決方案之一:虛方法和多態性 
12.3.3 示例一則 
12.3.4 屏蔽多態性 
12.4 抽象性 
12.4.1 潛在的問題 
12.4.2 解決方案之一:抽象類和抽象方法 
12.4.3 示例一則 
12.4.4 同時使用abstract關鍵字和override關鍵字 
12.5 接口 
12.5.1 強制代碼使用者使用抽象體代替實現體 
12.5.2 解決方法命名的沖突 
12.5.3 解決接口擴展帶來的沖突 
12.5.4 覆寫接口的實現方法 
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 聲明多個類型參數 
13.2.2 開放和封閉泛型類型 
13.2.3 .NET泛型與C++模板的比較 
13.2.4 泛型類型的可見性 
13.2.5 泛型結構與接口 
13.2.6 泛型類型與別名 
13.3 類型參數的約束 
13.3.1 默認構造函數約束 
13.3.2 派生約束 
13.3.3 引用類型或值類型約束 
13.4 泛型類型的成員 
13.4.1 方法重載 
13.4.2 靜態字段 
13.4.3 靜態方法 
13.4.4 類構造函數 
13.4.5 運算符重載 
13.4.6 嵌套類型 
13.5 運算符與泛型 
13.5.1 類型參數的相等、不等及比較運算符 
13.5.2 typeof運算符與泛型 
13.5.3 params及lock關鍵字與泛型 
13.5.4 default運算符 
13.6 類型轉換與泛型 
13.6.1 基本規則 
13.6.2 類型轉換與泛型數組 
13.6.3 is和as運算符 
13.7 繼承與泛型 
13.7.1 基本規則 
13.7.2 覆寫泛型類型的虛方法 
13.8 泛型方法 
13.8.1 簡介 
13.8.2 泛型方法與約束 
13.8.3 虛擬泛型方法 
13.8.4 泛型方法類型參數的推測 
13.8.5 C# 2.0語法的二義性 
13.9 委托、事件與泛型 
13.9.1 簡介 
13.9.2 泛型委托與泛型方法 
13.9.3 泛型與委托的協變性及反變性 
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 指針和數組
14.2.10 固定數組
14.2.11 使用stackalloc關鍵字在棧上分配內存
14.2.12 字符串與指針
14.3 利用異常處理錯誤
14.3.1 潛在問題:如何恰當處理運行時出現的大多數錯誤
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 從構造函數或終結器中拋出的異常
14.6.1 靜態構造函數所拋異常或靜態字段初始化時所拋異常
14.6.2 終結器所拋異常
14.7 異常處理與CLR
14.8 異常處理與Visual Studio
14.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 匿名方法可以接受參數
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 匿名方法訪問外圍方法的參數
14.11.5 匿名方法訪問外圍類的成員
14.12 匿名方法的高級用法
14.12.1 定義:閉包與詞法環境
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 編譯器自動創建并使用的枚舉器類
14.15.2 關于生成類的說明
14.16 C# 2.0迭代器的高級用法
14.16.1 定義:協同例程和延拓
14.16.2 通過迭代器利用協同例程和延拓的威力
14.16.3 Pipeline模式
14.16.4 延拓與多線程的比較
14.16.5 C# 2.0迭代器的一個限制
第三部分 .NET Framework
 第15章 集合
15.1 使用foreach和in關鍵字迭代訪問集合中的項
15.1.1 在數組上使用foreach和in
15.1.2 交錯數組上的foreach語法
15.1.3 在自定義集合類上支持foreach語法
15.2 數組
15.2.1 創建和引用數組
15.2.2 訪問數組的項和處理越界訪問
15.2.3 交錯數組
15.2.4 初始化數組的項
15.2.5 數組的協變
15.2.6 System.Array類
15.2.7 位數組
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 對數組中的項排序
15.5.3 對List T 實例中的元素排序
15.6 用于處理集合的函數對象
15.6.1 特化的委托類型
15.6.2 使用匿名方法
15.6.3 List T 類和Array類支持函數對象
15.6.4 C# 2.0的迭代器和集合
15.7 System.Collections.Generic和System.Collections之間的聯系
 第16章 基類
16.1 數學
16.1.1 System.Math類
16.1.2 System.Random類
16.2 時間、日期和持續時間
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 文件系統監視器
16.4 注冊表
16.4.1 引言
16.4.2 注冊表的結構
16.4.3 注冊表的層級
16.4.4 用.NET讀/寫注冊表
16.5 調試
16.5.1 用來自定義對象調試時的視圖的attribute
16.5.2 調試“僅我的代碼”
16.5.3 調試模式 
16.5.4 解決調試問題 
16.6 跟蹤 
16.6.1 監聽器 
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 優化正則表達式的求值 
16.8 控制臺 
16.8.1 光標 
16.8.2 顯示 
16.8.3 大小與位置 
16.8.4 顏色 
16.8.5 數據輸入 
16.8.6 重定向控制臺的流 
16.8.7 雜項 
 第17章 輸入、輸出和流 
17.1 流的簡介 
17.1.1 流的類層次結構 
17.1.2 操作流的工具 
17.1.3 流數據的類型化 
17.1.4 字符串編碼 
17.2 讀寫文件 
17.2.1 簡單的文件讀寫 
17.2.2 讀寫二進制數據文件 
17.2.3 讀寫文本文件 
17.2.4 以異步的方式操作流 
17.3 用套接字來使用TCP/IP 
17.3.1 套接字和TCP/IP簡介 
17.3.2 以同步的方式操作套接字 
17.3.3 以異步的方式操作套接字 
17.4 獲取網絡接口和狀態的信息 
17.4.1 發現可用網絡接口 
17.4.2 Ping
17.4.3 網絡發生更改時所觸發的事件 
17.4.4 網絡活動統計 
17.5 HTTP和FTP客戶端 
17.5.1 URI 
17.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 支持郵件協議 
17.8 緩沖和壓縮數據流 
17.8.1 通過Decorator設計模式在流上應用服務 
17.8.2 緩沖流數據 
17.8.3 壓縮數據流 
17.9 在串行端口上讀寫數據 
17.10 支持安全通訊協議:SSL、NTLM和Kerberos 
17.10.1 安全通訊協議簡介 
17.10.2 安全通訊協議和System.Net.Security命名空間 
17.10.3 SslStream類 
17.10.4 NegociateStream類 
17.10.5 加密數據流 
 第18章 Windows Forms應用程序 
18.1 Windows用戶界面 
18.1.1 控制臺應用程序與窗口應用程序 
18.1.2 Windows消息簡介 
18.1.3 Windows應用程序開發的發展 
18.1.4 System.Windows.Forms命名空間簡介 
18.2 Windows Forms開發簡介 
18.2.1 處理事件 
18.2.2 編寫方法 
18.2.3 沒有Visual Studio的Windows Forms開發 
18.3 Windows Forms開發工具 
18.3.1 模態/非模態對話框簡介 
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 創建自定義控件 
18.6 顯示和編輯數據 
18.6.1 Visual Studio 2005提供的工具 
18.6.2 BindingSource控件 
18.6.3 用BindingSource來利用數據源 
18.6.4 用對象列表作為數據源 
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 優化圖像的處理 
18.8.7 動畫和雙緩沖 
 第19章 ADO.NET 2.0 
19.1 數據庫簡介 
19.1.1 DBMS 
19.1.2 RDBMS 
19.1.3 SQL語言 
19.1.4 分布式架構的必要性 
19.2 ADO.NET簡介 
19.2.1 連接模式與非連接模式 
19.2.2 數據提供程序 
19.2.3 ADO.NET:全局觀 
19.2.4 我們將在范例中使用的DB 
19.3 連接與數據提供程序 
19.3.1 解除應用程序與數據提供程序之間的耦合 
19.3.2 連接字符串 
19.3.3 如何存儲連接字符串以及連接字符串存儲在哪里 
19.3.4 連接池 
19.3.5 訪問數據源的元數據 
19.4 使用DataReader在連接模式下工作 
19.4.1 使用DataReader從數據庫中獲取數據 
19.4.2 在數據庫端進行標量運算 
19.4.3 使用SQL查詢來修改數據 
19.5 使用DataSet在非連接模式下工作 
19.5.1 使用來自數據庫的數據填充緩存 
19.5.2 在DataSet中對多表之間的關聯進行操作 
19.5.3 將DataSet中更新的數據保存到數據庫 
19.5.4 非連接模式與樂觀/悲觀并發策略 
19.5.5 DataSet中數據表的約束 
19.5.6 DataView類 
19.6 強類型DataSet 
19.6.1 創建強類型DataSet類 
19.6.2 TableAdapter和強類型SQL請求 
19.7 連接模式和非連接模式之間的橋接器 
19.8 對象與關系數據之間的橋接器 
19.8.1 結構問題 
19.8.2 行為問題 
19.8.3 解決上述問題的途徑 
19.8.4 用于對象關系映射的.NET工具 
19.9 SQL Server數據提供程序的專有功能 
19.9.1 異步請求 
19.9.2 批量復制 
19.9.3 SqlClient連接上的統計數據 
19.9.4 SQL Server 2005 Express版本 
 第20章 事務 
20.1 事務簡介 
20.1.1 事務管理器、資源管理器和數據源 
20.1.2 分布式事務以及2PC算法簡介 
20.1.3 在SQL Server連接上進行的本地事務 
20.1.4 分布式事務協調器 
20.2 System.Transactions 
20.2.1 LTM、持久RM和易變RM簡介 
20.2.2 System.Transactions 實現的隱式事務 
20.2.3 在事務中被觸發的事件 
20.2.4 System.Transactions揭秘 
20.2.5 事務隔離級別簡介 
20.2.6 事務作用域 
20.2.7 System.Transactions 實現的顯式事務 
20.3 System.Transactions的高級用法 
20.3.1 在多個線程中執行一個事務 
20.3.2 以異步方式完成事務 
20.3.3 System.Transactions和CAS 
20.4 用于實現自定義RM的機制 
 第21章 XML 
21.1 簡介 
21.1.1 XML所解決的問題 
21.1.2 統一文檔世界和數據世界 
21.1.3 XML文檔的結構 
21.2 XSD、XPath、XSLT和XQuery簡介 
21.2.1 用XSD schema類型化XML文檔及其數據 
21.2.2 Xpath 
21.2.3 XSLT 
21.2.4 XQuery 
21.3 遍歷和編輯XML文檔的方法 
21.4 使用XmlReader類和XmlWriter類的Cursor方法 
21.4.1 使用XmlReader類讀取數據 
21.4.2 在讀取數據時對其進行驗證 
21.4.3 使用XmlWriter類編輯數據 
21.5 使用XmlDocument類的Tree/DOM方法 
21.5.1 使用XmlDocument類裝載和遍歷XML文檔 
21.5.2 使用XmlDocument類編輯和保存XML數據 
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 連接關系型數據與XML文檔的橋接器 
21.8.1 從DataSet獲取XML文檔 
21.8.2 用XML文檔填充DataSet 
21.8.3 System.Xml.XmlDataDocument類 
21.8.4 XML和SQL Server 
21.9 連接對象與XML文檔的橋梁 
21.9.1 System.Xml.XmlSerialization類 
21.9.2 用于XML序列化的attribute 
21.9.3 sgen.exe工具 
21.9.4 xsd.exe工具 
21.10 Visual Studio和XML 
21.10.1 創建、查看以及編輯XML 文檔和XSD schema 
21.10.2 用XSD schema驗證XML文檔 
21.10.3 編輯和調試XSLT程序 
 第22章 .NET Remoting 
22.1 簡介 
22.1.1 什么是.NET Remoting 
22.1.2 FAQ 
22.2 按引用封送 
22.3 按值封送和二進制序列化 
22.4 ObjectHandle類 
22.5 對象的激活 
22.5.1 分布式體系的組件 
22.5.2 宿主概覽 
22.5.3 信道概覽 
22.5.4 同步方式、異步方式和單向方式調用 
22.5.5 對象激活與對象創建 
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 Remoting 
22.10.1 配置宿主
22.10.2 配置客戶端 
22.10.3 聯合使用接口和配置文件 
22.11 .NET Remoting服務器的部署 
22.11.1 Windows服務 
22.11.2 IIS 
22.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類發布對象 
22.13.5 消息接收器 
22.13.6 為何考慮自定義真實代理 
22.13.7 開發自定義真實代理 
22.13.8 在類的所有實例上使用自定義真實代理 
22.13.9 讀寫方法調用的參數 
22.14 信道 
22.14.1 簡介 
22.14.2 發送方信道和代理 
22.14.3 接收方信道和服務器對象
22.14.4 消息接收器、格式化程序和信道
22.14.5 信道接收器提供程序
22.14.6 示例:顯示網絡消息的大小
22.15 .NET上下文
22.15.1 簡介
22.15.2 上下文綁定和上下文靈活對象
22.15.3 上下文attribute和上下文屬性
22.15.4 消息接收器區域
22.15.5 使用區域的示例
22.15.6 調用上下文
22.16 小結
22.16.1 激活對象的方式
22.16.2 截獲消息
 第23章 ASP.NET 2.0
23.1 簡介
23.1.1 歷史
23.1.2 ASP與ASP.NET
23.1.3 ASP.NET 1.x與ASP.NET 2.0
23.2 ASP.NET概覽
23.2.1 Web Form
23.2.2 運行期的ASP.NET、IIS和Web應用程序
23.2.3 在你自己的.NET應用程序中承載ASP.NET
23.2.4 基于HTTP.SYS使用ASP.NET
23.3 ASP.NET應用程序的源代碼
23.3.1 內聯代碼
23.3.2 服務器端腳本的代碼段
23.3.3 代碼隱藏
23.4 編譯和部署模型
23.4.1 動態編譯
23.4.2 就地預編譯
23.4.3 部署預編譯
23.5 Web Form和控件
23.5.1 服務器控件
23.5.2 客戶端和服務器端之間的交互
23.5.3 視圖狀態
23.5.4 回發事件和非回發事件
23.5.5 控件狀態
23.5.6 跨頁面傳遞
23.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 狀態和會話管理 
23.9.1 會話管理 
23.9.2 處理會話標識符 
23.9.3 會話存儲的標準實現 
23.9.4 為存儲會話提供自定義實現 
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性能計數器 
23.12.3 ASP.NET狀態監視 
23.13 輸入數據的校驗 
23.13.1 校驗控件 
23.13.2 實現自定義校驗 
23.13.3 校驗組 
23.13.4 ValidationSummary類 
23.14 用戶控件 
23.14.1 復合用戶控件 
23.14.2 用戶控件事件 
23.14.3 用戶控件狀態 
23.14.4 用戶控件與Visual Studio的設計時支持 
23.15 緩存 
23.15.1 頁面緩存 
23.15.2 緩存頁面的多個版本 
23.15.3 頁面片段緩存 
23.15.4 緩存后替換 
23.15.5 數據緩存 
23.15.6 緩存依賴 
23.15.7 SQL Server緩存依賴 
23.15.8 自定義緩存依賴 
23.16 數據源 
23.16.1 通過程序的方式綁定控件和數據源 
23.16.2 聲明式綁定控件和數據源 
23.16.3 平鋪數據源與層次數據源 
23.16.4 ObjectDataSource類 
23.16.5 利用數據源更新數據 
23.17 查看并編輯數據
23.17.1 GridView控件 
23.17.2 模板 
23.17.3 DetailsView控件 
23.17.4 FormView控件 
23.17.5 顯示XML數據 
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 配置提供程序以及用戶數據的管理 
23.22.2 匿名識別 
23.22.3 個性化與會話 
23.23 樣式、主題與皮膚 
23.23.1 CSS樣式和控件 
23.23.2 主題 
23.23.3 皮膚 
23.23.4 命名的皮膚 
23.24 WebPart 
23.24.1 創建包含WebPart的頁面 
23.24.2 設計方式 
23.24.3 WebPart目錄 
23.24.4 編輯方式 
23.24.5 連接WebPart 
 第24章 使用.NET進行Web服務開發 
24.1 簡介 
24.1.1 SOA:面向服務架構 
24.1.2 SOAP和WSDL 
24.1.3 WS-I基本概要 
24.1.4 消息交換模式 
24.2 開發一個簡單的Web服務 
24.2.1 不使用Visual Studio開發一個簡單的Web服務 
24.2.2 使用Visual Studio開發一個簡單的Web服務 
24.3 測試與調試Web服務 
24.3.1 測試Web服務 
24.3.2 調試Web服務 
24.4 創建Web服務的.NET客戶端 
24.4.1 不使用Visual Studio來創建Web服務的.NET客戶端 
24.4.2 使用Visual Studio創建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與底層傳輸協議 
24.8 Web服務契約與WSDL語言 
24.8.1 WSDL能夠表達什么 
24.8.2 剖析WSDL文檔 
24.9 WSE與WS-*規范簡介 
24.9.1 WSE簡介 
24.9.2 WSE 3.0所支持的規范 
24.9.3 安裝WSE 
24.9.4 WSE是如何利用SOAP擴展的 
24.9.5 使用WSE診斷的第一個測試 
24.10 WSE尚未支持的WS-*規范 
24.10.1 WS-PolicyAttachment與WS-MetadataExchange 
24.10.2 WS-ReliableMessage 
24.10.3 UDDI and WS-Discovery 
24.10.4 WS-Federation 
24.10.5 WS-Coordination
24.10.6 WS-AtomicTransaction與WS-BusinessActivity
24.10.7 WS-Enumeration 
24.10.8 WS-Eventing 
24.10.9 WS-Management 
24.11 WCF簡介 
附錄A C# 2.0的關鍵字 
附錄B .NET 2.0的新增功能 
附錄C 設計模式簡介 
附錄D 針對.NET 2.0平臺的工具

您曾經瀏覽過的商品

購物須知

大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。

特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

優惠價:87 517
海外經銷商無庫存,到貨日平均30天至45天

暢銷榜

客服中心

收藏

會員專區