第I部分 關鍵技術
第1章 了解分布式體系結構
1.1 什么是分布式應用程序
1.2 客戶端/服務器體系結構
1.2.1 客戶端/服務器體系結構存在的問題
1.3 分布式體系結構
1.3.1 分布式體系結構的優(yōu)點.
1.3.2 DCOM和分布式應用程序的歷史
1.3.3.NET分布式技術
1.4 小結
第2章 .NET組件
2.1 什么是組件
2.2 組件在分布式系統(tǒng)中的角色
2.2.1 服務提供者
2.2.2 信息包
2.3 示例組件剖析
2.4 IComponent接口
2.4.1 在設計時使用組件
2.4.2 資源與可使用類
2.5 連接字符串和配置文件
2.5.1 Visual Studio.NET中的配置文件
2.6 部署程序集
2.6.1 共享程序集
2.6.2 搜索私有程序集
2.7 程序集的版本
2.7.1 共享程序集以及GAC
2.7.2 延遲簽名
2.8 使用配置文件和共享程序集
2.8.1 強名稱程序集的版本策略
2.8.2 共享程序集的代碼基礎
2.8.3 關于程序集綁定的決定性內容
2.9 小結
第3章 無連接數據:通用語言
3.1 分布式系統(tǒng)中ADO.NET的角色
3.2 ADO.NET對象族
3.2.1 數據對象
3.2.2 直接數據源交互
3.2.3 直接杏詢和數據讀取對象
3.2.4 存儲過程
3.2.5 不知道提供者的ADO.NET代碼
3.2.6 事務
3.3 DataSet
3.3.1 創(chuàng)建DataSet
3.3.2 DataSet間接列映射
3.3.3 瀏覽DataSet
3.3.4 關系
3.3.5 從DataSet更新
3.3.6 更新的問題
3.3.7 處理錯誤
3.4 XML 與平臺問的數據交換
3.5 小結
第4章 .NET遠程處理:更持久 的DCOM
4.1 分布式系統(tǒng)中.NET遠程處理的作用
4.2 .NET遠程處理基本知識
4.2.1 可序列化的類
4.2.2 可遠程調用的類
4.2.3 遠程組件宿主
4.3 關鍵的.NET遠程處理設計決策
4.3.1 激活模式
4.3.2 對象生存期
4.3.3 服務器和客戶端激活
4.3.4 通信
4.4 簡單的遠程處理服務器
4.4.1 遠程對象
4.4.2 組件宿主程序
4.4.3 客戶端應用程序
4.4.4 具有用戶接口的遠程組件
4.4.5 使用Visual Studio.NET進行測試
4.4.6 使用一個不同的格式化器
4.4.7 使用多信道
4.5 單獨調用對象
4.6 單獨對象
4.7 雙向通信
4.7.1 使用事件
4.7.2 使用委托
4.8 配置對象生存期
4.8.1 修改生存期
4.8.2 使用租約發(fā)起者
4.9 常見的遠程處理異常
4.10 小結
第5章 XML Web服務(RPC便捷之路)
5.1 XML Web服務在分布式系統(tǒng)中的作用
5.2 .NET遠程處理與XML Web服務
5.3 XML Web服務管道
5.3.1 IIS的作用
5.3.2 新建虛擬目錄
5.3.3 XML Web服務文件格式
5.4 創(chuàng)建XML Web服務
5.4.1 數據序列化
5.5 測試XML Web服務
5.5.1 WSDL文檔
5.6 使用XML Web服務
5.6.1 檢測代理類
5.6.2 使用代理類
5.6.3 調試Web服務
5.7 ASP.NET平臺服務
5.7.1 SOAP頭與SOAP擴展.
5.8 發(fā)布XML Web服務
5.9 跨平臺XML Web服務
5.10 小結
第6章 線程化客戶端(響應界面)
6.1 什么是多線程?
6.2 分布式系統(tǒng)中線程客戶端的角色
6.3 .NET線程
6.4 異步委托
6.4.1 異步遠程調用
6.4.2異步Web服務調用
6.5 等待句柄
6.6 回調
6.7 異步I/O
6.8 定制線程
6.8.1 線程優(yōu)先級
6.8.2 線程管理
6.8.3 線程調試
6.9 加鎖
6.9.1 競爭條件
6.9.2 死鎖
6.9.3 使用Monitor類的高級鎖
6.10 定制線程對象
6.10.1 線程和用戶界面
6.10.2 使用回調和加鎖
6.10.3 向線程發(fā)送指令
6.11 小結
第7章 線程池與服務(可縮放編程)
7.1 分布式系統(tǒng)中線程處理的角色
7.2 單獨的基礎
7.2.1 跟蹤客戶端
7.2.2 管理任務與清除任務
7.2.3 Ticket系統(tǒng)
7.2.4 加鎖
7.3 一個單獨的XML Web服務
7.3.1 線程池
7.4 Windows服務
7.4.1 創(chuàng)建Windows服務
7.4.2 安裝Windows服務
7.4.3 調試Windows服務
7.4.4 控制Windows服務
7.4.5 為組件宿主使用Windows服務
7.5 小結
第8章 消息(輕量通信)
8.1 分布式系統(tǒng)中消息的角色
8.2 發(fā)送與忽略通信
8.3 Message Queuing介紹
8.3.1 Message Queuing服務器
8.3.2 從屬客戶端
8.3.3 獨立客戶端
8.4 Message Queuing基本知識
8.4.1 消息隊列類型
8.4.2 消息隊列服務
8.4.3 配置消息隊列
8.4.4 消息解析
8.5 在.NET中操作隊列
8.5.1 選擇隊列
8.5.2 搜索隊列
8.5.3 創(chuàng)建隊列
8.6 發(fā)送消息
8.6.1 發(fā)送對象消息
8.6.2 高級消息配置
8.6.3 接收消息
8.6.4 瀏覽消息
8.6.5 向應和回執(zhí)消息
8.7 分布式應用程序中的消息隊列
8.7.1 COM+隊列組件
8.8 小結
第9章 COM+(組件服務)
9.1 分布式系統(tǒng)中COM+的角色
9.2 COM和互用
9.3 COM+注冊基礎
9.3.1 給程序集一個強名稱
9.3.2 動態(tài)注冊
9.3.3 手工注冊
9.3.4 COM+與聲明模型
9.3.5 COM+版本控制
9.3.6 使用COM+組件
9.4 對象池
9.4.1 理想的緩沖池組件
9.4.2 緩沖池與狀態(tài)
9.4.3 緩沖池組件例程
9.4.4 建立緩沖池
9.4.5 激活、停用和條件緩沖池
9.4.6 緩沖池和數據提供者
9.4.7 對象緩沖與連接緩沖
9.5 實時激活
9.5.1 JIT與對象池
9.5.2 JIT激活與.NET
9.6 自動事務處理
9.6.1 對象與事務處理
9.6.2 滾動自定義事務處理
9.6.3 隔離級別
9.6.4 Web方法的事務處理
9.7 較少使用的COM+服務
9.7.1 排隊組件
9.7.2 基于角色的安全設置
9.7.3 同步
9.7.4 松耦合事件
9.7.5 對象構造字符串
9.7.6 SOAP服務(只限于COM+1.5)
9.8 小結
第II部分 體系結構開發(fā)
第10章 企業(yè)應用程序模型
10.1 分布式組件的關鍵考慮事項
10.1.1 進程間和計算機間的通信
10.1.2 狀態(tài)問題
10.1.3 遠程對象是真實的對象嗎?
10.2 性能與可縮放性
10.2.1 內容學習
10.3 分層設計
10.3.1 業(yè)務對象
10.3.2 規(guī)則
10.4 分布式設計模式
10.4.1 接口
10.4.2 Factory
10.4.3 Facade
10.4.4 Facade和監(jiān)聽
10.4.5 Facade和XML Web服務
10.4.6 Facade和事務處理
10.5 選擇正確的.NET技術
10.5.1 內部和外部系統(tǒng)
10.5.2 混合的內部/外部系統(tǒng)
10.5.3 通用的后端
10.5.4 部分離線的系統(tǒng)
10.5.5 COM升級
10.6 物理結構
10.6.1 縮放比例
10.6.2 負載平衡
10.7 小結
第11章 高級遠程技術
11.1 考慮應用.NET遠程處理進行開發(fā)
11.1.1 ByRef和ByVal參數
11.1.2 異常的傳播
11.1.3 靜態(tài)成員變量
11.1.4 私有方法
11.1.5 公共成員變量
11.1.6 版本控制
11.1.7 基于接口的編程
11.1.8 基于接口的遠程處理的問題
11.2 再論.NET遠程處理和XML Web服務
11.2.1 Soapsuds和WSDL描述
11.2.2 ASP.NET宿主
11.3 程序化的注冊
11.4 動態(tài)發(fā)布
11.4.1 使用XML Web服務記錄連接信息
11.4.2 關注ObiRef
11.5 小結
第12章 優(yōu)化數據層
12.1 連接池
12.1.1 連接和應用域
12.1.2 測試連接池
12.2 制定一個數據傳遞計劃
12.2.1 批處理更新
12.3 緩存
12.3.1 輸出(響應)緩存
12.3.2 輸出緩存需要考慮的事項
12.3.3 數據緩存
12.3.4 確定緩存策略
12.4 優(yōu)化數據庫
12.4.1 存儲過程
12.4.2 索引
12.4.3 整理
12.4.4 分割大的數據表
12.4.5 數據層編碼
12.4.6 規(guī)范
12.5 小結
第13章 實現安全性
13.1 身份驗證和授權
13.2 Windows身份驗證
13.2.1 IIS身份驗證設置
13.2.2 通過XML Web服務客戶端設置身份驗證信息
13.2.3 通過.NET遠程客戶端設置身份驗證信息
13.2.4 能獲得的用戶信息
13.2.5 模擬
13.3 自定義基于角色的身份驗證
13.3.1 Ticket系統(tǒng)
13.3.2 自動通過Ticket
13.4 加密
13.5 SSL
13.5.1 SSL和證書
13.5.2 SSL通信
13.6 .NET加密類
13.6.1 選擇性的非對稱加密
13.6.2 選擇性的對稱加密
13.6.3 在.NET遠程處理中的選擇性加密
13.6.4 使用自定義類包裝加密
13.6.5 對加密類使用.NET序列化
13.6.6 代碼訪問安全
13.6.7 安全性和Stack Walk
13.6.8 安全要求
13.6.9 安全聲明、拒絕和只允許
13.7 小結
第14章 監(jiān)視、日志和分析
14.1 服務器端的日志記錄
14.1.1 使用Facade與反射進行日志記錄
14.1.2 Windows事件日志
14.1.3 直接郵件通知
14.2 客戶端目志
14.2.1 使用跟蹤機制
14.2.2 獲取未處理的錯誤
14.3 性能計數器分析
14.3.1 基本的性能計數器
14.3.2 自定義性能計數器
14.4 小結
第15章 部署策略
15.1 傳統(tǒng)的部署問題和.NET解決方案
15.2 應用程序的啟動程序
15.2.1 在升級XML Web服務時的安全漏洞
15.2.2 其他關于應用程序啟動程序的增強功能
15.3 應用程序瀏覽器
15.3.1 應用程序瀏覽器XML Web服務
15.3.2 應用程序瀏覽器模塊
15.3.3 應用程序瀏覽器
15.3.4 代碼訪問安全性
15.3.5 在應用程序瀏覽器中加強交流
15.3.6 更加動態(tài)的應用程序瀏覽器
15.4 小結
第III部分 案例研究
第16章 InVOicer.NET流動推銷
16.1 問題的定義
16.1.1 關鍵點分析
16.1.2 評價不同的方法
16.2 定義解決方案
16.3 數據層
16.3.1 存儲過程
16.3.2 Excel電子表格
16.3.3 數據組件
16.3.4 CustomersDB類
16.3.5 OrdersDB類
16.3.6 InvoicerTables類
16.3.7 ExcelTranslator類
16.4 后端OrderProcessor服務
16.5 Web前端
16.6 XML Web服務層
16.7 移植策略
16.7.1 增加安全性
16.7.2 增加早期驗證
16.7.3 使用惟一的文件名
16.7.4 Excel難題和專用的Windows客戶端
16.8 小結
第17章 Transact.NET訂單履行
17.1 問題的定義
17.1.1 關鍵點分析
17.2 定義解決方案
17.3 數據層
17.3.1 存儲過程
17.3.2 數據組件
17.3.3 ProductDB類
17.3.4 OrderDB類
17.3.5 TransactTables類
17.4 訂單提交XML Web服務
17.5 訂單客戶端
17.6 內部OrderFill客戶端
17.6.1 隊列監(jiān)控
17.7 未來的方向
17.7.1 增加安全性
17.7.2 添加確認GUID
17.7.3 支持多訂單填寫的客戶端
17.8 小結
第18章 SuperCompute.NET工作需求
18.1 問題的定義
18.1.1 關鍵點分析
18.2 定義解決方案
18.3 數據層
18.3.1 存儲過程
18.3.2 數據組件
18.3.3 UserDB類
18.3.4 SessionDB類
18.3.5 TaskDB類
18.3.6 SuperComputeTables類
18.4 呈現Web服務
18.4.1 RenderService認證
18.4.2 RenderService功能
18.5 客戶端
18.6 任務處理器
18.6.1 TaskProcessor組件
18.6.2 任務處理器前端
18.6.3 下載被渲染的文件
18.7 未來的方向
18.7.1 增加ticket緩存
18.7.2 提高客戶端錯誤清理能力
18.7.3 添加消息隊列
18.7.4 添加負載平衡
18.8 小結
第19章 微軟實例學習
19.1 IBuySpy商店
19.2 IBuySpy入口
19.3 Duwamish 7
19.4 .NET Pet Shop
19.5 Fitch&Mather Stocks 7
19.6 Nile Books
19.7 ColdStorage
19.8 Jaggle
19.9 Favorjtes Service