换一个角度再谈一下WF
?
換一個角度再談一下WF
?
使用WF可以開發兩類流程
- 業務狀態流程
- 功能控制流程
?
業務狀態類流程
是傳統意義的工作流平臺所提供的流程,特點是用流程進行業務的狀態處理
關于這方面的例子我已經寫過很多文章了,本文就不再談這方面的內容了
?
功能控制類流程
在這里先對功能控制類流程做個說明
?
舉個例子:
?
我們先對A表進行數據操作,再對B表進行數據操作.如果操作B表失敗,則回滾對A表的操作.
?
當然,看到這里你會說這不就是數據庫的事務處理嗎.是的沒錯,那我們將上面操作的復雜度提升一下
?
?
如上的流程就是,功能控制類流程
他的做用不是置狀態,而是完成一組后臺的操做.
當然,你也可以用存儲過程完成這個操做,但如果流程中還有對磁盤的操做,對網絡的訪問,對外部設備的控制,用存儲過程做就力不從心了
?
在WF中,內置了很多對為實現功能控制類流程而提供的功能,有網絡通信類的Activity,有對事務,補償的支持.
?
在WF出現前,要實現上述業務,我會使用COM+
?
COM+是一個組件服務的容器,雖然NET可以開發COM+應用,但從本質上說是NET使用舊的技術,
NET推出后,
ActiviteX,COM向NET的組件過渡
DCOM向Remoting過渡
而COM+ 一直沒的NET的方案,雖然Remoting提供了COM+的一些功能,如組件服務,遠程事件,單例組件等,但對放入Remoting中的多個組件的上下文管理,事物,補償等功能,Remoting卻不直接提供.
而WCF + WF 的組合,可以說是COM+ 向 NET 過渡的一種方案.
?
注:以上說明并非MS的官方說明,只是我個人的感覺,全當給大家一個參考
?
COM+ 的問題先不談了,我以后發幾個同一業務分別用COM+ 與 WCF + WF 的對比方案.
?
我們回到WF的應用上,
在設計WF流程時,我不建議如下方式設計流程
?
上面這個流程將[業務狀態流程]與[功能控制流程]混到一起了
?
其實[功能控制流程]應該是[業務狀態流程]的底層
?
?
所以我修改設計如下
?
?
?
在實際的設計方案中,我一般是這樣做的
?
?
?
?
最后再補充一點題外話
?
最近有不少人對我說,聽說NET 4.0中WF的變化很大,…………
?
NET 4.0中WF我沒見過(以前裝了個CTP,別人告述我其中的WF是舊的)
?
不過我猜想新的WF一定會在[狀態控制]與[應用功能]兩個方面增加功能.
?
在[狀態控制]上,可能會添加對[流程圖],[狀態圖],[時序圖],[Petri網]等流程設計上的支持,就算4.0不提供,5.0,6.0,7.0總會提供的
?
在[應用功能]上,可能會添加大量的功能Activity,具體有什么就不好猜了,磁盤IO類,Windows服務管理類,SQlServer操作類,SharePoint操作類,籃牙通信類,都有可能
為什么會這么零散,因為WF的全稱是Windows Workflow Foundation
?
另外,我對WF還有一個假設
WF會退出[業務流程平臺]的舞臺,這里我指的退出是指不直接用WF開發[業務流程平臺],而是
[WF] -> [業務流程SDK / 產品] -> [業務流程平臺]
?
其實在WF推出后,我就猜想MS會將WF與其某款Server產品結合實現[業務流程SDK / 產品],
我當時猜想會是Exchange Server,沒想到看走眼了,竟然是SharePoint .(這里我們先不提CRM與BizTalk)
?
SharePoint與WF結合的市場反映怎樣我不加評論.反正我是不用!
?
我猜想在WF 4.0 后,MS會出一款直正的[業務流程SDK / 產品],可能是一個脫胎換骨的SharePoint,可能是Exchange,可能是一個全新的XXX
會不會是BizTalk呢,我覺得可能性不大,因為一個是后臺算法Server,一個是前臺業務Server,這樣不是更好
?
以上的分析,不管對錯,全當是一種參考吧
轉載于:https://www.cnblogs.com/foundation/archive/2009/02/12/1388929.html
總結
以上是生活随笔為你收集整理的换一个角度再谈一下WF的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 经济危机过后,中国会变成什么样
- 下一篇: 使用驱动调试助手应该注意的问题