-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
12/13 新書到! 10/8 新書到! 10/1 新書到! 9/24 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

完全手冊Visual C# 2008開發技術詳解

( 簡體 字)
作者:李容類別:1. -> 程式設計 -> .NET -> C#
譯者:
出版社:電子工業出版社完全手冊Visual C# 2008開發技術詳解 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
序: