譯者序
原書序
致謝
第1章 由隨意編程轉變為遵循軟件工程原則
1.1 規則1-1:最大限度地發揮VB編譯期類型檢查的潛能
1.1.1 在每個模塊的頂端使用Option Explicit語句
1.1.2 避免不經意地使用Variant數據類型
1.1.3 在VB IDE中運行時,使用Start With Full Compile命令
1.2 規則1-2:使用Debug.Assert顯式聲明假設
1.3 規則1-3:編譯期條件不同時,考慮使用#If語句
1.4 規則1-4:拋出錯誤以提示異常
1.5 規則1-5:有效的錯誤處理:局部捕獲,全局處理
1.6 規則1-6:了解類型和類的區別
1.7 規則1-7:采用面向對象的設計方法
1.8 規則1-8:推薦采用用戶自定義類型而不是類來定義值類型
1.9 規則1-9:一般任務的自動化
第2章 設計、構建和使用基于COM的組件
2.1 規則2-1:從接口的角度進行思考
2.2 規則2-2;使用自定義接口
2.3 規則2-3:最好使用IDL獨立定義自定義接口
2.4 規則2-4:使用自定義回調避免基于類的事件的局限性
2.5 規則2-5:要謹慎保持兼容性
2.5.1 腳本客戶端程序
2.5.2 已編譯的客戶端程序
2.5.3 版本兼容的接口
2.6 規則2-6:選用正確的COM激活技術
2.6.1 COM激活
2.6.2 New操作符
2.6.3 CreateObject
2.6.4 GetObject
2.6.5 GetObjectContext.CreateInstance和Server.CreateObject
2.6.6 性能考慮
2.7 規則2-7:慎重使用Class_Terminate
2.8 規則2-8:根據會話而不是實體來建模
2.9 規則2-9:除了簡單的小規模應用系統,避免使用ActiveX可執行程序
第3章 MTS、COM+和VB-中間層
3.1 規則3-1:理解MTS和COM+應用程序設計
3.2 規則3-2:不要在MTS或COM+中使用單例
3.3 規則3-3:了解New、CreateObject及GetObjectContext.CreateInstance的適用場合
3.3.1 MTS和Windows NT4
3.3.2 COM+和Windows 2000
3.3.3 使用New遇到的更多問題
3.4 規則3-4:理解使用SetComplete的真實目的
3.5 規則3-5:對事務自動中止方式的思考
3.6 規則3-6:不要重新設計DBMS
3.7 規則3-7:不必配置所有組件
3.8 規則3-8:避免將以后會后悔的東西編譯進DLL
3.9 規則3-9:將代碼從MTS向COM+移植的實踐技巧
3.9.1 在COM+中不再需要調用GetObjectContext.CreateInstance
3.9.2 將Me作為參數傳遞時,不再需要調用SafeRef
3.9.3 當事務中的次要對象返回錯誤時要小心;可能會獲得形如"Method~of Object Failed~"的錯誤信息,而不是所指定的在錯誤傳播之前返回的豐富錯誤信息
3.9.4 使用ObjectConstruct字符串
3.9.5 在COM+應用程序中進行進程內調用時執行聲明性安全校驗
3.9.6 在COM+中刷新組件命令不再是必需的
3.9.7 在安裝Windows 2000以前版本的計算機上,COM+導出的客戶安裝程序需要Microsoft Installer(MSI)
3.10 規則3-10:編寫運行于MTS和COM+中的代碼的實踐技巧
3.10.1 創建對象時堅持使用GetObjectContext.CreateInstance
3.10.2 使用可編程控制的安全措施對訪問權限進行校驗,而不要依賴于聲明性安全措施
3.10.3 事務性方法調用失敗時,在次要對象中最好使用DisableCommit而不是SetAbort
3.10.4 不要無意中將DLL安裝到用戶計算機上
3.10.5 堅持使用ObjectContext接口
3.10.6 分發對象引用時繼續使用SafeRef
第4章 Web和VB
4.1 規則4-1:理解IIS體系結構
4.1.1 IIS的內部結構
4.1.2 提高服務器的可擴縮性
4.2 規則4-2:管理應用程序狀態以達到最高效率
4.2.1 使用BAS模塊數據
4.2.2 使用SPM
4.2.3 使用ASP Application對象
4.2.4 權衡各種方案的利弊
4.3 規則4-3:管理會話狀態以達到最大可擴縮性
4.3.1 將會話限制在單機上
4.3.2 在客戶機上存儲會話信息
4.3.3 使用cookie
4.3.4 QueryString變量
4.3.5 隱藏的表單域
4.3.6 在數據庫中存儲狀態信息
4.4 規則4-4:理解DCOM和HTTP的區別
4.4.1 使用RPC和DCOM進行通信
4.4.2 使用HTTP通信
4.4.3 在分布式應用程序中不使用ASP
4.4.4 使用HTTP的不利方面
4.5 規則4-5:為腳本環境(如ASP)編寫COM組件
4.5.1 創建默認接口
4.5.2 向可編寫腳本的對象傳遞參數
4.5.3 關于自定義接口
4.5.4 解決方案
4.6 規則4-6:理解COM對象與ASP之間如何交互
4.6.1 ASP內置對象
4.6.2 VB COM對象和STA
4.6.3 充分利用STA線程模型
4.6.4 在VB中如何訪問ASP內置對象
4.6.5 直接訪問ASP內置對象的好處
4.6.6 使用ASP內置對象的弊端
4.7 規則4-7:使用XML代替專有數據傳輸格式
4.8 規則4-8:慎重考慮表示和業務邏輯的關系
4.8.1 使用MTS組件
4.8.2 使用WebClasses
4.9 規則4-9:從數據到表示的XSLT實現
4.9.1 XSLT的概念
4.9.2 XSLT方法的好處
4.9.3 使用過程方法轉換數據集
4.9.4 利用XSLT的方法轉換數據集
4.9.5 XSLT的缺點
第5章 VB高效數據訪問
5.1 規則5-1:高效訪問的基礎:往返開銷、SQL語句和數據提供者
5.1.1 使往返開銷最少
5.1.2 確定發送SQL查詢的最好方法
5.1.3 選擇合適的提供者
5.2 規則5-2:不要過分封裝數據訪問
5.2.1 純粹的面向對象技術
5.2.2 追求純粹OOD效果的不足之處
5.2.3 解決辦法:使用存儲過程
5.2.4 如果需要多個數據庫服務器該如何處理
5.3 規則5-3:切莫將數據庫連接當代數據成員
5.4 規則5-4:死鎖是常見的-防錯性程序開發
5.4.1 鎖定
5.4.2 串行化事務和鎖管理器
5.4.3 死鎖
5.4.4 在應用程序設計中盡量減小死鎖的幾率
5.4.5 將事務運行時間降到最短
5.4.6 將鎖定時間降至最短
5.5 規則5-5:盡可能使用firehose游標
5.6 規則5-6:作出正確的數據搜索決策(避免濫用SelectSingleNode)
5.6.1 Seek-and-Find組件
5.6.2 了解解決具體問題需選用哪一種方法