C#高級編程

C#高級編程

《C#高級編程》是2008年清華大學出版社出版的圖書,作者是(美)內格爾(Nagel.C)。本書以最新的.NET Framework 2.0和Visual Studio 2005為基礎,全面介紹了C#編程的工具,提供了理解.NET體系結構的工作原理所必需的背景知識。

基本介紹

  • 書名:C#高級編程
  • ISBN:9787302184959
  • 頁數:1557 頁
  • 定價:158.00
  • 出版社清華大學出版社
  • 出版時間:2008年10月01日
  • 開本:16開
內容簡介,媒體及編輯推薦,本書目錄,序言,作者簡介,譯者,審校,

內容簡介

C#和.NET全面革新了編寫程式的方式。
應用程式,例如資料庫訪問和高級繪圖技術。這種方式有助於對c#語言的各個方面進行深入細緻的理解,以專業人員的方式開始編程。
C#經典名著!也是Wrox紅皮書中最暢銷的品種之一,從第一版開始就名滿天下:其第3版被中華讀書報、CSDN、《程式設計師》等機構評選為2005年最權威的十大IT圖書之一(第2名);在中國版協、中國出版科學研究所、(出版參考、雜誌組織的“2005年度輸出版、引進版優秀圖書”評選活動中獲得“2005年度引進版科技類優秀圖書”獎。第4版面向C#2005,在全面展示.NET新特性的同時繼續完善原有的內容,是有一些C#基礎知識的學習者或者想遷移到C#的其他程式設計師全面掌握C#的首選教程。

媒體及編輯推薦

本書以最新的.NET Frame-work2.0和Visual Studio2005為基礎。
本書首先探討了C#的基礎知識,包括基本語法、數據類型和面向對象的特性。接著闡述了如何把該語言套用於各種使用相關技術的應用程式,倒如資料庫訪問和高級繪圖技術。這種方式有助於對C#語言的各個方面進行深入細緻的理解,以專業人員的方式開始編程。
本書涵蓋的內容有助於編寫動態Web頁面、XML Web服務、分散式應用程式的組件,以及Windows桌面應用程式等。
本書主要內容:NET環境中的編程原則,創建Windows應用程式和Windows服務的方式,使用已有的COM組件和NET應用程式,用asp . net編寫動態的Web頁面和Web服務。用C#2005處理XML的技術。用ADO . NET訪問資料庫,與目錄互動操作,編寫在Web站點上運行的刪節組件。
本書讀者對象:本書適用於已具有C++、Visual Basic或J++等編程經驗的開人發員。本書還適合於了解NET1.0,但準備遷移到NET2.0和Visual Studio 2005的程式設計師。
評論該書對於c#語言、.NET framework的學習很有幫助,但是是從外文翻譯過來的,對於有些內容不容易理解。

本書目錄

第Ⅰ部分 C# 語言
第1章 .NET體系結構
1.1 C#與.NET的關係
1.2.1 平台無關性
1.2.2 提高性能
1.2.3 語言的互操作性
1.3 中間語言
1.3.1 面向對象和接口的支持
1.3.2 相異值類型和引用類型
1.3.3 強數據類型
1.3.4 通過異常處理錯誤
1.3.5 特性的使用
1.4 程式集
1.4.1 私有程式集
1.4.2 共享程式集
1.4.3 反射
1.5 .NET Framework類
1.6 命名空間
1.7 用C#創建.NET應用程式
1.7.1 創建ASP . NET應用程式
1.7.2 創建Windows窗體
1.7.3 使用Windows Presentation Foundation(WPF)
1.7.4 Windows控制項
1.7.5 Windows服務
1.7.6 Windows Communication Foundation(WCF)
1.8 C#在.NET企業體系結構中的作用
1.9 小結
第2章 C#基礎
2.1 引言
2.2 第一個C#程式
2.2.1 代碼
2.2.2 編譯並運行程式
2.2.3 詳細介紹
2.3 變數
2.3.1 變數的初始化
2.3.2 類型推斷
2.3.3 變數的作用域
2.3.4 常量
2.4 預定義數據類型
2.4.1 值類型和引用類型
2.4.2 CTS類型
2.4.3 預定義的值類型
2.4.4 預定義的引用類型
2.5 流控制
2.5.1 條件語句
2.5.2 循環
2.5.3 跳轉語句
2.6 枚舉
2.8 命名空間
2.8.1 using語句
2.8.2 命名空間的別名
2.9 Main()方法
2.9.1 多個Main()方法
2.9.2 給Main()方法傳送參數
2.10 有關編譯C#檔案的更多內容
2.11 控制台I/O
2.12 使用注釋
2.12.1 源檔案中的內部注釋
2.12.2 XML文檔說明
2.13 C#預處理器指令
2.13.1 #define和 #undef
2.13.2 #if, #elif, #else和#endif
2.13.3 #warning和 # error
2.13.4 #region和#endregion
2.13.5 #line
2.13.6 #pragma
2.14 C#編程規則
2.14.1 用於標識符的規則
2.14.2 用法約定
2.15 小結
第3章 對象和類型
3.1 類和結構
3.2 類成員
3.2.1 數據成員
3.2.2 函式成員
3.2.3 唯讀欄位
3.3 匿名類型
3.4 結構
3.4.1 結構是值類型
3.4.2 結構和繼承
3.4.3 結構的構造函式
3.5 部分類
3.7 Object類
3.7.1 System.Object方法
3.7.2 ToString()方法
3.8 擴展方法
3.9 小結
第4章 繼承
4.1 繼承的類型
4.1.1 實現繼承和接口繼承
4.1.2 多重繼承
4.1.3 結構和類
4.2 實現繼承
4.2.1 虛方法
4.2.2 隱藏方法
4.2.3 調用函式的基類版本
4.2.4 抽象類和抽象函式
4.2.5 密封類和密封方法
4.2.6派生類的構造函式
4.3 修飾符
4.3.1 可見性修飾符
4.3.2 其他修飾符
4.4 接口
4.4.1 定義和實現接口
4.4.2 派生的接口
4.5 小結
第5章 數組
5.1 簡單數組
5.1.1 數組的聲明
5.1.2 數組的初始化
5.1.3 訪問數組元素
5.1.4 使用引用類型
5.3 鋸齒數組
5.4 Array類
5.4.1 屬性
5.4.2 創建數組
5.4.3 複製數組
5.4.4 排序
5.5 數組和集合接口
5.5.1 IEumerable接口
5.5.2 ICollection接口
5.5.3 IList接口
5.6 枚舉
5.6.1 IEnumerator接口
5.6.2 foreach語句
5.6.3 yield語句
5.7 小結
第6章 運算符和類型強制轉換
6.1 運算符
6.1.1 運算符的簡化操作
6.1.2 條件運算符
6.1.3 checked和unchecked運算符
6.1.4 is運算符
6.1.5 as運算符
6.1.6 sizeof運算符
6.1.7 typeof運算符
6.1.8 可空類型和運算符
6.1.9 空接合運算符
6.1.10 運算符的優先權
6.2 類型的安全性
6.2.1 類型轉換
6.2.2 裝箱和拆箱
6.3 對象的相等比較
6.3.1 引用類型的相等比較
6.3.2 值類型的相等比較
6.4 運算符重載
6.4.1 運算符的工作方式
6.4.2 運算符重載的示例:Vector結構
6.5 用戶定義的數據類型轉換
6.5.1 執行用戶定義的類型轉換
6.5.2 多重數據類型轉換
6.6 小結
第7章 委託和事件
7.1 委託
7.1.1 在C#中聲明委託
7.1.2 在C#中使用委託
7.1.3 簡單的委託示例
7.1.4 BubbleSorter示例
7.1.5 多播委託
7.1.6 匿名方法
7.1.7 ?表達式
7.1.8 協變和抗變
7.2 事件
7.2.1 從接收器的角度討論事件
7.2.2 生成事件
7.3 小結
第8章 字元串和正則表達式
8.1 System.String類
8.1.1 創建字元串
8.1.2 StringBuilder成員
8.1.3 格式化字元串
8.2 正則表達式
8.2.1 正則表達式概述
8.2.2 RegularExpressionsPlayaround示例
8.2.3 顯示結果
8.2.4 匹配、組合和捕獲
8.3 小結
第9章 泛型
9.1 概述
9.1.1 性能
9.1.2 類型安全
9.1.3 二進制代碼的重用
9.1.4 代碼的擴展
9.1.5 命名約定
9.2 創建泛型類
9.3 泛型類的特性
9.3.1 默認值
9.3.2 約束
9.3.3 繼承
9.3.4 靜態成員
9.4 泛型接口
9.5 泛型方法
9.6 泛型委託
9.6.1 執行委託調用的方法
9.6.2 對Array類使用泛型委託
9.7 Framework的其他泛型類型
9.7.1 結構Nullable
9.7.2 EventHandler
9.7.3 ArraySegment
9.8 小結
第10章 集合
10.1 集合接口和類型
10.2 列表
10.2.1 創建列表
10.2.2 唯讀集合
10.3 佇列
10.4 棧
10.5 鍊表
10.6 有序表
10.7字典
10.7.1 鍵的類型
10.7.2 字典示例
10.7.3 Lookup類
10.7.4 其他字典類
10.8 HashSet
10.9 位數組
10.9.1 BitArray
10.9.2 BitVector32
10.10 性能
10.11 小結
第11章 Language Integrated Query
11.1 LINQ概述
11.1.1 使用List的查詢
11.1.2 擴展方法
11.1.3 λ表達式
11.1.4 LINQ查詢
11.1.5 推遲查詢的執行
11.2 標準的查詢操作符
11.2.1 過濾
11.2.2 用索引來過濾
11.2.3 類型過濾
11.2.4 複合的from子句
11.2.5 排序
11.2.6 分組
11.2.7 對嵌套的對象分組
11.2.8 連線
11.2.9 設定操作
11.2.10 分區
11.2.11 合計操作符
11.2.12 轉換
11.2.13 生成操作符
11.3 表達式樹
11.4 LINQ提供程式
11.5 小結
第12章記憶體管理和指針
12.1後台記憶體管理
12.1.1 值數據類型
12.1.2 引用數據類型
12.1.3 垃圾收集
12.2 釋放未託管的資源
12.2.1 析構函式
12.2.2 IDisposable接口
12.2.3 實現IDisposable接口和析構函式
12.3 不安全的代碼
12.3.1 用指針直接訪問記憶體
12.3.2 指針示例:PointerPlayaround
12.3.3 使用指針最佳化性能
12.4 小結
第13章 反射
13.1 定製特性
13.1.1 編寫定製特性
13.1.2 定製特性示例:WhatsNewAttributes
13.2 反射
13.2.1 System.Type類
13.2.2 TypeView示例
13.2.3 Assembly類
13.2.4 完成WhatsNewAttributes示例
13.3 小結
第14章 錯誤和異常
14.1 異常類
14.2 捕獲異常
14.2.1 執行多個catch塊
14.2.2 在其他代碼中捕獲異常
14.2.3 System.Exception屬性
14.2.4 沒有處理異常時所發生的情況
14.2.5 嵌套的 try塊
14.3 用戶定義的異常類
14.3.1 捕獲用戶定義的異常
14.3.2 拋出用戶定義的異常
14.3.3 定義異常類
14.4 小結
第Ⅱ部分 Visual Studio
第15章 Visual Studio 2008
15.1 使用Visual Studio 2008
15.1.1 創建項目
15.1.2 解決方案和項目
15.1.3 Windows應用程式代碼
15.1.4 讀取Visual Studio 6項目
15.1.5 項目的瀏覽和編碼
15.1.6 生成項目
15.1.7 調試
15.2 修訂功能
15.3 多目標
15.4 WPF、WCF、WF等
15.4.1 在Visual Studio中建立WPF應用程式
15.4.2 在Visual Studio中建立WF應用程式
15.5 小結
第16章 部署
16.1 部署的設計
16.2 部署選項
16.2.1 Xcopy實用工具
16.2.2 Copy Web工具
16.2.3 發布Web站點
16.2.4 部署項目
16.2.5 ClickOnce
16.3 部署的要求
16.4 部署.NET運行庫
16.5 簡單的部署
16.5.1 Xcopy部署
16.5.2 Xcopy和Web應用程式
16.5.3 Copy Web工具
16.5.4 發布Web站點
16.6 Installer項目
16.6.1 Windows Installer
16.6.2 創建安裝程式
16.7 ClickOnce
16.7.1 ClickOnce操作
16.7.2 發布應用程式
16.7.3 ClickOnce設定
16.7.4 應用程式快取
16.7.5 安全性
16.7.6 高級選項
16.8 小結
第Ⅲ部分基類庫
第17章 程式集
17.1 程式集的含義
17.1.1 程式集的特性
17.1.2 程式集的結構
17.1.3 程式集的清單
17.1.4 命名空間、程式集和組件
17.1.5 私有程式集和共享程式集
17.1.6 輔助程式集
17.1.7 查看程式集
17.2 構建程式集
17.2.1 創建模組和程式集
17.2.2 程式集的屬性
17.3 動態載入和創建程式集
17.5 共享程式集
17.5.1強名
17.5.2 使用強名獲得完整性
17.5.4 創建共享程式集
17.5.5 創建強名
17.5.6 安裝共享程式集
17.5.7 使用共享程式集
17.5.8 程式集的延遲簽名
17.5.9 引用
17.5.10 本機圖像生成器
17.6 配置.NET應用程式
17.6.1 配置類別
17.6.2 為搜尋程式集配置目錄
17.7 版本問題
17.7.1 版本號
17.7.2 編程獲取版本
17.7.3 應用程式配置檔案
17.7.4 發布方的策略檔案
17.7.5 運行庫的版本
17.8 小結
第18章 跟蹤和事件
18.1 跟蹤
18.1.1 跟蹤源
18.1.2 跟蹤開關
18.1.3 跟蹤監聽器
18.1.4 過濾器
18.1.5 斷言
18.2 事件日誌
18.2.1 事件日誌體系架構
18.2.2 事件日誌類
18.2.3 創建事件源
18.2.4 寫入事件日誌
18.2.5 資源檔案
18.3 性能監控
18.3.1 性能監控類
18.3.2 性能計數器的構建
18.3.3 添加PerformanceCounter組件
18.4 小結
第19章 執行緒和同步
19.1 概述
19.2 異步委託
19.2.1 投票
19.2.2 等待句柄
19.2.3 異步回調
19.3 Thread類
19.3.1 給執行緒傳送數據
19.3.2 後台執行緒
19.3.3 執行緒的優先權
19.3.4 控制執行緒
19.4 執行緒池
19.5 執行緒問題
19.5.1 競態條件
19.5.2 死鎖
19.6 同步
19.6.1 lock語句和執行緒安全
19.6.2 Interlocked
19.6.3 Monitor類
19.6.4 等待句柄
19.6.5 Mutex類
19.6.6 Semaphore類
19.6.7 Events類
19.6.8 ReaderWriterLockSlim
19.7 Timer類
19.8 COM單元
19.9 基於事件的異步模式
19.9.1 BackgroundWorker類
19.9.2 激活取消功能
19.9.3 激活進度功能
19.9.4 創建基於事件的異步組件
19.10 小結
第20章 安全性
20.1 身份驗證和授權
20.1.1 標識和Principal
20.1.2 角色
20.1.3 聲明基於角色的安全性
20.1.4 客戶應用程式服務
20.2 加密
20.2.1 簽名
20.2.2密鑰的互換和安全傳送
20.3 資源的訪問控制
20.4 代碼訪問的安全性
20.4.1 許可權
20.4.2 代碼組
20.4.3 策略的級別:Machine、User和Enterprise
20.5 安全策略的管理
20.5.1 代碼組和許可權的管理
20.5.2 安全性的啟用和禁用
20.5.3 代碼組的創建
20.5.4 代碼組的刪除
20.5.5 代碼組許可權的更改
20.5.6 許可權集的創建和套用
20.5.7 使用強名發布代碼
20.5.8 使用證書發布代碼
20.6 小結
第21章 本地化
21.1 System.Globalization命名空間
21.1.1 Unicode問題
21.1.2 文化和區域
21.1.3 使用文化
21.1.4 排序
21.2 資源
21.2.1 創建資源檔案
21.2.2 資源檔案生成器
21.2.3 ResourceWriter
21.2.4 使用資源檔案
21.2.5 System.Resources命名空間
21.3 使用Visual Studio的Windows Forms本地化示例
21.3.1 編程修改文化
21.3.2 使用定製資源檔案
21.3.3 資源的自動回退
21.3.4 外包翻譯
21.4 用ASP . NET本地化
21.5 用WPF本地化
21.5.1 WPF應用程式
21.5.2 .NET資源
21.5.3 用XAML本地化
21.6 定製的資源讀取器
21.6.1 創建DatabaseResourceReader類
21.6.2 創建DatabaseResourceSet類
21.6.3 創建DatabaseResource-Manager類
21.6.4 DatabaseResourceReader的客戶應用程式
21.7 創建定製文化
21.8 小結
第22章 事務處理
22.1 概述
22.1.1 事務處理階段
22.1.2 ACID屬性
22.2 資料庫和實體類
22.3 傳統的事務處理
22.3.1 ADO . NET事務處理
22.3.2 System.EnterpriseServices
22.4 System.Transactions
22.4.1 可提交的事務處理
22.4.2 事務處理的升級
22.4.3 依賴的事務處理
22.4.4 環境事務處理
22.6 定製資源管理器
22.7 Windows Vista和Windows Server 2008 的事務處理
22.8 小結
第23章 Windows服務
23.1 Windows服務
23.2 Windows服務的體系結構
23.2.1 服務程式
23.2.2 服務控制程式
23.2.3 服務配置程式
23.3 System.ServiceProcess命名空間
23.4 創建Windows服務
23.4.1 使用套接字的類庫
23.4.2 TcpClient示例
23.4.3 Windows服務項目
23.4.4 執行緒和服務
23.4.5 服務的安裝
23.4.6 安裝程式
23.5 服務的監視和控制
23.5.1 MMC計算機管理
23.5.2net.exe
23.5.3sc.exe
23.5.4 Visual Studio Server Explorer
23.5.5 ServiceController類
23.6 故障排除
23.6.1 互動式服務
23.6.2 事件日誌
23.7 電源事件
23.8 小結
第24章 互操作性
24.1 .NET和COM
24.1.1元數據
24.1.2 釋放記憶體
24.1.3 接口
24.1.4 方法綁定
24.1.5 數據類型
24.1.6 註冊
24.1.7 執行緒
24.1.8 錯誤處理
24.1.9 事件處理
24.2 編組
24.3 在.NET客戶程式中使用COM組件
24.3.1 創建COM組件
24.3.2 創建Runtime Callable Wrapper
24.3.3 使用RCW
24.3.4 可互動操作的主程式集
24.3.5 執行緒問題
24.3.6 添加連線點
24.3.7 在Windows窗體中使用ActiveX控制項
24.3.8 在ASP . NET中使用COM對象
24.4 在COM客戶程式中使用.NET組件
24.4.1 COM Callable Wrapper
24.4.2 創建.NET組件
24.4.3 創建類型庫
24.4.4 COM互操作特性
24.4.5 COM註冊
24.4.6 創建COM客戶程式
24.4.7 添加連線點
24.4.8 用sink對象創建客戶程式
24.4.9 在Internet Explorer中運行Windows窗體控制項
24.5 平台調用
24.6 小結
第Ⅳ部分 數 據
第25章 檔案和註冊表操作
25.1 管理檔案系統
25.1.1 表示檔案和資料夾的.NET類
25.1.2 Path類
25.1.3 示例:檔案瀏覽器
25.2 移動、複製和刪除檔案
25.2.1 FilePropertiesAndMovement示例
25.2.2 示例FilePropertiesAnd-Movement的代碼
25.3 讀寫檔案
25.3.1 讀取檔案
25.3.2 寫入檔案
25.3.3 流
25.3.4 快取的流
25.3.5 使用FileStream類讀寫二進制檔案
25.3.6 讀寫文本檔案
25.4 讀取驅動器信息
25.5 檔案的安全性
25.5.1 從檔案中讀取ACL
25.5.2 從目錄中讀取ACL
25.5.3 添加和刪除檔案中的ACL項
25.6 讀寫註冊表
25.6.1 註冊表
25.6.2 .NET註冊表類
25.6.3 SelfPlacingWindow示例
25.7 讀寫獨立存儲器
25.8 小結
第26章 .NET數據訪問
26.1 ADO . NET概述
26.1.1 命名空間
26.1.2 共享類
26.1.3 資料庫特定的類
26.2 使用資料庫連線
26.2.1 管理連線字元串
26.2.2 高效地使用連線
26.2.3 事務處理
26.3 命令
26.3.1 執行命令
26.3.2 調用存儲過程
26.4 快速數據訪問:數據讀取器
26.5 管理數據和關係:DataSet類
26.5.1 數據表
26.5.2 數據列
26.5.3 數據關係
26.5.4 數據約束
26.6 XML模式:用XSD生成代碼
26.7 填充數據集
26.7.1 用數據適配器來填充DataSet
26.7.2 從XML中給數據集填充數據
26.8 保存對數據集的修改
26.8.1 通過數據適配器進行更新
26.8.2 寫入XML輸出結果
26.9 使用ADO . NET
26.9.1 分層開發
26.9.2 生成SQL Server的鍵
26.9.3 命名約定
26.10 小結
第27章 LINQ to SQL
27.1 LINQ to SQL和Visual Studio 2008
27.1.1 使用LINQ to SQL調用Products表——創建控制台應用程式
27.1.2 添加LINQ to SQL類
27.1.3 O/R設計器概述
27.1.4 創建Product對象
27.2 對象映射到LINQ對象上
27.2.1 DataContext對象
27.2.2 Table對象
27.3 不使用O/R設計器工作
27.3.1 創建自己的定製對象
27.3.2 用定製的對象和LINQ進行查詢
27.3.3 用查詢限制所調用的列
27.3.4 使用列名
27.3.5 創建自己的DataContext對象
27.4 定製對象和O/R設計器
27.5 查詢資料庫
27.5.1 使用查詢表達式
27.5.2 查詢表達式
27.5.3 使用表達式過濾
27.5.4 連線
27.5.5 組合數據項
27.6 存儲過程
27.7 小結
第28章 處理XML
28.1 .NET支持的XML標準
28.2 System.Xml命名空間
28.3 使用System.Xml類
28.4 讀寫流格式的XML
28.4.1 使用 XmlReader類
28.4.2 使用XmlReader類進行驗證
28.4.3 使用XmlWriter類
28.5 在.NET中使用DOM
28.6 使用XPathNavigator
28.6.1 System.Xml.XPath命名空間
28.6.2 System.Xml.Xsl命名空間
28.6.3 調試XSLT
28.7 XML和ADO . NET
28.7.1 將ADO . NET數據轉換為XML文檔
28.7.2 把XML文檔轉換為ADO . NET數據
28.8 在XML中串列化對象
28.9 小結
第29章 LINQ to XML
29.1 LINQ to XML和.NET 3.5
29.1.1 創建XML文檔的新對象
29.1.2 Visual Basic 2008開闢了另一條道路
29.1.3 命名空間和前綴
29.2 .NET Framework 3.5中的新XML對象
29.2.1 XDocument對象
29.2.2 XElement對象
29.2.3 XNamespace對象
29.2.4 XComment對象
29.2.5 XAttribute對象
29.3 使用LINQ查詢XML文檔
29.3.1 查詢靜態的XML文檔
29.3.2 查詢動態的XML文檔
29.4 處理XML文檔
29.4.1 讀取XML文檔
29.4.2 寫入XML文檔
29.5 使用LINQ to SQL和LINQto XML
29.5.1 建立LINQ to SQL組件
29.5.2 查詢資料庫,輸出XML
29.6 小結
第30章 .NET編程和SQL Server
30.1 .NET運行庫的主機
30.2 Microsoft.SqlServer.Server
30.3 用戶定義的類型
30.3.1 創建UDT
30.3.2 使用UDT
30.3.3 在客戶端代碼中使用UDT
30.4 用戶定義的合計函式
30.4.1 創建用戶定義的合計函式
30.4.2 使用用戶定義的合計函式
30.5 存儲過程
30.5.1 創建存儲過程
30.5.2 使用存儲過程
30.6 用戶定義的函式
30.6.1 創建用戶定義的函式
30.6.2 使用用戶定義的函式
30.7 觸發器
30.7.1 創建觸發器
30.7.2 使用觸發器
30.8 XML數據類型
30.8.1 包含XML數據的表
30.8.2 讀取XML值
30.8.3 數據的查詢
30.8.4 XML數據修改語言(XML DML)
30.8.5 XML索引
30.8.6強類型化的XML
30.9 小結
第Ⅴ部分 顯示
第31章 Windows窗體
31.1 創建Windows窗體應用程式類層次結構
31.2 Control類
31.2.1 大小和位置
31.2.2 外觀
31.2.3 用戶互動操作
31.2.4 Windows功能
31.2.5 雜項功能
31.3 標準控制項和組件
31.3.2 CheckBox控制項
31.3.3 RadioButton控制項
31.3.4 ComboBox控制項、ListBox控制項和CheckedListBox控制項
31.3.6 ErrorProvider組件
31.3.7 HelpProvider組件
31.3.8 ImageList組件
31.3.12 ProgressBar控制項
31.3.13TextBox控制項RichTextBox控制項與MaskedTextBox控制項
31.3.14 Panel控制項
31.3.15 FlowLayoutPanel和TableLayoutPanel控制項
31.3.16 SplitContainer控制項
31.3.17 TabControl控制項和TabPages控制項
31.3.18 ToolStrip控制項
31.3.19 MenuStrip控制項
31.3.20 ContextMenuStrip控制項
31.3.21 ToolStripMenuItem控制項
31.3.22 ToolStripManager類
31.3.23 ToolStripContainer控制項
31.4 窗體
31.4.1 Form類
31.4.2 多文檔界面
31.4.3 定製控制項
31.5 小結
第32章 數據綁定
32.1 DataGridView控制項
32.1.1 顯示列表數據
32.1.2 數據源
32.2 DataGridView類的層次結構
32.3 數據綁定
32.3.1 簡單的綁定
32.3.2 數據綁定對象
32.4 Visual Studio和數據訪問
32.4.1 創建一個連線
32.4.2 選擇數據
32.4.3 更新數據源
32.4.4 其他常見的要求
32.5 小結
第33章 使用GDI+繪圖
33.1 理解繪圖規則
33.1.1 GDI和GDI+
33.1.2 繪製圖形
33.1.3 使用OnPaint()繪製圖形
33.1.4 使用剪下區域
33.2 測量坐標和區域
33.2.1 Point和PointF結構
33.2.2 Size和SizeF結構
33.2.3 Rectangle和RectangleF結構
33.2.4 Region
33.3 調試須知
33.4 繪製可滾動的視窗
33.5 世界、頁面和設備坐標
33.6 顏色
33.6.1 紅綠藍(RGB)值
33.6.2 命名的顏色
33.6.3 圖形顯示模式和安全的調色板
33.6.4 安全調色板
33.7畫筆和鋼筆
33.7.1 畫筆
33.7.2 鋼筆
33.8 繪製圖形和線條
33.9 顯示圖像
33.10 處理圖像時的問題
33.11 繪製文本
33.12 簡單的文本示例
33.13字型和字型系列
33.14 示例:枚舉字型系列
33.15 編輯文本文檔:CapsEditor示例
33.15.1 Invalidate()方法
33.15.2 計算項和文檔的大小
33.15.3 OnPaint()
33.15.5 回響用戶的輸入
33.16 列印
33.17 小結
第34章 Windows Presentation Foundation
34.1 概述
34.1.1 XAML
34.1.2 設計人員和開發人員的合作
34.1.3 類層次結構
31.1.4 命名空間
34.2 形狀
34.3 變換
34.4筆刷
34.4.1 SolidColorBrush
34.4.2 LinearGradientBrush
34.4.3 RadialGradientBrush
34.4.4 DrawingBrush
34.4.5 ImageBrush
34.4.6 VisualBrush
34.5 控制項
34.5.1 簡單控制項
34.5.2 內容控制項
34.5.3 有標題的內容控制項
34.5.4 項控制項
34.5.5 帶標題的項控制項
34.6 布局
34.6.1 StackPanel
34.6.2 WrapPanel
34.6.3 Canvas
34.6.4 DockPanel
34.6.5 Grid
34.7 事件處理
34.8 樣式、模板和資源
34.8.1 樣式
34.8.2 資源
34.8.3 創建列表框的樣式
34.9 小結
第35章 高級WPF
35.1 數據綁定
35.1.1 概述
35.1.2 用XAML綁定
35.1.3 簡單對象的綁定
35.1.4 對象數據提供程式
35.1.5 列表綁定
35.1.6 綁定到XML上
35.1.7 綁定的驗證
35.2 命令綁定
35.3 動畫
35.3.1時間線
35.3.2 觸發器
35.3.3 故事板1
35.4 在WPF中添加3D特性
35.5 Windows窗體集成
35.5.1 Windows窗體中的WPF控制項
35.5.2 WPF應用程式中的Windows窗體控制項
35.6 WPF瀏覽器應用程式
35.7 小結
第36章外掛程式
36.1 System.AddIn體系結構
36.1.1 外掛程式的問題
36.1.2 管道體系結構
36.1.3 發現
36.1.4 激活和隔離
36.1.5 契約
36.1.6 生存期
36.1.7 版本問題
36.2 外掛程式示例
36.2.1 計算器契約
36.2.2 計算器外掛程式視圖
36.2.3 計算器外掛程式適配器
36.2.4 計算器外掛程式
36.2.5 計算器主機視圖
36.2.6 計算機主機適配器
36.2.7 計算器主機
36.2.8 其他外掛程式
36.3 小結
第37章ASP . NET頁面
37.1ASP . NET概述
37.2ASP . NETWeb窗體
37.2.1ASP . NET代碼模型
37.2.2ASP . NET伺服器控制項
37.3 ADO . NET和數據綁定
37.3.1 更新會議登記應用程式
37.3.2 數據綁定的更多內容
37.4 應用程式配置
37.5 小結
第38章ASP . NET開發
38.1 用戶控制項和定製控制項
38.1.1 用戶控制項
38.1.2 PCSDemoSite中的用戶控制項
38.1.3 定製控制項
38.2 Master頁面
38.2.1 在Web頁面中訪問Master頁面
38.2.2 嵌套的Master頁面
38.2.3 PCSDemoSite中的Master頁面
38.3 站點導航
38.4 安全性
38.4.1 使用安全嚮導添加Forms身份驗證功能
38.4.2 實現登錄系統
38.4.3 Web 登錄伺服器控制項
38.4.4 保護目錄
38.4.5 PCSDemoSite中的安全性
38.5 主題
38.5.1 把主題套用於頁面
38.5.2 定義主題
38.5.3 PCSDemoSite中的主題
38.6 Web Parts
38.6.1 Web Parts應用程式組件
38.6.2 Web Parts示例
38.7 小結
第39章ASP . NETAJAX
39.1 Ajax的概念
39.2ASP . NETAJAX
39.2.1 核心功能
39.2.2ASP . NETAJAX Control Toolkit
39.3 使用ASP . NETAJAX
39.3.1ASP . NETAJAX網站示例
39.3.2 支持ASP . NETAJAX的網站配置
39.3.3 添加ASP . NETAJAX功能
39.3.4 使用AJAX庫
39.4 小結
第40章 Visual Studio Tools for Office
40.1 VSTO概述
40.1.1 項目類型
40.1.2 項目特性
40.2 VSTO基礎
40.2.1 Office對象模型
40.2.2 VSTO命名空間
40.2.3 主機項和主機控制項
40.2.4 基本的VSTO項目結構
40.2.5 Globals類
40.2.6 事件處理
40.3 建立VSTO解決方案
40.3.1 管理應用程式級外掛程式
40.3.2 與應用程式和文檔互動操作
40.3.3 UI的定製
40.4 示例應用程式
40.5 VBA互動操作性
40.6 小結
第Ⅵ部分 通信
第41章 訪問Internet
41.1 WebClient類
41.1.1 下載檔案
41.1.2 基本的Web客戶示例
41.1.3 上傳檔案
41.2 WebRequest類和WebResponse類
41.3 把輸出結果顯示為HTML頁面
41.3.1 在應用程式中進行簡單的Web瀏覽
41.3.2 啟動Internet Explorer實例
41.3.3 給應用程式提供更多的IE類型特性
41.3.4 使用WebBrowser控制項列印
41.3.5 顯示請求頁面的代碼
41.3.6 WebRequest和WebResponse的層次結構
41.4 實用工具類
41.4.1 URI
41.4.2 IP位址和DNS名稱
41.5 較低層的協定
41.6 小結
第42章 Windows Communication Foundation
42.1 WCF概述
42.1.1 SOAP
42.1.2 WSDL
42.1.3 JSON
42.2 簡單的服務和客戶
42.2.1 服務契約
42.2.2 服務的實現
42.2.3 WCF服務主機和WCF測試客戶機
42.2.4 定製服務主機
42.2.5 WCF客戶程式
42.2.6 診斷
42.3 契約
42.3.1 數據契約
42.3.2 版本問題
42.3.3 服務契約
42.3.4 訊息契約
42.4 服務的實現
42.5綁定
42.6 主機
42.6.1 定製主機
42.6.2 WAS主機
42.7 客戶程式
42.8 雙向通信
42.9 小結
第43章 Windows Workflow Foundation
43.1 Hello World示例
43.2 活動
43.2.1 IfElseActivity
43.2.2 ParallelActivity
43.2.3 CallExternalMethodActivity
43.2.4 DelayActivity
41.2.5 ListenActivity
43.2.6 活動的執行模型
43.3 定製的活動
43.3.1 活動的有效性驗證
43.3.2 主題和設計器
43.3.3 ActivityToolboxItem和圖示
43.3.4 定製的複合活動
43.4 工作流
43.4.1 系列工作流
43.4.2 狀態機工作流
43.4.3 給工作流傳送參數
43.4.4 從工作流中返回結果
43.4.5 將參數綁定到活動上
43.5 工作流運行庫
43.6 工作流服務
43.6.1 持續服務
43.6.2 跟蹤服務
43.6.3 定製服務
43.7 與WCF集成
43.8 保存工作流
43.9 工作流設計器
43.10 小結
第44章 Enterprise Services
44.1 概述
44.1.1 Enterprise Services簡史
44.1.2 使用Enterprise Services的場合
44.1.3 環境
44.1.4 自動的事務處理
44.1.5 分散式事務處理
44.1.6 對象池
44.1.7 基於角色的安全性
44.1.8 排隊的組件
44.1.9 鬆散藕合的事件
44.2 創建簡單的COM+應用程式
44.2.1 類ServicedComponent
44.2.2 標記程式集
44.2.3 程式集的屬性
44.2.4 創建組件
44.3 部署
44.3.1 自動部署
44.3.2 手工部署
44.3.3 創建安裝軟體包
44.4 Component Services瀏覽器
44.5 客戶應用程式
44.6 事務處理
44.6.1 事務處理的屬性
44.6.2 事務處理的結果
44.7 示例應用程式
44.7.1 實體類
44.7.2 OrderControl組件
44.7.3 OrderData組件
44.7.4 OrderLineData組件
44.7.5 客戶應用程式
44.8 集成WCF和Enterprise Services
44.8.1 WCF服務Fa?ade
44.8.2 客戶程式
44.9 小結
第45章 訊息佇列
45.1 概述
45.1.1 使用Message Queuing的場合
45.1.2 Message Queuing特性
45.2 Message Queuing產品
45.3 Message Queuing結構
45.3.1 訊息
45.3.2 訊息佇列
45.4 Message Queuing管理工具
45.4.1 創建訊息佇列
45.4.2 訊息佇列屬性
45.5 Message Queuing的編程實現
45.5.1 創建訊息佇列
45.5.2 查找佇列
45.5.3 打開已知的佇列
45.5.4 傳送訊息
45.5.5 接收訊息
45.6 課程訂單應用程式
45.6.1 課程訂單類庫
45.6.2 課程訂單訊息傳送程式
45.6.3 傳送優先權和可恢復的訊息
45.6.4 課程訂單訊息接收程式
45.7 接收結果
45.7.1 確認佇列
45.7.2 回響佇列
45.8 事務佇列
45.9 訊息佇列和WCF
45.9.1 帶數據契約的實體類
45.9.2 WCF服務契約
45.9.3 WCF訊息接收程式
45.9.4 WCF訊息傳送程式
45.10 訊息佇列的安裝
45.11 小結
第46章 目錄服務
46.1 Active Directory的體系結構
46.1.1 特性
46.1.2 Active Directory的概念
46.1.3 Active Directory數據的特性
46.1.4 模式
46.2 Active Directory的管理工具
46.2.1 Active Directory Users and Computers工具
46.2.2 ADSI Edit工具
46.3 Active Directory編程
46.3.1 System.DirectoryServices命名空間中的類
46.3.2 綁定
46.3.3 獲取目錄項
46.3.4 對象集合
46.3.5 快取
46.3.6 創建新對象
46.3.7 更新目錄項
46.3.8 訪問內部的ADSI對象
46.3.9 在Active Directory中搜尋
46.4 搜尋用戶對象
46.4.1 用戶界面
46.4.2 獲取模式命名環境
46.4.3 獲取User類的屬性名
46.4.4 搜尋用戶對象
46.5 賬戶管理
46.5.1 顯示用戶信息
46.5.2 創建用戶
46.5.3 重置密碼
46.5.4 創建組
46.5.5 在組中添加用戶
46.5.6 查找用戶
46.6 DSML
46.6.1 命名空間System.Directory-Services.Protocols中的類
46.6.2 用DSML搜尋Active Directory對象
46.7 小結
第47章 對等網路
47.1 P2P概述
47.1.1 客戶機-伺服器體系結構
47.1.2 P2P體系結構
47.1.3 P2P體系結構的挑戰
47.1.4 P2P術語
47.1.5 P2P解決方案
47.2 Microsoft Windows Peer-to-Peer Networking
47.2.1 Peer Name Resolution Protocol(PNRP)
47.2.2 People Near Me
47.3 建立P2P應用程式
47.3.1 System . Net.PeerToPeer
47.3.2 System . Net.PeerToPeer.Collaboration
47.4 小結
第48章 Syndication
48.1 System.ServiceModel.Syndication命名空間概述
48.2 Syndication閱讀器
48.3 提供SyndicationFeed
48.4 小結
第Ⅶ部分 附錄
附錄AADO . NET Entity Framework
附錄B C#、Visual Basic和C++/CLI
附錄C Windows Vista和Windows Server 2008
……

