編輯推薦
第一本WF技術圖書,帶你了解.NET 3.0的核心技術之一。
"好戲即將上演......"-Don Box, 微軟公司軟體架構師
Windows Workflow Foundation(WF)使用了一種開創性的方法來編寫和執行程式。WF程式是由一些可恢復的語句塊(稱為活動)組成的,封裝了專有領域的邏輯和控制流的模式,這些模式都可以映射到真實世界的處理流程。
本書兩位作者從WF項目開始立項就參與這個項目,負責規劃、設計、開發了其中的大部分技術。在本書中,作者高屋建瓴地探討了WF中的關鍵概念和整體架構,不僅涉及如何使用WF,還涉及為什麼這樣使用WF,揭開了WF技術的神秘面紗。很多WF開發者都想知道如何通過編寫活動來高效使用和擴展框架,本書提供權威性的解釋和答案。通過簡單而極具說明性的例子,本書演示了如何利用WF的可擴展性編程來構造具體領域的程式。
內容簡介
本書詳細講解windows workflow Foundation(WF)的運作原理,並在解析原理的過程中給出WF的設計初衷。WF使用了一種開創性的方法來編寫和執行程式。本書兩位作者從WF項目立項開始就參與這個項目,負責規劃、設計、開發了其中的大部分技術。在本書中,作者高屋建瓴地探討了WF中的關鍵概念和整體架構,不僅涉及如何使用WF,還涉及為什麼這樣使用WF,揭開了WF技術的神秘面紗。通過簡單而極具說明性的例子,本書演示了如何利用WF的可擴展性編程來構造具體領域的程式。
作者簡介
dharma Shukla 微軟架構師,工作目標為下一代編程模型。他是WF項目組的一名支柱成員,在定義WF體系結構的過程中扮演了重要的角色。
目錄
譯者序
序言
前言
第1章 剖析WF
1.1 執行緒進程靈活性
1.2 複合語句組件
1.3 控制流
1.4 程式的聲明
1.5 本章小結
第2章 WF程式
2.1 WF編程模型
2.2 WF運行時
2.3 本章小結
第3章 活動的執行
3.1 調度
3.2 活動自動機
3.3 回顧書籤
3.4 活動的初始化和始終化
3.5 組件活動的執行
3.6 WF執行緒
3.7 本章小結
第4章 活動執行的進階話題
4.1 活動執行上下文
4.2 取消
4.3 錯誤處理
4.4 補償
4.5 本章小結
第5章 宿主應用程式
第6章 事務
第7章 進階話題
第8章 雜項
附錄A 活動自動機
附錄B 控制流模式
書摘插圖
前言
Windows Workflow Foundation(WF)是一個通用的編程框架,它可用於創建需要對外部實體的信號作出回響的互動式程式。互動式程式的基本特徵是它會在執行期間暫停某一長短未知的時段,以等待輸入。 當然,互動式程式並不是什麼新現象。自從計算機網路出現以來,互動式程式就廣泛套用於兩台計算機之間的通信。這些技術還適用於運行在單台計算機上的數據交換。這種技術的變體涵蓋了從套接字到Web服務等各種技術,這些技術在程式通信領域已套用了多年。儘管在這幾年中,編程模型的互操作性、可伸縮性以及易編程性等方面有了長足的發展,但開發人員在程式互動方面的投入依然匱乏。比如,時下流行的Web編程模型,這類模型通常為開發人員強加控制流模型,且非常生硬。因此,WF希望改變這一切。
WF編程模型的核心概念就是活動—WF程式中的程式語句。活動的執行具有固有的可恢復性,同時以片段式的方式執行,它根據活動與外部實體的互動來暫停和恢復執行。當你在深夜合卷睡覺前,一般都會在書本當前閱讀的位置放置一個書籤,對WF中的活動來說也是這樣,當活動等待外部輸入時,它會在當前執行的位置做一個書籤,當收到外部輸入打算恢復執行時,則從書籤的位置繼續執行。
WF是一個框架,而不是一組由語法定義的編程構造。WF中活動的概念是可擴展的,這使得WF程式中的表達式以及控制流相對於C#或Visual Basic這樣的語言要豐富得多。你可以使用領域專有的活動以及特定的控制流結構來表示WF程式,因此,它能通過捕捉複雜的人機互動來高度擬真特定的場景。
WF運行時是一個元運行時,它建立在通用語言運行時(CLR)之上,並管理著WF程式的執行。在一個分散式的環境中,WF程式可以在不需要做任何額外工作的前提下,相當自然地暫停或恢復,也可以執行任意長一段時間。在WF程式空閒時,它既不會執行失敗,也不會過度消耗系統資源。在WF的上下文中,CLR的工作就是管理那些在記憶體中代表WF程式的對象。而WF運行時的工作就是管理WF程式的完整生命周期,WF程式的生命周期是可以跨越CLR執行緒、應用程式域、作業系統進程甚至機器的。
總之,WF提供了一個編寫和執行互動式程式的編程模型。WF程式是由被稱為活動的領域相關程式語句構建的。這允許領域專家可以使用該領域的概念來描述。 關於本書 我們撰寫這本書有一個簡單的理由,那就是我們都相信在WF的核心有一個令人矚目的概念。在當今主流平台上,這些概念還是第一次出現。WF的面向活動編程方法採用了與時下流行的編程範式完全不同的原則,因此,學習WF最好的方式就是首先關注WF編程模型賴以建立的基礎概念。僅僅熟悉System.Workflow命名空間下的一系列類型,對於WF開發者來說是遠遠不夠的。