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