兩個多星期的努力, 終于把Prototype搞定了。實現(xiàn)了以下功能:
1,一個state machine workflow(Fund Request Process work flow)
2, 使用Polic來控制業(yè)務邏輯
3,實現(xiàn)了xoml和dll的分離,動態(tài)加載xoml,提供一個編輯工具,可以edit the workflow on-the-fly
1, 并沒有傳說中的那么難
ASP.net和WF我都不熟, 根據(jù)兩本書,一個msdn上的例子"Web Form Workflow Approvals Stater kit"和另一個例子Orders http://www.odetocode.com/Articles/465.aspx的基礎上把prototype搞出來了。
2,理解概念很重要
如果不理解WF是怎么調(diào)用外部函數(shù)(CallExternalMethodActivity), 是怎么傳Event給WF(HandleExternalEventActivity),DependencyProperty是怎么回事, 基本不用再搞了。
3,很多設計可做
WF只實現(xiàn)了workflow最內(nèi)核的部分,非常靈活。 同樣的實現(xiàn)可以采用完全不同的實現(xiàn)方式。 怎么實現(xiàn)workflow definition, 怎么設計Activities, 需要為Activities添加那些DependencyProperty, 這些DependencyProperty是怎么互相關聯(lián)的, 怎么只在xoml里面保存workflow definition, 怎么實現(xiàn)Workflow和業(yè)務數(shù)據(jù)的交互, 怎么實現(xiàn)Workflow和組織結構或者role的關聯(lián), 都可以有完全不同的設計。
4,還有很多概念。。
因為是prototype, 很多東西沒考慮, 比如事務transation或者Compensate, 異常處理等。