圖書詳細信息
ISBN:9787302063254
定價:115元
印次:1-1
印刷日期:2003-4-3
圖書簡介
使用Visual C#可以開發出靈活的、易於維護的應用程式,這些應用程式能充分利用Microsoft最新推出的.NET Framework強大的計算和通信功能。本書首先介紹軟體工程和利用UML設計組件的基本原理,然後向您展示了如何充分發揮Visual C#的快速開發能力創建功能廣泛的組件,包括Web組件、Web服務和Windows服務組件、數據訪問組件、企業級組件、多執行緒組件,以及基於Microsoft Web瀏覽器的用戶界面組件等。;本書講述了基於組件的開發技術、實用的建議和真實的示例,可以幫助您在.
目錄
第Ⅰ部分概論
第1章開發過程 1
1.1組件開發 1
1.1.1常見錯誤 2
1.1.2項目管理風險 2
1.2開發階段 3
1.2.1瀑布過程 4
1.2.2初始需求中的問題 5
1.2.3連續細化的過程 6
1.2.4選擇組件 7
1.2.5購買第三方組件的風險 8
1.2.6微軟開發過程 9
1.3分析階段 9
1.3.1編制預算的藝術 10
1.3.2錯誤的方法 10
1.3.3正確的方法 11
1.3.4用例 12
1.3.5互動圖 12
1.4設計階段 13
1.4.1熟悉最終用戶 13
1.4.2熟悉性能需求 14
1.4.3從哪裡開始 15
1.4.4要完成什麼 15
1.4.5設計要具有可測試性 15
1.5實現階段 16
1.5.1確保跟蹤變化 17
1.5.2編碼原則 17
1.5.3測試器 23
1.6測試 23
1.6.1單元測試 24
1.6.2集成測試 24
1.6.3驗證測試 24
1.6.4回歸測試 25
1.6.5確定在何時發布——故障恢復率和錯誤反饋率 25
1.7部署階段 26
1.8部署後的日子:維護 26
1.9小結 27
第2章組件結構 28
2.1Conway定律 28
2.2父組件與子組件 29
2.3組件的分級 31
2.3.1大片還是小片 31
2.3.2大小與複雜度 32
2.4委託 34
2.5用委託限定特性 35
2.6聚集 37
2.7深度聚集 38
2.8執行緒 40
2.9小結 41
第3章組件設計 42
3.1UML 42
3.1.1類圖 42
3.1.2互動圖 44
3.2設計模式 45
3.2.1創建型模式 47
3.2.2結構型模式 50
3.2.3行為模式 55
3.3不要忘記-ilities 62
3.3.1可操縱性 63
3.3.2可測試性 63
3.3.3可用性 63
3.3.4可部署性 63
3.3.5可維護性 64
3.3.6可靠性 64
3.3.7靈活性 66
3.3.8可移植性 66
3.4放鬆一下--沒有完美的設計 67
3.5優秀設計的標誌 67
3.6小結 67
第4章組件分類 68
4.1如何分類組件 69
4.1.1形式方法問題 69
4.1.2分類系統 71
4.2前端組件 77
4.2.1獨立應用程式 77
4.2.2分散式應用程式 77
4.2.3基於瀏覽器的應用程式 80
4.3中間層 81
4.3.1群集伺服器 81
4.3.2伺服器區 81
4.3.3跟蹤用戶狀態 82
4.3.4資料庫連線池 82
4.4後端 83
4.5小結 85
第5章調試 86
5.1幾個關於調試的故事 86
5.2常見的故障 87
5.3不同種類的調試器 87
5.3.1VisualStudio.NET集成調試器 88
5.3.2DbgClr 88
5.3.3CORDBG 89
5.4一般的調試技術 89
5.4.1斷點 89
5.4.2運行中修改代碼 95
5.4.3運行中修改數值 96
5.4.4單步執行代碼 97
5.4.5測試數據 98
5.4.6棧跟蹤 99
5.4.7調試多語言代碼 100
5.5檢測代碼 102
5.5.1使用Debug類 102
5.5.2使用Trace類 103
5.5.3斷言 104
5.5.4使用Fail()方法 105
5.5.5重定向調試和跟蹤訊息 106
5.5.6條件編譯 107
5.5.7條件代碼屬性 109
5.6調試情況的種類 110
5.7幾個通用的提示 110
5.8獨立應用程式 111
5.9DLL 111
5.9.1一般的問題 112
5.9.2依附於過程 113
5.9.3及時依附 115
5.9.4從過程分離 116
5.10小結 116
第6章部署 117
6.1舊方法 117
6.2新方法 118
6.3程式集 118
6.3.1什麼是程式集 118
6.3.2程式集的結構 119
6.3.3查看程式集數據 120
6.3.4私有程式集 122
6.3.5共享程式集 122
6.3.6查看全局程式集高速快取 122
6.4部署方法 124
6.5使用安裝精靈 124
6.6創建基本的安裝程式 126
6.6.1添加項目輸出組 127
6.6.2編輯安裝項目屬性 128
6.6.3常用內容 130
6.6.4閃爍對話框 137
6.6.5歡迎對話框 137
6.6.6用戶授權對話框 138
6.6.7用戶信息對話框 138
6.6.8單選按鈕對話框 140
6.6.9複選框對話框 141
6.6.10文本框對話框 142
6.6.11安裝資料夾對話框 143
6.6.12自述檔案對話框 143
6.6.13註冊用戶對話框 144
6.6.14使用條件 145
6.7預編譯代碼 152
6.7.1何時進行預編譯 154
6.7.2何時不進行預編譯 154
6.8在Internet和Intranet上部署軟體 155
6.8.1使用Web頁 155
6.8.2CAB檔案 155
6.8.3智慧型客戶端 156
6.9部署共享組件 157
6.10許可 158
6.10.1設計時許可 160
6.10.2運行時許可 161
6.10.3創建許可 161
6.10.4使用經過許可的組件 162
6.11小結 163
第Ⅱ部分前端組件
第7章Windows窗體組件 164
7.1Windows窗體 164
7.2設計ProcessViewer 166
7.3開發ProcessViewer 168
7.3.1獲取進程數據 169
7.3.2進程的排序 170
7.3.3填充TreeView 171
7.3.4為TreeView項設定點陣圖 172
7.3.5為選單項設定點陣圖 174
7.3.6控制右邊的窗格 179
7.3.7限定窗體的尺寸 180
7.3.8顯示進程和模組的細目 181
7.3.9訪問命令行參數 183
7.3.10使用正則表達式 184
7.3.11獲取作業系統的訊息 188
7.3.12確定當前目錄 189
7.3.13獲取環境變數 189
7.3.14確定是否有滑鼠連線到系統中 191
7.3.15確定用戶的系統是否連線到網路上 192
7.3.16獲取邏輯驅動器的列表 192
7.3.17使用文本檔案 192
7.4剪下、複製和貼上 195
7.5列印 196
7.6ProcessViewer的完整代碼 202
7.7本地化 220
7.7.1地區的指定 221
7.7.2用程式實現改變地區 223
7.7.3資源檔案的本地化 224
7.7.4窗體本地化 224
7.7.5字元串的本地化 227
7.7.6帶有參數置換的短語 231
7.7.7MyLocalizedForm的代碼 232
7.7.8圖像的本地化 234
7.7.9使用ResEditor 234
7.7.10使用ResxGen 236
7.7.11建立本地化的圖像 236
7.8小結 238
第8章使用WebBrowser組件創建前端 239
8.1微軟的WebBrowser組件 239
8.2設計MyWebBrowser 242
8.3開發MyWebBrowser 243
8.4引入WebBrowserActiveX組件 243
8.4.1簡單的方法 243
8.4.2困難的方法 244
8.4.3運行時可調用的包裝 246
8.4.4添加工具列 247
8.4.5添加列印支持 248
8.4.6添加導航支持 249
8.4.7完整的代碼 252
8.5創建自定義的Web瀏覽器 256
8.5.1引入並包裝COM接口 258
8.5.2IOleObject和IOleClientSite 258
8.5.3使用ICustomDoc 260
8.5.4IDocHostUIHandler 260
8.5.5由通過COM接口調用的方法返回值 263
8.5.6常見的自定義 264
8.5.7IDocHostUIHandle方法詳述 269
8.6完整的代碼 277
8.7小結 285
第9章自定義控制項 286
9.1過去的自定義控制項 286
9.2選擇正確的基類 288
9.3設計組件 288
9.3.1創建自定義控制項庫 290
9.3.2更改控制項的類名 290
9.3.3更改控制項的Toolbox圖示 291
9.3.4向Toolbox添加組件 293
9.3.5在穩定前向Toolbox添加組件 295
9.3.6創建測試器 296
9.3.7添加對測試器的引用 296
9.3.8使用拖放來添加自定義控制項 297
9.3.9手工添加自定義控制項 297
9.3.10運行自定義控制項的代碼 298
9.4組件的開發 299
9.4.1添加滑鼠事件處理程式 300
9.4.2添加鍵盤事件處理程式 301
9.4.3繪製控制項 305
9.4.4使用World變換 318
9.5在檔案系統中查找檔案 326
9.6添加上下文選單 327
9.7支持拖放 328
9.8生成隨機數 332
9.9設計時屬性 332
9.9.1添加簡單的屬性 333
9.9.2添加屬性的說明 334
9.9.3在屬性視窗中禁止顯示屬性 334
9.9.4非公共屬性與屬性視窗 334
9.9.5在屬性視窗中隱藏繼承的屬性 335
9.9.6在類別下添加屬性 335
9.9.7禁止存儲屬性 336
9.9.8屬性編輯器 336
9.9.9實現類型轉換器 338
9.10MyCustomControl的完整代碼 340
9.11小結 352
第10章用戶控制項 353
10.1用戶控制項與自定義控制項 353
10.2設計圖形設計器組件 354
10.3開發組件 357
10.3.1創建用於設計器的組件 361
10.3.2由MyComponent派生專用類 364
10.3.3繪製Windows系統圖示 365
10.3.4顯示和管理抓取句柄 367
10.3.5用抓取句柄調整組件尺寸 374
10.3.6用橡皮圈選擇項 375
10.3.7管理選擇項 380
10.3.8在螢幕上移動組件 380
10.3.9設計器組件 382
10.3.10添加和刪除項 388
10.4控制數據輸入 389
10.4.1在鍵入時檢驗鍵值 389
10.4.2使用正則表達式驗證 391
10.4.3使用內置的方法 392
10.4.4確認事件 394
10.5小結 395
第11章資料庫前端 396
11.1建立資料庫連線 397
11.2基於導航器的窗體 400
11.2.1裝載記錄 404
11.2.2導航記錄集 407
11.2.3插入新記錄 408
11.2.4刪除記錄 408
11.2.5向資料庫提交修改 409
11.2.6取消對當前記錄的編輯 409
11.2.7取消所有編輯 410
11.3Windows窗體中的數據綁定 410
11.3.1把屬性同數據源綁定 411
11.3.2簡單數據綁定 412
11.3.3VS.NET提示 413
11.3.4預覽由數據適配器取出的行 418
11.3.5完整原始碼 419
11.4基於格線的窗體 425
11.4.1定製格線 428
11.4.2數字、日期和時間格式 431
11.5管理格線中的數據 434
11.5.1裝載記錄 434
11.5.2向資料庫提交修改 436
11.5.3回調所有的記錄 438
11.5.4使用默認值對行進行預填充 439
11.6主-從窗體 445
11.6.1創建窗體 446
11.6.2窗體如何工作 449
11.6.3使用嵌套行的主-從格線 458
11.7資料庫報表窗體 466
11.7.1創建簡單報表 466
11.7.2創建一個更複雜的報表 473
11.8小結 481
第12章軟體前端的一些技巧 482
12.1顯示一個閃爍視窗 482
12.2管理用戶的設定信息 484
12.2.1特定的目錄 485
12.2.2套用二進制檔案 486
12.2.3套用文本檔案 491
12.2.4套用註冊表 497
12.3管理最近使用的檔案 501
12.3.1套用註冊表 501
12.3.2套用捷徑 506
12.3.3聲明COM接口 509
12.3.4使用COM方法讀寫字元串 520
12.3.5COM對象ShellLink的一個包裝器 520
12.3.6套用FileShortcut類管理最近使用的檔案列表 527
12.4小結 529
第Ⅲ部分中間層組件
第13章Web窗體 530
13.1ASP有什麼缺陷 530
13.2ASP.NET的改進之處 531
13.3基礎知識 532
13.3.1告別包含檔案,使用類 533
13.3.2發布Web窗體 536
13.3.3處理Web窗體事件 539
13.3.4獲取用戶信息 545
13.4一個Web應用程式的例子 547
13.5設計Web應用程式 547
13.6實現Web應用程式 548
13.6.1PostBacks 556
13.6.2添加事件處理程式 557
13.7測試Web窗體 560
13.7.1使用Response對象 564
13.7.2使用重定向的方法返回全新的頁面 565
13.7.3使用跟蹤狀態 566
13.8管理狀態 570
13.8.1使用cookies 571
13.8.2使用隱藏數據 571
13.8.3使用查詢字元串 572
13.8.4使用ViewState 573
13.8.5使用對話變數 574
13.9小結 577
第14章Web控制項 578
14.1內置的Web控制項 578
14.2需要Web控制項的原因 579
14.3Web控制項工作原理 580
14.4開發一個定製的Web控制項 580
14.5設計Web控制項 581
14.6開發Web控制項 581
14.6.1定製發布 587
14.6.2依賴瀏覽器的發布 588
14.6.3添加定製事件 591
14.6.4添加定製屬性 593
14.6.5MyWebControl控制項的完整代碼 594
14.6.6移植控制項到DLL中 595
14.6.7創建測試裝置 599
14.7確認用戶輸入 600
14.7.1指定顯示出錯信息的位置 603
14.7.2Text屬性和ErrorMessage屬性的區別 603
14.7.3RequiredFieldValidator組件 603
14.7.4CompareValidator組件 603
14.7.5RangeValidator組件 605
14.7.6CustomValidator組件 606
14.7.7ValidationSummary組件 608
14.7.8RegularExpressionValidator組件 612
14.7.9一個使用驗證控制項的完整例子 613
14.7.10使用ValidationSummary組件的完整例子 617
14.8小結 620
第15章用戶控制項 621
15.1什麼是用戶控制項 621
15.2基礎知識 622
15.3用用戶控制項創建Web應用程式 625
15.4設計導航用戶控制項 626
15.5開發導航 626
15.6向Web窗體添加導航 628
15.7建立圖文框設定 628
15.8開發內容用戶控制項 631
15.8.1添加屬性 634
15.8.2添加事件處理程式 635
15.8.3回響頁面請求 635
15.8.4把內容控制項添加到Web窗體中 639
15.9建立HTML網頁 639
15.10把Web窗體轉換為用戶控制項 640
15.11測試用戶控制項 641
15.12把用戶控制項包裝在DLL檔案中 641
15.13完整的代碼 642
15.14小結 651
第16章服務 652
16.1Web服務 652
16.2基礎知識 654
16.2.1聲明Web方法 656
16.2.2數據輸入和數據輸出 657
16.2.3支持強制類型轉換 659
16.2.4SOAP 659
16.2.5WSDL 660
16.2.6DISCO 664
16.2.7UDDI 665
16.2.8開發Web服務 666
16.2.9測試Web服務 667
16.2.10狀態維護 674
16.2.11安全性 677
16.2.12發布動態搜尋信息 677
16.2.13將Web服務傳送到專用機上 678
16.3Windows服務 680
16.3.1設計服務 683
16.3.2開發服務 684
16.3.3互動式服務 692
16.3.4測試服務 693
16.3.5添加系統托盤圖示 696
16.3.6添加服務控制程式 696
16.3.7安裝服務 707
16.3.8自定義服務安裝 710
16.3.9最後幾個注意事項 712
16.4小結 713
第17章安全性 714
17.1Web應用程式的安全性 715
17.2驗證 715
17.2.1基於IP位址的驗證 715
17.2.2通過憑證鑑定用戶 718
17.2.3其他方法 721
17.2.4利用基本驗證手段保護Web應用程式 721
17.3ASP.NET的安全措施 731
17.3.1假冒 731
17.3.2窗體驗證 733
17.3.3一個簡單的例子 734
17.3.4將驗證信息保存到資料庫中 738
17.3.5護照驗證 740
17.4小結 740
第Ⅳ部分後端組件
第18章ADO.NET體系結構 741
18.1什麼是後端 741
18.2ADO.NET的主要要素 743
18.2.1數據集 743
18.2.2數據適配器 744
18.2.3數據讀取器 746
18.2.4數據表 747
18.2.5數據視圖 747
18.2.6數據綁定 751
18.3連線到資料庫 755
18.3.1打開連線和下線 757
18.3.2連線池 758
18.3.3性能最大化 758
18.3.4配置連線池 759
18.4更改資料庫 760
18.4.1添加記錄 760
18.4.2更新記錄 761
18.4.3刪除記錄 762
18.4.4處理數據集問題 763
18.4.5使修改生效和對錯誤進行分析 765
18.5一個完整的例子 769
18.6小結 781
第19章資料庫Web服務 782
19.1什麼是資料庫Web服務 782
19.2設計服務 783
19.3實現服務 784
19.4為客戶端提供Web方法 792
19.5測試Web服務 795
19.5.1使用InternalWebBrowser進行測試 795
19.5.2使用Windows應用程式進行測試 798
19.6異常處理 803
19.7事務處理 804
19.8測試資料庫Web服務 805
19.9小結 806
第20章多執行緒組件 807
20.1執行緒的概念 807
20.1.1單元執行緒 808
20.1.2.NET執行緒與同步 809
20.1.3給父執行緒回傳信息 811
20.1.4多個執行緒執行同一段代碼 811
20.1.5等待多個事件中的一個 812
20.1.6執行緒和COM對象 814
20.1.7無阻塞調用 815
20.1.8執行緒池 817
20.2執行緒管理 823
20.2.1啟動執行緒 823
20.2.2檢查執行緒的狀態 824
20.2.3執行緒的暫停與同步 825
20.2.4恢復暫停的執行緒 831
20.2.5停止執行緒 831
20.2.6異步處理 833
20.2.7同步處理 833
20.2.8跨執行緒共享資源 835
20.2.9從其他執行緒調用Windows窗體控制項 836
20.3創建多執行緒組件:StressTester 841
20.3.1設計組件 842
20.3.2實現組件 844
20.3.3調試組件 849
20.4小結 851
第21章網關服務 852
21.1什麼是網關服務 852
21.2RemotingFramework 853
21.2.1基本的Remoting組件 853
21.2.2一個簡單的伺服器端對象 854
21.2.3從客戶端訪問遠程對象 855
21.2.4將客戶端連線到伺服器上 855
21.2.5遠程對象的激活模式 859
21.3創建網關服務 862
21.3.1建立系統的體系結構 863
21.3.2設計網關服務 864
21.3.3實現網關服務 866
21.3.4設計服務主機應用程式 870
21.3.5實現服務主機應用程式 871
21.3.6設計服務提供者模擬器 875
21.3.7實現服務提供者模擬器 877
21.3.8測試MyGatewayService 883
21.3.9將所有部分組裝起來 886
21.3.10處理遠程異常 887
21.4小結 888