 |
-- 會員 / 註冊 --
|
|
|
|
完全手冊Visual C# 2008開發技術詳解 ( 簡體 字) |
作者:李容 | 類別:1. -> 程式設計 -> .NET -> C# |
譯者: |
出版社:電子工業出版社 | 3dWoo書號: 13145 詢問書籍請說出此書號!【缺書】 【不接受訂購】 |
出版日:6/1/2008 |
頁數:748 |
光碟數:1 |
|
站長推薦:  |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
【不接受訂購】 | ISBN:9787121063183 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言: |
內容簡介:
C#是Microsoft專門為基于.NET Framework平臺開發而量身定做的編程語言。本書全面細致地介紹了Visual Studio 2008環境下的C#編程技術。書中每個知識和技術要點都給予了翔實的例程及代碼分析。 本書從C#入門基礎知識到C#的基本語法、從面向對象基礎到泛型程序設計、從數據庫操作到網絡與安全編程、從ADO.NET到XML操作、從控制臺應用程序開發到ASP.NET Web應用程序開發,再到Web服務程序開發等內容作了詳細介紹,幾乎涵蓋了C#相關的所有開發技術。同時以較大篇幅介紹了C# 2008中的重要特性,如泛型、GDI+、ASP.NET,以及數據操作控件等。最后介紹兩個案例,并給出詳細的設計過程及代碼說明,以鞏固和加深本書介紹的知識。 全書配合了大量的圖例及代碼說明,如果你希望掌握有關C#面向對象編程技術,那么本書將是不錯的選擇;如果你已經有這方面的編程經驗,本書也可以作為學習和開發的一個很好的參考。
|
目錄:第一篇 C# 2008入門必備 第1章 認識C# 2 本章首先介紹C#語言相關的基本知識,以使讀者對C#有一個整體的認識。 C#是目前世界上最好的編程語言之一,其集中了幾乎所有關于軟件開發和軟件工程研究領域的最新成果。C#擁有完全面向對象、類型安全、組件技術、版本控制、自動內存管理、跨平臺異常處理,以及代碼安全管理等先進特性。這些特性使它成為眾多程序員和企業的首選開發語言。 1.1 什么是C# 2 1.1.1 Microsoft .NET框架 2 1.1.2 .NET框架的開發語言——C# 3 1.1.3 C#的開發平臺Visual Studio 2008 3 1.2 第一個C#程序 4 1.2.1 認識和配置Visual Studio 2008開發環境 4 1.2.2 第一個Windows Console程序 5 1.2.3 創建Windows Console程序 5 1.2.4 解決方案資源管理器 7 1.2.5 屬性窗口 7 1.2.6 第一個Windows Form程序 8 1.2.7 創建Windows Form程序 8 1.2.8 Windows Form程序創建技巧 10 1.2.9 第一個ASP.NET程序 11 1.2.10 創建ASP.NET程序 11 1.2.11 Web程序和Windows程序的區別 14 1.3 一個優秀的開發助手——MSDN 15 1.4 小結 15 第二篇 C#語法及面向對象基礎 第2章 C#語法基礎 18 每種計算機語言都有其基本的語法規則,用來管理內存和處理數據。任何計算機程序都必須遵循其編寫語言的語法規則。C#語言繼承了許多C++的語法特性,簡化了C++語法的諸多復雜性。很多關鍵字和C++中的是一樣的。這對使用過C、C++、Java等語言的讀者來說是個好消息,但是C#語法并不是C++語法的簡單復制,如它對數據類型的管理更為嚴格。 2.1 C#的基本語法 18 2.2 變量 19 2.2.1 變量的聲明 19 2.2.2 變量的賦值 20 2.2.3 簡單數據類型 21 2.2.4 使用簡單數據類型 22 2.2.5 使用struct創建結構類型 24 2.2.6 結構類型例程 25 2.2.7 定義結構的構造函數 27 2.2.8 類型轉換 29 2.2.9 隱式轉換 29 2.2.10 顯式轉換 31 2.2.11 根據參與類型轉換的劃分 33 2.3 常量 33 2.3.1 靜態常量 33 2.3.2 動態常量 34 2.3.3 使用動態常量 35 2.4 表達式 36 2.4.1 數學運算符 37 2.4.2 普通數學運算符 37 2.4.3 自加和自減運算符 38 2.4.4 賦值運算符 39 2.4.5 比較運算符 41 2.4.6 運算符的優先級 42 2.4.7 命名空間 43 2.4.8 嵌套命名空間 44 2.5 流程控制 45 2.5.1 分支語句 45 2.5.2 三元運算符 45 2.5.3 if語句 47 2.5.4 使用if語句 48 2.5.5 程序流程 49 2.5.6 switch語句 50 2.5.7 使用switch語句 50 2.5.8 goto語句 51 2.5.9 循環語句 53 2.5.10 do-while語句 53 2.5.11 使用do-while語句 53 2.5.12 while語句 55 2.5.13 使用while語句 55 2.5.14 for語句 57 2.5.15 使用for語句 58 2.5.16 foreach循環語句 59 2.5.17 循環中斷語句 61 2.5.18 使用break語句 61 2.5.19 使用continue語句 62 2.5.20 使用return語句 63 2.6 小結 64 第3章 C#面向對象基礎 65 面向對象編程的英文簡稱是OOP(Object Oriented Programming),該項技術是目前運用最廣泛的程序化設計方法,幾乎已經完全取代了過去的面向過程編程。C#從一誕生開始,就是為面向對象編程所準備的。類是面向對象編程的核心部件,它描述了一組具有相同特性和行為的對象。基于面向對象的應用程序,就是由幾個或幾十個甚至更多的類組成,且類之間總是保持著或多或少的關系。類其實也是數據類型,所以在面向對象編程中程序員可以自定義數據類型,這和面向過程編程是有本質區別的。 3.1 類的基本概念 65 3.1.1 C#中的類定義 65 3.1.2 字段 66 3.1.3 常量 66 3.1.4 域 66 3.1.5 類的方法 67 3.1.6 類的屬性 69 3.1.7 類的索引器 71 3.1.8 類的構造函數和析構函數 72 3.1.9 事件 74 3.2 Visual Studio中的類向導 74 3.3 事件和委托 77 3.3.1 委托 78 3.3.2 委托的事件處理程序 79 3.3.3 委托中的GUI事件 82 3.4 面向對象的特征 83 3.4.1 繼承 83 3.4.2 多態 85 3.4.3 封裝 87 3.4.4 重載 87 3.4.5 方法重載 88 3.4.6 運算符重載 88 3.5 接口 89 3.5.1 接口的聲明 89 3.5.2 接口的使用 90 3.6 面向對象的其他主題 90 3.6.1 命名空間 91 3.6.2 程序集 92 3.6.3 類庫 93 3.7 小結 94 第4章 字符串處理 95 字符串是C#中應用較廣的一個概念,它作為C#中最為常見的數據處理類型之一,能和其他數據類型進行相互轉化。.NET Framework中有兩個用于字符串處理的基本類——String類和StringBuilder類。本章從這兩個類開始,陸續介紹字符串的一些相關操作。 4.1 字符串的常用功能 95 4.1.1 字符串的比較 95 4.1.2 字符串的格式化 96 4.1.3 字符串的大小寫轉換 96 4.1.4 字符串的拆分與截取 96 4.2 StringBuilder類 97 4.2.1 字符串對象的追加 97 4.2.2 字符串的插入、刪除與替換 97 4.3 正則表達式 98 4.3.1 System.Text.RegularExpression命名空間 98 4.3.2 正則表達式的語法 98 4.3.3 正則表達式驗證用戶輸入 99 4.3.4 使用正則表達式來替換字符串 100 4.4 小結 101 第5章 數組處理 102 數組同上一章講的字符串一樣,也是C#數據處理方面的一個基礎內容。數組是一種基本的數據類型,和其他類型(比如int型、float型、double型、string型等)的區別是它能存儲一組數據,而非單個數據。這個性質使得數組的應用十分廣泛。 5.1 創建數組 102 5.2 多維數組 103 5.3 動態數組 103 5.3.1 創建簡單的動態數組 104 5.3.2 動態數組的排序 105 5.4 數組的特殊操作 106 5.4.1 作為參數傳遞的數組 106 5.4.2 將一維數組作為參數傳遞 106 5.4.3 將多維數組作為參數傳遞 107 5.4.4 數組的數組 108 5.5 小結 108 第6章 集合與泛型 109 集合與數組的基本功能大致相同,但它在處理數據時具有更強更靈活的功能。.NET Framework提供了用于數據存儲和檢索的專用集合類,包含在System.Collections和System.Collections.Generic(泛型)中。泛型是C# 2008的一個新增特性,通過泛型可以定義更安全的數據結構,得到更優質的代碼。在本章中,將對集合與泛型進行詳細介紹。 6.1 什么是集合 109 6.2 SortedList可排序數組集合 109 6.3 Queue消息隊列集合 110 6.4 Stack棧集合 112 6.5 HashTable哈希表集合 113 6.6 集合中的一些重要概念 114 6.6.1 集合中的索引器 114 6.6.2 集合中的迭代器 115 6.6.3 深度復制 116 6.7 為集合使用泛型 118 6.7.1 定義泛型類 118 6.7.2 定義泛型接口 120 6.7.3 定義泛型方法 120 6.7.4 定義泛型委托 121 6.8 小結 121 第7章 代碼調試 122 代碼調試是編程中必不可少的一個環節,對于任何一種語言都不例外。無論多么優秀的程序員,也不能保證寫出的代碼永遠都不出錯。一般來講,程序的錯誤分為語法錯誤和邏輯錯誤。語法錯誤可能是大小寫不對,對象名拼寫錯誤等,這些錯誤一般是發生在程序編譯期間,較容易被檢查出來;而邏輯錯誤一般發生在程序運行期間,有時候是很難被發現的。此時,Visual Studio 2008強大的代碼調試功能就能發揮作用了。C#中的代碼調試分為兩個方面,一方面是Visual Studio 2008本身的調試,它提供了一些窗口,能實時監控程序的運行與走向;另一方面是運用附加代碼對程序進行監控,如try…catch模塊。本章將對以上內容進行詳細介紹。 7.1 Visual Studio 2008中的調試 122 7.1.1 正常模式下的調試 122 7.1.2 中斷模式下的調試 124 7.2 錯誤和異常處理 127 7.2.1 使用try…catch…finally語句 127 7.2.2 常見異常類型 129 7.2.3 創建和拋出自定義的異常 129 7.3 小結 130 第三篇 窗體應用程序開發 第8章 編寫Windows窗體應用程序 132 前面各章內容基本上都使用了控制臺應用程序作為演示例程。從本章開始,將介紹大量有關Windows窗體應用程序的開發知識和技巧。這也是一件令人興奮的事情,因為Windows窗體應用程序有著直觀的界面和非常強大的功能。基本上可以實現開發人員所希望的任何功能。借助窗體設計器等工具,VS2008為快速開發友好、交互及個性化的Windows窗體應用程序,提供了強大支持。 8.1 一個Windows窗體程序的深入分析 132 8.1.1 一個典型的Windows窗體程序 132 8.1.2 調試Windows窗體程序 134 8.1.3 調試總結 137 8.2 Windows窗體基本設計內容 137 8.2.1 設置窗體的位置與大小 137 8.2.2 人工設置窗體的位置與大小 138 8.2.3 設置窗體的位置與大小的其他方法 139 8.2.4 設置窗體的邊框 140 8.2.5 使用屬性窗口設置窗體邊框 140 8.2.6 在代碼中設置各種窗體邊框 141 8.2.7 設置控件框和最小化、最大化、關閉按鈕 142 8.2.8 在程序中設置最小化、最大化、關閉按鈕 142 8.2.9 設置控件框按鈕 144 8.2.10 窗體的事件 145 8.2.11 Load事件 145 8.2.12 鼠標懸停事件 146 8.2.13 按鍵事件 147 8.2.14 鼠標單擊事件 147 8.3 SDI應用程序、MDI應用程序和菜單 148 8.3.1 基于對話框的應用程序 148 8.3.2 單文檔(SDI)應用程序 148 8.3.3 多文檔(MDI)應用程序 149 8.3.4 菜單 149 8.3.5 多文檔、單文檔和菜單的設計方法 150 8.4 快捷菜單(ContextMenuStrip) 154 8.5 小結 156 第9章 使用Windows窗體控件 157 Windows窗體控件是包含在窗體對象中的對象。VS2008提供了許多窗體控件,大部分窗體控件具有用戶界面的特性,即在程序運行時可以看到。當然,也有一部分控件是沒有用戶界面特性的,稱為不可視控件,如前面章節介紹的MenuStrip菜單控件、ContextMenuStrip控件等。 9.1 控件 157 9.1.1 控件的屬性 157 9.1.2 使用Dock屬性布局控件 158 9.1.3 控件的事件 159 9.1.4 為控件添加事件 160 9.2 TextBox、RichTextBox和Button控件 161 9.2.1 使用Button控件實現按鈕功能 161 9.2.2 為Button控件設置圖片和顯示樣式 162 9.2.3 使用TextBox控件實現文本的輸入和輸出功能 163 9.2.4 一個Button和TextBox控件的綜合實例 165 9.2.5 綜合實例說明 170 9.3 Label和LabelLink控件 171 9.3.1 使用Label控件實現標簽功能 171 9.3.2 使用LinkLabel控件實現超鏈接設置 172 9.4 RadioButton和CheckBox控件 174 9.4.1 使用RadioButton控件實現單選功能 174 9.4.2 使用CheckBox控件實現復選功能 174 9.4.3 一個相應單選和復選事件的實例 175 9.5 使用GroupBox和Panel控件實現控件的分組 178 9.6 ListView控件 179 9.6.1 設置ListView控件的屬性 179 9.6.2 ListView控件的事件 180 9.6.3 一個讀寫ListView控件的實例 181 9.6.4 添加窗體的加載事件處理程序 183 9.6.5 程序運行效果 185 9.6.6 讀取XML數據并填充ListView 186 9.6.7 VS2008中建立XML 186 9.6.8 VS2008中讀取XML并填充ListView 187 9.6.9 將ListView數據寫入XML 190 9.6.10 AfterLabelEdit事件 190 9.6.11 ListView各項的修改 193 9.7 TreeView控件 197 9.7.1 TreeView的屬性和事件 197 9.7.2 TreeView樹讀取并顯示XML節點 199 9.7.3 程序運行結果及說明 202 9.8 小結 202 第10章 GDI+概述 203 GDI+是GDI的下一代版本,全稱是Graphics Device Interface+(圖形設備接口),主要用于.NET Framework中的繪圖。圖形總能給人一種直觀和清晰的印象,在應用程序中,運用圖形進行表達往往能起到很好的效果。圖形代碼的編寫是開發者比較喜愛的一種方式,它簡單且能立刻看到效果。GDI+是一個類庫,里面封裝了一些關于繪圖的命名空間和類,它讓開發者能創建圖形,繪制文本以及將圖形或圖像作為對象來處理。 10.1 GDI+的工作原理 203 10.2 圖形繪制基礎 204 10.2.1 Graphics類 204 10.2.2 Pen類的用法 205 10.2.3 Brush類的用法 207 10.2.4 Font類的用法 210 10.3 GDI+的一些實例 211 10.3.1 圖像的縮放 212 10.3.2 圖像的剪切 214 10.3.3 圖像的旋轉 216 10.3.4 圖像的切換顯示 218 10.3.5 圖片的打印和打印預覽 219 10.3.6 自己寫播放器 221 10.4 小結 223 第11章 文件的操作 225 文件處理是編程語言中最重要的功能之一,也是C#語言中最重要的功能之一,這使得C#能夠支持常用于處理大量持久數據的商用程序。本章將討論C#強大且豐富的文件處理和流輸入/輸出功能。 11.1 流的概念 225 11.2 用于輸入和輸出的類 226 11.2.1 文件的移動、刪除和復制 226 11.2.2 目錄的移動、刪除和復制 228 11.2.3 流和文件的讀寫 228 11.3 對話框 233 11.3.1 文件對話框 233 11.3.2 字體對話框 237 11.3.3 顏色對話框 239 11.3.4 頁面設置 241 11.3.5 打印預覽對話框和打印對話框 242 11.4 高級主題 245 11.4.1 監控文件結構 245 11.4.2 文件異步寫入 250 11.5 小結 252 第12章 部署Windows應用程序 253 部署的含義是指將已完成的應用程序或組件,安裝到其他計算機上的過程。在.NET Framework中,有兩個部署選項供用戶選擇,包括Windows Installer和ClickOnce。其中,Windows Installer是使用較早的一種部署方式,它允許用戶創建安裝程序包并分發給其他用戶,擁有此安裝包的用戶,只要按提示進行操作即可完成程序的安裝,Windows Installer在中小程序的部署中應用十分廣泛。ClickOnce是VS2008中的重要部署方式,它允許用戶將Windows應用程序,發布到Web服務器或網絡共享文件夾,允許其他用戶進行在線安裝。本章將主要介紹Windows應用程序的部署,有關Web應用程序部署的內容將在本書后面部分講解。 12.1 Windows Installer部署 253 12.1.1 創建部署 253 12.1.2 在部署中編輯器 255 12.1.3 文件系統編輯器 255 12.1.4 用戶界面編輯器 257 12.1.5 文件類型編輯器 260 12.1.6 啟動條件編輯器 261 12.1.7 注冊表編輯器 262 12.1.8 自定義操作編輯器 262 12.2 Windows Installer部署安裝全過程 263 12.2.1 歡迎 263 12.2.2 自述文件 264 12.2.3 許可協議 264 12.2.4 客戶信息 264 12.2.5 注冊用戶和復選框 265 12.2.6 選擇安裝文件夾和確認安裝 265 12.2.7 進度和安裝提示 265 12.2.8 安裝完成 266 12.3 程序的卸載和修復 267 12.4 VS2005中的其他打包方式 268 12.5 ClickOnce部署 268 12.5.1 部署策略的選擇 269 12.5.2 創建ClickOnce部署 269 12.5.3 安裝全過程 271 12.6 兩種部署方式的比較 272 12.7 小結 272 第四篇 C#數據存取 第13章 數據庫基礎知識 274 數據庫的發展歷史很悠久,從20世紀60年代開始出現的網狀、層次數據庫系統,到今天的以面向對象為特征的數據庫系統,數據庫已經經歷了數次變革。數據庫是利用計算機技術統一管理的相關數據的集合,它能動態地存儲大量的相互關聯的數據。Microsoft SQL Server 2005是本章將要重點介紹的內容,它是微軟推出的最新數據庫,它較之前的SQL數據庫系列在很多方面都有改進,如全文檢索、查詢引擎、統計信息等。因為本書的重點不在數據庫本身,所以對這些細節就不再詳述。 13.1 SQL Server 2005的安裝 274 13.2 Transact-SQL語言 277 13.2.1 Transact-SQL的特點 277 13.2.2 數據控制語言 277 13.2.3 數據定義語言 278 13.2.4 數據操縱語言 278 13.2.5 事務管理語言 278 13.2.6 其他附加語言 278 13.3 表 283 13.3.1 創建、修改和刪除表 283 13.3.2 操縱表中的數據 284 13.3.3 主鍵約束 286 13.3.4 外鍵約束 287 13.3.5 唯一性約束 288 13.3.6 CHECK約束 288 13.3.7 默認約束 288 13.4 存儲過程 288 13.4.1 創建存儲過程 289 13.4.2 執行和刪除存儲過程 290 13.4.3 SQL Server 2005中的存儲過程向導 290 13.5 觸發器 292 13.5.1 創建和使用觸發器 292 13.5.2 SQL Server 2005中的觸發器向導 293 13.6 事務和鎖 294 13.6.1 事務 294 13.6.2 鎖 296 13.7 小結 297 第14章 利用ADO.NET訪問數據庫 298 ADO.NET是活動數據對象(Active Data Objects,ADO)的更新版本,它主要用于訪問數據。它支持三種數據訪問格式,包括連接的數據訪問、斷開的數據訪問和XML訪問。ADO.NET解決了應用程序和數據庫之間不能分離的問題,它讓程序員能輕松地連接到數據庫,并在數據庫中進行檢索、添加、刪除、修改和插入等操作。它主要由兩個部分構成,即DataSet和.NET數據提供者,其中DataSet用于以表格的形式存儲數據;而.NET數據提供者能允許程序員與單獨的數據源通信,常用的數據提供者包括ODBC、SQL Server和OLE DB。 14.1 ADO.NET中的圖形化方式 298 14.1.1 連接到數據庫 298 14.1.2 在VS2008中創建數據庫 300 14.1.3 使用SqlDataAdapter對數據庫中表的查詢 301 14.1.4 添加、刪除和修改數據庫中的內容 303 14.2 ADO.NET中的.NET數據提供者 305 14.3 ADO.NET中的DataSet組件 308 14.3.1 DataSet的結構 308 14.3.2 為DataSet創建和刪除表 309 14.3.3 在表中列和行的添加和刪除 310 14.3.4 設置表的主鍵 311 14.3.5 為DataSet中的表添加約束 311 14.3.6 為DataSet中的表添加關系 312 14.3.7 DataSet中的導航功能 312 14.3.8 DataSet與XML的交互 313 14.4 ADO.NET操作存儲過程 316 14.5 ADO.NET操作觸發器 320 14.5.1 創建觸發器 321 14.5.2 修改和刪除觸發器 321 14.6 ADO.NET 3.5的高級特性簡介 322 14.7 小結 322 第15章 在.NET中訪問XML 323 在.NET中除了可以通過數據庫存儲數據,還可以XML文檔存儲數據。不同的是數據庫擅長于海量數據的存儲;而XML更適合用于小數據塊的存儲和傳輸,因為它是以一種簡單的文本格式進行數據存儲的。由于XML本身非常復雜,本章不對XML的細節做過多介紹;而主要是從實際的應用出發,介紹C#中對XML的相關操作。 15.1 什么是XML 323 15.1.1 XML與HTML的區別 323 15.1.2 為處理XML提供基于標準的支持——System.Xml命名空間 324 15.2 在.NET中讀取XML 325 15.2.1 使用XmlDocument讀取整個XML文件 326 15.2.2 使用XmlReader的實現類XmlTextReader讀取XML文件 328 15.2.3 使用XmlNodeReader讀取XML中的節點 331 15.2.4 在讀取XML文件時使用XmlValidatingReader進行數據驗證 334 15.3 在C#中編寫XML文件 335 15.3.1 使用XmlWriter創建XML文件 335 15.3.2 使用XmlTextWriter編寫XML文件 336 15.4 使用XPath檢索XML文件 339 15.4.1 XPath的語法 339 15.4.2 XPath實現檢索的綜合實例 341 15.5 修改XML文件中的數據(DOM應用) 346 15.5.1 利用DOM實現類建立XML文檔 346 15.5.2 一個應用實例 347 15.5.3 利用DOM實現類添加和刪除XML節點 351 15.5.4 程序運行結果及說明 356 15.6 小結 356 第五篇 網絡和安全編程 第16章 線程 358 眾所周知,Windows是一個多任務的操作系統。一個應用程序就是一個進程,而一個進程是由很多個線程組成。每個線程能完成一個獨立的任務,多線程的含義是讓它們同時工作,這樣能大大提高CPU的使用效率。舉個簡單的例子,假設一個研發團隊要開發一個大的Project,每個成員負責其中一部分的開發。那么整個團隊就是一個進程,而每個成員就是一個線程。多人開發能縮短開發時間,提高開發效率,這正是多線程的優勢。但必須有項目經理去管理整個項目,去協調成員之間的合作,防止出現合作不協調,這就相當于多線程中出現的“死鎖”等問題。所以線程越多,管理越難,這也是程序員在用多線程時必須注意的問題。在.NET Framework中,提供了System.Treading命名空間用于處理線程。 16.1 線程的創建、啟動和終止 358 16.2 線程的掛起和恢復 360 16.3 多線程 362 16.3.1 線程的優先級 362 16.3.2 lock關鍵字鎖定線程 362 16.3.3 線程的同步 363 16.3.4 使用線程池 366 16.3.5 使用定時器 368 16.4 線程中的異常 370 16.5 小結 371 第17章 Socket編程 372 Socket庫是一個能夠與遠程計算機相互通信的底層API,它的應用基本都是基于服務器和客戶端的。服務器掌管如何進行通信,而客戶端必須通過一套約定俗成的規則,才能和服務器進行連接,這些規則通常包括超文本傳輸協議(HTTP)、文本傳輸協議(FTP)和簡單對象訪問協議(SOAP)等。本章將主要對服務器和客戶端的結構進行介紹,并舉例說明怎樣創建服務器和客戶端。 17.1 Socket基本原理 372 17.2 服務器的結構 373 17.2.1 Socket類成員 373 17.2.2 Socket類實例:服務器通信 375 17.2.3 Socket類實例:利用多線程解決服務器通信問題 376 17.3 客戶端的結構 378 17.4 基于網絡流的數據傳輸 380 17.4.1 網絡流的服務器開發 381 17.4.2 網絡流的客戶器開發 381 17.5 一個基于Socket的C/S模式的完整例子 382 17.5.1 基于Socket服務器端實現 382 17.5.2 基于Socket客戶端實現 385 17.5.3 基于Socket的C/S實例的運行 386 17.6 基于UDP的數據傳輸 387 17.6.1 UDP的類庫 388 17.6.2 UDP數據傳輸實例 388 17.7 異步通信問題 392 17.8 小結 394 第18章 .NET安全編程中的密碼術 395 應用程序的安全性是每個程序員必須考慮的問題,也往往是最頭疼的事情。在.NET中,.NET Framework和CLR(公共語言運行庫)有效地解決了該問題。以前,即使是編寫最簡單的安全性代碼,也需要調用大量的Win32 API函數,不僅浪費了大量的時間,而且還不容易理解。.NET Framework很好地對有關安全性的Win32 API進行封裝,提供了System.Security命名空間。該命名空間中包含了大量的類,能幫助程序員輕松編寫出安全的代碼。CLR中提供一些服務,如類型安全和自動的無用單元收集(Garbage Collection)等,加強了應用程序的可靠性和安全性。 18.1 密碼術的基本內容 395 18.2 對稱密碼術 396 18.2.1 DES算法 396 18.2.2 RC2算法 399 18.2.3 Rijndael算法 401 18.3 非對稱密碼術 403 18.3.1 RSA算法 404 18.3.2 其他非對稱密碼術 406 18.4 數字簽名技術 407 18.4.1 數字簽名的工作原理 407 18.4.2 一個數字簽名的完整例子 408 18.4.3 數字簽名的客戶端流程 408 18.4.4 數字簽名的服務器端流程 412 18.4.5 數字簽名實例的運行效果 418 18.5 小結 420 第19章 .NET中的電子郵件處理 421 隨著網絡的普及,電子郵件已經成為人們學習、交流和數據傳輸的重要途徑。各大網站也紛紛建立起了屬于自己的郵件收發系統。同時也出現了一些用于郵件收發的客戶端程序,如OutLook Express、OutLook、FoxMail、Netscape Messenger等。本章將介紹C# 2008中有關郵件發送方面的類,以及郵件發送程序的設計方法。 19.1 電子郵件協議SMTP 421 19.2 使用System.Net.Mail命名空間的類發送電子郵件 421 19.3 一個發送電子郵件實例 422 19.3.1 主界面及代碼設計 422 19.3.2 郵件參數配置界面及代碼設計 424 19.3.3 發送界面及代碼設計 426 19.3.4 程序運行效果及說明 432 19.4 小結 432 第六篇 Web編程 第20章 Web編程基礎 434 前面章節介紹的都是基于C#的Windows窗體應用程序。在.NET框架下,C#還有一種重要的應用領域。這就是與Windows窗體應用程序對應的,基于ASP.NET的Web應用程序開發。Web應用程序是一種以網頁作為編程和用戶界面的應用程序,大家平時使用瀏覽器所訪問的網站便是一種Web應用程序。而本書所介紹的ASP.NET就是用于開發Web應用程序的平臺。 20.1 Web工作原理 434 20.1.1 超文本傳輸協議(HTTP) 434 20.1.2 Web服務器工作原理 435 20.2 超文本標記語言——HTML 435 20.2.1 第一個HTML頁面 436 20.2.2 代碼說明 437 20.2.3 將HTML頁面修改為動態頁面 437 20.2.4 代碼說明 440 20.3 一種腳本編寫語言JavaScript 441 20.3.1 定義函數 441 20.3.2 無參函數 441 20.3.3 有參函數 443 20.3.4 常用對象的屬性和方法 444 20.3.5 數組對象(Array) 444 20.3.6 使用數組對象(Array) 445 20.3.7 日期對象(Date) 449 20.3.8 使用日期對象(Date) 451 20.3.9 布爾對象(Boolean) 452 20.3.10 函數對象(Function) 454 20.3.11 字符串對象(String) 456 20.3.12 數值對象(Number) 458 20.3.13 數學對象(Math) 460 20.3.14 JavaScript中的事件及事件處理程序 462 20.3.15 在JavaScript中編寫事件處理程序 462 20.3.16 程序說明 463 20.3.17 運行效果 464 20.4 ASP.NET技術 465 20.4.1 動態服務器編程技術ASP.NET 465 20.4.2 一個簡單的ASP.NET應用程序 465 20.4.3 程序運行效果及說明 471 20.5 讀寫SQL Server 2005數據庫 473 20.5.1 創建數據庫和表 473 20.5.2 配置數據庫連接字符串 475 20.5.3 程序運行效果及說明 480 20.6 建設優秀網站需要考慮的問題——搜索引擎優化(SEO) 480 20.6.1 什么是SEO 481 20.6.2 影響搜索引擎排名的基本因素 481 20.6.3 對搜索引擎排名不利的因素 482 20.7 小結 483 第21章 表單及ASP.NET對象 484 表單在ASP.NET中可以提供兩方面的作用。一方面提供頁面布局,另一方面用于提供客戶端到服務器端的參數傳遞。本章將首先介紹有關表單的參數傳遞方法;然后介紹ASP.NET內建對象中的5個常用對象,這些對象對頁面間的參數傳遞同樣起著至關重要的作用;最后對IIS進行簡單介紹。 21.1 表單 484 21.1.1 表單原理 484 21.1.2 創建表單 485 21.1.3 程序運行效果及說明 487 21.2 5個ASP.NET對象 488 21.2.1 檢索從瀏覽器發送到服務器的請求信息——Request對象 488 21.2.2 Request對象中的集合 489 21.2.3 在程序中使用Cookie 491 21.2.4 程序運行效果及說明 493 21.2.5 Request中的Browser對象 494 21.2.6 Request的其他屬性和方法 494 21.2.7 將數據從服務器發回瀏覽器——Response對象 495 21.2.8 共享應用程序全局信息——Application對象 496 21.2.9 Application的數據存儲方式 496 21.2.10 使用Application對象實現網站的訪客數的統計 497 21.2.11 維護每個客戶的個人信息——Session對象 502 21.2.12 用Session存儲數據 502 21.2.13 Session存儲演示 503 21.2.14 獲取服務器信息——Server對象 505 21.2.15 認識Server對象 505 21.2.16 Server對象的演示 505 21.2.17 程序運行效果及說明 507 21.3 一個聊天室實例 508 21.3.1 聊天室實例的模塊劃分 508 21.3.2 聊天室實例的項目配置 509 21.3.3 聊天室的登錄 511 21.3.4 聊天室的聊天主界面 516 21.3.5 發送聊天信息 517 21.3.6 程序流程及說明 519 21.3.7 顯示聊天記錄 521 21.3.8 聊天演示 523 21.4 配置Internet信息服務(IIS)管理器 523 21.5 小結 525 第22章 Web程序中的服務器端控件 526 由于Web應用程序是建立在瀏覽器/服務器(B/S)結構的基礎上。因此Web程序不但要求能夠處理客戶端事務,而且要求能夠與服務器端實現交互。為了能夠很好地適應這種瀏覽器端和服務器端的工作模式,微軟公司在ASP.NET中創建了很多專門運行于服務器端的Web控件。這種控件又叫做ASP.NET控件,可以使用Web控件創建服務器端代碼,以響應在客戶端上發生的事件。 22.1 服務器控件 526 22.1.1 什么是服務器控件 526 22.1.2 服務器控件與HTML控件的區別 527 22.2 數據操作控件 527 22.2.1 用于連接SQL數據庫的數據源控件——SqlDataSource控件 527 22.2.2 使用SqlDataSource控件 528 22.2.3 以表的形式顯示數據——GridView控件 532 22.2.4 一次顯示一條表格形式的記錄——DetailsView控件 534 22.3 驗證控件 538 22.3.1 限制空字段控件 538 22.3.2 程序運行效果及說明 539 22.3.3 比較兩個字段控件 539 22.3.4 檢查指定范圍控件 542 22.3.5 表達式驗證控件 543 22.3.6 自定義驗證控件 544 22.3.7 程序運行效果及說明 546 22.3.8 錯誤信息匯總控件 547 22.4 用戶控件 548 22.5 小結 551 第23章 ASP.NET 3.5高級編程 552 本章將在前面幾章內容基礎上著重介紹ASP.NET 3.5高級特性,這些特性都是ASP.NET 3.5中的非常有用的功能。如創建母版頁、內容頁,創建主題和皮膚文件以及動態加載主題,創建自定義頁面(WebParts)控件。通過靈活地使用這些新增特性,將會使程序的開發事半功倍,同時提供給用戶極大的個性設置功能,減少網站后期的維護工作。 23.1 為一組頁面設計相同的風格——母版(Master Page) 552 23.1.1 創建Master Page 552 23.1.2 在Master Page中添加元素 553 23.1.3 創建Content Page 557 23.1.4 訪問母版頁中的控件 559 23.1.5 嵌套使用Master Page 562 23.2 主題和皮膚 564 23.2.1 什么是主題 565 23.2.2 在主題中創建皮膚文件 565 23.2.3 動態加載主題 568 23.3 自定義頁面(WebParts) 572 23.3.1 設置WebParts運行環境 572 23.3.2 編寫一個簡單的WebParts頁面 575 23.3.3 編輯WebParts控件 582 23.3.4 使用CatalogZone控件 585 23.3.5 導出與導入WebParts控件 587 23.3.6 使用靜態連接實現WebParts控件之間數據傳遞 590 23.3.7 使用動態連接實現WebParts控件之間數據傳遞 593 23.4 小結 595 第24章 操作Web Service 596 前面的各個章節介紹了ASP.NET Web應用程序開發技術。使用這些技術所開發的網站雖然可以實現客戶端與服務器的交互,如瀏覽信息、數據傳輸、數據處理等功能。但是,它也有一個弊端,那就是網站之間還無法實現通信。這些網站在Internet上就像一個個的信息孤島,使得其中的數據不能得到很好的交互,這時就需要用到Web Service。與其他開發平臺不同,在.NET平臺中不需要其他的工具或SDK就可以完成Web服務的開發。.NET Framework全面支持Web服務,包括對服務器端的請求處理和客戶端發送和接收SOAP消息的支持。本章將介紹通過.NET創建和使用Web服務。 24.1 什么是Web Service 596 24.2 在ASP.NET中創建和調用Web Service 597 24.2.1 創建Web Service 597 24.2.2 程序運行效果及說明 601 24.2.3 使用POST方法調用Web Service 602 24.3 在應用程序中使用Web Service代理 603 24.3.1 創建客戶端程序 603 24.3.2 在客戶端程序中使用Web Service代理 604 24.4 一個典型的Web Service調用的例子 605 24.5 小結 610 第七篇 綜合案例 第25章 圖書管理系統 612 本章將利用前面所講的知識開發第一個綜合實例——圖書管理系統。該系統主要是基于SQL Server 2005進行開發,利用數據庫實現對圖書的存儲以供用戶查詢和其他相關操作。存儲的圖書信息包括書名、作者、出版社、出版日期、ISBN和價格。該系統主要包括兩個模塊,分別為普通用戶模塊和管理員模塊,系統框圖如圖25-1所示。 25.1 普通用戶模塊設計 612 25.1.1 普通用戶模塊界面設計 613 25.1.2 數據庫設計 614 25.1.3 控件事件處理 614 25.2 管理員模塊設計 620 25.2.1 登錄功能 620 25.2.2 公告欄功能 621 25.2.3 查看書的目錄信息 621 25.2.4 讀取用戶留言 622 25.2.5 管理員登錄代碼 623 25.2.6 修改公告欄代碼 625 25.2.7 讀取用戶意見的代碼 626 25.3 系統啟動界面設計 628 25.4 示例演示 629 25.5 小結 633 25.5.1 本章主要內容 634 25.5.2 窗體間的數據通信 634 25.5.3 Panel覆蓋 635 25.5.4 .txt文件的操作 635 25.5.5 ADO.NET相關操作 635 25.5.6 本例完整代碼 636 25.5.7 Form1.cs窗體 636 25.5.8 Login.cs登錄窗體 645 25.5.9 Board.cs公告版 646 25.5.10 Read.cs讀取窗體 646 第26章 學生信息管理系統 648 通過對前面各個章節內容,特別是ASP.NET Web編程技術的學習。讀者已經具備了一定的ASP.NET Web應用程序開發能力。本章將通過開發一個基于B/S結構的“學生信息管理系統”,來鞏固和加深前面學到的ASP.NET Web編程技術。本章通過系統介紹了一些編程方面的重要技巧,內容還涉及ADO.NET技術、數據驗證控件、參數傳遞、數據加密、母版頁與內容頁,以及控件的數據傳輸、JavaScript腳本、數據顯示控件等。 26.1 系統分析 648 26.1.1 需求分析 648 26.1.2 數據庫分析 649 26.1.3 系統模塊劃分 650 26.2 學生訪問模塊設計 650 26.2.1 數據庫設計 651 26.2.2 系統配置與操作類設計 652 26.2.3 設計學生用戶登錄界面及代碼 657 26.2.4 利用母版設計主界面 660 26.2.5 設計數據顯示控件 662 26.3 教師訪問模塊設計 670 26.3.1 數據庫設計 670 26.3.2 操作類設計 673 26.3.3 設計教師用戶登錄界面及代碼 674 26.3.4 設計數據顯示控件 677 26.3.5 添加學生信息查找及頁面返回功能 683 26.3.6 實現數據顯示控件的分頁顯示 688 26.3.7 實現詳細信息查看 689 26.4 管理員訪問模塊設計 695 26.4.1 數據庫設計 696 26.4.2 設計操作類及登錄驗證 696 26.4.3 設計主界面及數據顯示控件 698 26.4.4 添加學生信息查找及分頁功能 704 26.4.5 添加用戶管理功能 708 26.5 小結 718
|
序: |
|