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