出版時間:2009 出版社:人民郵電出版社 作者:Bruce Bukovics 頁數(shù):687 字數(shù):1236000 譯者:柴曉偉
Tag標簽:無
前言
我開始應用微軟新的WinFX技術(shù)時,該技術(shù)還處于beta版和CTP(Community Technology Preview,社區(qū)技術(shù)預覽)版階段。這些基礎(chǔ)結(jié)構(gòu)開始時稱作WinFX(包含Windows Presentation、WindowsCommunication和Windows Workflow),在2006年11月它們作為.NETFramework3.O的一部分正式發(fā)布。實際上,我在日常工作中開始學習并使用這3個基礎(chǔ)結(jié)構(gòu)也是從那時開始的。下面就來談談我的不平凡的學習過程。WPF(Windows Presentation Foundation)和WCF(Windows Communication Foundaion)所具有的靈活性及其功能給我留下了深刻的印象,同時,WF(Windows Workflow Foundation)也有點莫名地吸引我。WF并不僅僅是實現(xiàn)用戶界面的新方法,也不僅僅是在應用程序和服務之間通信的新方法,而是一種體現(xiàn)了開發(fā)應用程序的全新方式。它是可聲明、可視化且無限靈活的,其倡導的模型可以清晰地將工作內(nèi)容和工作時間分隔開來。這種分隔允許你改變工作流模型(工作時間),而不會影響到工作內(nèi)容。可將業(yè)務邏輯實現(xiàn)為一組獨立并且可測試的組件,它們能像構(gòu)建塊一樣裝配到工作流中。工作流并不是新概念。但是當微軟公司花費了數(shù)年開發(fā)工作流基礎(chǔ)結(jié)構(gòu)并免費提供給我們時,這便值得我們?nèi)リP(guān)注了。相比于其他工作流框架,WF實際上是Windows應用程序的標準工作流框架。工作流(特別是WF)讓我很振奮,所以我編寫了本書的第1版。我也很振奮于它為和我一樣的應用程序開發(fā)人員提供的各種機會。直到今天我仍然十分振奮,特別是在.NET.Framework3.5發(fā)布之后。在這個版本中,微軟公司為WF提供了更多的增強功能——尤其是對工作流服務的支持(工作流服務其實就是以工作流的方式實現(xiàn)的WCF服務)。我衷心希望,你讀過本書之后也能夠使用WF.來構(gòu)建令人振奮的新一代實用的工作流應用程序。本書讀者本書面向所有想要學習如何在自己的應用程序中使用WF的.NET開發(fā)人員。它不是.NET或C#語言的入門讀物。想要更深刻地理解本書的示例,你需要良好的.NET 1.1知識(.NET 2.0更好)。本書所有的示例都采用C#編寫,所以你需要通曉C#。Visual Studi02008已經(jīng)內(nèi)置了對WF的支持。我使用它來生成本書中的示例和圖示,也推薦你采用它作為開發(fā)平臺。在本書的示例代碼中,我會使用一些省時的C#3.0新特性,比如自動實現(xiàn)屬性等。所以,如果你熟悉C#3.0的新功能,將會對你理解這些示例非常有幫助。
內(nèi)容概要
本書全面介紹了WF高級程序設計。WF不僅是實現(xiàn)用戶界面的新方法,也是在應用程序和服務之間通信的新方法,更是一種體現(xiàn)了開發(fā)應用程序的全新方式。全書圍繞如何在應用程序中整合WF展開討論,主要涵蓋WF基礎(chǔ)知識、承載工作流運行時、流控制、本地服務、工作流持久性,狀態(tài)機工作流、異常和錯誤處理、動態(tài)工作流更新,以及在Web服務和ASP.NET開發(fā)中使用工作流等內(nèi)容。另外,本書示例豐富,最大程度地闡明了使用WF技術(shù)所需要掌握的方方面面。 本書適合希望在自己的應用程序中使用WF的所有.NET開發(fā)人員。
作者簡介
Bruce Bukovics Radiant系統(tǒng)公司核心開發(fā)團隊的首席開發(fā)人員和架構(gòu)師,擁有近30年網(wǎng)絡開發(fā)經(jīng)驗,精通C、C++、Delphi、VB、C#和Java等多種編程 語言,親身經(jīng)歷了從COM到COM+,以及從Web服務到.NET遠程處理等技術(shù)的改革浪潮。
書籍目錄
第1章 WF快速入門 1.1 為什么需要工作流 1.2 開發(fā)環(huán)境 1.3 Hello Workflow 1.4 傳遞參數(shù) 1.5 作出決策 1.6 小結(jié) 第2章 基礎(chǔ)結(jié)構(gòu)概述 2.1 工作流類型 2.2 基礎(chǔ)結(jié)構(gòu)交付項 2.3 運行時環(huán)境 2.4 設計時環(huán)境 2.5 小結(jié) 第3章 活動 3.1 理解活動 3.2 探討標準活動 3.3 標準活動摘要 3.4 添加工作流邏輯 3.5 使用CodeActivity 3.6 開發(fā)自定義活動 3.7 增強設計體驗 3.8 小結(jié) 第4章 承載工作流運行時 4.1 承載概述 4.2 簡單的工作流承載 4.3 改進的工作流承載 4.4 控制工作流實例 4.5 同步的工作流執(zhí)行 4.6 小結(jié) 第5章 流控制 5.1 條件類型 5.2 使用IfElseActivity 5.3 使用WhileActivity 5.4 使用ParallelActivity 5.5 使用ReplicatorActivity 5.6 使用ConditionedActivityGroup 5.7 使用InvokeWorkflowActivity 5.8 使用TerminateActivity 5.9 使用SuspendActivity 5.10 小結(jié) 第6章 本地服務 6.1 了解本地服務 6.2 實現(xiàn)并使用本地服務 6.3 從App.config加載 6.4 使用自定義活動 6.5 使用CallExternalMethodActivity 6.6 小結(jié) 第7章 事件驅(qū)動活動 7.1 使用事件驅(qū)動活動 7.2 使用HandleExternalEventActivity 7.3 生成通信活動 7.4 手動控制關(guān)聯(lián) 7.5 使用EventHandlingScopeActivity 7.6 開發(fā)自定義事件驅(qū)動活動 7.7 小結(jié) 第8章 工作流持久性 8.1 了解持久性 8.2 使用SqlWorkflowPersistenceService 8.3 實現(xiàn)自定義持久性服務 8.4 小結(jié) 第9章 狀態(tài)機工作流 9.1 了解狀態(tài)機 9.2 實現(xiàn)狀態(tài)機工作流 9.3 消除重復的事件處理程序 9.4 標識現(xiàn)有事件 9.5 訪問工作流運行時信息 9.6 小結(jié) 第10章 事務和補償 10.1 事務 10.2 使用TransactionScopeActivity 10.3 了解補償 10.4 使用可補償活動 10.5 參與工作批次 10.6 使用IPendingWork接口 10.7 小結(jié) 第11章 工作流規(guī)則 11.1 了解工作流規(guī)則 11.2 在WF中使用規(guī)則 11.3 使用PolicyActivity來定義規(guī)則 11.4 跟蹤規(guī)則 11.5 調(diào)整規(guī)則順序 11.6 在規(guī)則中使用方法 11.7 在代碼中執(zhí)行規(guī)則集 11.8 在代碼中構(gòu)造規(guī)則集 11.9 小結(jié) 第12章 異常和錯誤處理 12.1 理解工作流異常處理 12.2 探討默認行為 12.3 使用FaultHandlerActivity 12.4 抑制異常 12.5 重新拋出異常 12.6 補償和異常 12.7 使用CancellationHandlerActivity 12.8 小結(jié) 第13章 高級自定義活動 13.1 開發(fā)專用的復合活動 13.2 開發(fā)通用的復合活動 13.3 開發(fā)優(yōu)先級順序活動 13.4 開發(fā)長時間運行的活動 13.5 小結(jié) 第14章 動態(tài)工作流更新 14.1 了解動態(tài)更新 14.2 從宿主應用程序中應用更新 14.3 限制動態(tài)更新 14.4 從工作流中應用更新 14.5 更新規(guī)則條件 14.6 替換規(guī)則條件 14.7 小結(jié) 第15章 工作流跟蹤 15.1 了解工作流跟蹤 15.2 使用SqlTrackingService 15.3 創(chuàng)建用戶跟蹤點 15.4 跟蹤規(guī)則計算 15.5 使用自定義跟蹤配置提取數(shù)據(jù) 15.6 維護SQL跟蹤數(shù)據(jù)庫 15.7 開發(fā)跟蹤服務 15.8 小結(jié) 第16章 Web服務和ASP.NET 16.1 將工作流發(fā)布為Web服務 16.2 開發(fā)Web服務工作流 16.3 返回Web服務錯誤 16.4 開發(fā)狀態(tài)化的Web服務 16.5 在工作流中調(diào)用Web服務 16.6 在ASP.NET中使用工作流 16.7 小結(jié) 第17章 工作流服務和WCF集成 17.1 了解WCF 17.2 了解工作流服務 17.3 開發(fā)無狀態(tài)的工作流服務 17.4 IIS承載和客戶端開發(fā) 17.5 自承載的工作流服務 17.6 定義工作流優(yōu)先的服務 17.7 開發(fā)狀態(tài)化的工作流服務 17.8 使用SendActivity 17.9 上下文和對話 17.10 小結(jié) 第18章 工作流序列化和標記 18.1 了解工作流創(chuàng)作模式 18.2 開發(fā)僅限代碼工作流 18.3 開發(fā)代碼分離工作流 18.4 開發(fā)無代碼工作流 18.5 在無代碼工作流中使用規(guī)則 18.6 序列化到標記 18.7 編譯工作流 18.8 編譯包含規(guī)則的工作流 18.9 在命令行中編譯 18.10 反序列化標記 18.11 小結(jié) 第19章 承載工作流設計器 19.1 工作流設計器 19.2 構(gòu)建設計器應用程序 19.3 使用設計器 19.4 小結(jié)
章節(jié)摘錄
插圖:基礎(chǔ)結(jié)構(gòu)概述本章旨在為讀者提供WF的全面概述,包括WF偽各個部分以及它們?nèi)绾螀f(xié)同工作。因為本章的重點是概述,所以不會包含大量工作流代碼。隨著后續(xù)章節(jié)逐步深入WF,你就會想?yún)⒖急菊聛聿殚嗊@些單獨的功能都適合于哪些相關(guān)應用場合。本章先來討論工作流的兩種主要類型:順序和狀態(tài)機.接下來討論wF提供的主要組件,也就是將wF安裝到開發(fā)機器上之后可用的特性,包括wF類庫、工作流運行時引擎、工作流運行時服務和工作流設計時工具。本章剩余的部分會分別討論運行時和設計時的功能。首先,討論工作流運行時環(huán)境和運行時使用的主要WF組件。使用wF時,你的職責之一是提供宿主應用程序。宿主應用程序的需求會在討論工作流運行時引擎時一起分析。WF允許你通過加載核心服務的備用實現(xiàn)來更改其默認行為。也可實現(xiàn)和注冊帶有工作流運行時的本地服務。這些類型的服務都會在本章討論。這一部分的最后會討論工作流實例。接下來的內(nèi)容是設計時環(huán)境。這部分內(nèi)容會介紹用來開發(fā)工作流應用程序的工具。在這一部分中,首先討論wF內(nèi)置的工作流設計器,然后介紹工作流創(chuàng)作模式和項目模板。2.1 工作流類型本節(jié)會討論WF支持的兩種工作流類型:順序和狀態(tài)機。2.1.1 順序工作流順序工作流聲明了一組按照預定順序執(zhí)行的步驟。在工作流內(nèi),控制流使用了常見的結(jié)構(gòu)來定義,例如if-else和while循環(huán)。圖2-1使用了簡單的流程圖來描述順序工作流的行為。為了說明順序工作流,圖2.1使用了一個經(jīng)常在銀行或其他金融機構(gòu)出現(xiàn)的銷戶示例。這個工作流清晰地定義了每個步驟和它們的順序。雖然工作流包含分支,但所有可能的路線都清楚明了。工作流還定義了開始點和結(jié)束點,而且必須從開始點開始執(zhí)行,不能任意跳到工作流中間的點。
媒體關(guān)注與評論
“若想了解WF,本書是必讀之物。本書涉及面之廣,所講內(nèi)容之深,是同類書籍所無法企及的。強烈推薦給每一位想了解WF的人,它真的很棒!” ——Amazon.com
編輯推薦
《WF高級程序設計》是一場高級程序設計的豐盛大宴;深入WF精髓,滿足你無限的求知欲;分析透徹的豐富示例,手把手教你設計絕活。WF作為.NET的一部分.是微軟為開發(fā)人員提供的強大工作流開發(fā)框架.它更代表了一種開發(fā)應用程序的全新模式。它可以清晰地將工作內(nèi)容和工作時間分隔開來,使你改變工作流模型而不會影響到工作內(nèi)容?!禬F高級程序設計》被譽為不可多得的經(jīng)典之作,內(nèi)容全面,結(jié)構(gòu)合理,各章彼此連貫又可獨立閱讀,極具靈活性。書中豐富的代碼實例,深入淺出地闡明了使用WF技術(shù)所需要理解和掌握的技術(shù)細節(jié)。
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載