序言

對於開發人員來說,把C#語言及其相關環境.NET Framework描述為多年來最重要的新技術一點都不誇張。.NET提供了一種新環境。在這個環境中,可以開發出運行在Windows上的幾乎所有應用程式,而C#是專門用於.NET的新程式語言。例如,使用C#可以編寫出動態Web頁面、XML Web服務、分散式應用程式的組件、資料庫訪問組件、傳統的Windows桌面應用程式,甚或可以在線上/脫機運行的新型智慧型客戶應用程式。本書介紹.NET Framework 3.5版。如果讀者使用1.0、1.1、2.0或3.0版本編碼,本書的一些章節就不適用。本書將標註出只適用於.NETFramework 3.5的新增內容。
不要被.NET這個名稱所愚弄,這個名稱儀強調Microsoft相信分散式應用程式是未來的趨勢,即處理過程分布在客戶機和伺服器上,但C#不僅僅是編寫Internet或與網路相關的應用程式的一種語言,它還提供了一種編寫Windows平台上幾乎任何類型的軟體或組件的方式。另外,C#和.NET都對編寫程式的方式進行了革新,更易於實現在Windows上的編程。
這是一個相當重要的聲明。畢竟,我們都知道計算機技術的發展速度非常快,每年Microsoft都會推出新軟體、新的編程工具或Windows的新版本,並宣稱這些對開發人員都非常有用,.NET和C#也不例外。
.NET和C#的重要性
為了理解.NET的重要性,了解一下近10年來出現的許多Windows技術的本質,會有一定的幫助。儘管所有的Windows作業系統在表面上看來完全不同,但從Windows 3.1(1992年)到Windows Seirver 2008,在核心上都有相同的WindowsAPI。在我們轉而使用Windows的新版本時,API中增加了非常多的新功能,但這是一個演化和擴展API的過程,並非替換它。
開發Windows軟體所使用的許多技術和架構也是這樣。例如,COM(Component ObjectModel,組件對象模型)是作為OLE(Object Linking and Embedding,對象連結和嵌入)開發出來的。那時,它在很大程度上僅是把不同類型的Office文檔連結在一起,所以利用它可以把一個小Excel電子表格放在Word文檔中。之後,它逐步演化為COM、DCOM(Dist~"ibuted COM,分散式組件對象模型)和最終的COM+。COM+是一種複雜的技術,它是幾乎所有組件通信方式的基礎,實現了事務處理、訊息傳輸服務和對象池。
Microsoft選擇這條道路的原因非常明顯:它關注向後的兼容性。在過去的這些年中,第三方廠商編寫了相當多的Windows軟體,如果Microsoft每次都引入一項不遵循現有編碼規則的新技術,Windows就不會獲得今天的成功。
向後兼容性是Windows技術的極其重要的特性,也是Windows平台的一個長處。但它有一個很大的缺點:每次某項技術進行演化增加了新功能後,都會比它以前更複雜。

作者簡介

譯者

李銘,信息管理專業碩士,擁有近8年的系統開發經驗,曾開發過監考系統、寬頻教學系統、人員管理系統和綜合業務系統等,現就職於某部隊研究所,從事.NET、Oracle和Linux等方面的開發和管理工作,曾發表過多篇計算機專業論文,也翻譯和編寫過幾部著作。

審校

黃靜,計算機專業博士,在程式設計、軟體工程和網路安全等方面有著多年的研究和實戰經驗,曾為.NET技術在國內的推廣作出了重要貢獻,翻譯和發表了多篇有關.NET的技術文檔或文章。

相關詞條

熱門詞條

聯絡我們