Which Style of Workflow When?


Windows Workflow Foundation supports three basic styles of workflow:  Sequential, State Machine and Data-Driven. 


I get a lot of people asking me which style is right for their problem, so I thought I’d share my thoughts on this with you all.


Let’s start with a simple problem.  I want Fred to review a document, then Joe to approve it, and finally I want to send it to my customer.


This is an obvious Sequential style workflow.  To implement it, I create a Sequential Workflow project, add a sequence of Activities which ask Fred to review, Joe to approve, and finally myself to send the document – and I’m done.


A Sequential workflow is characterized by the fact that the workflow is in control.  Fred, Joe and I get to do what we’re told, when we’re told to do it.  We do our stuff, let workflow central know that we did it, and then the workflow decides what happens next.


Of course, the Sequential style doesn’t mean that things always happen in a simple linear sequence like this.  We can have conditional branching, loops, and so on.  What it means is that the workflow controls the sequence.  The Sequential style is the classic style of workflow, as implemented by dozens of products over the years. 


In my opinion, it is also significantly responsible for giving Workflow a bad name.  Not that there’s anything wrong with telling people what to do (I’m known to indulge in the practice myself, occasionally) – but sometimes it just doesn’t work.


Let’s look at an example.  Say that I’m testing a product that’s being developed.  When I find a problem, I open a bug, assign it to the guilty developer, then wait confidently for the fix. I want to write a workflow to manage this process.


So far, this sounds very familiar.  The steps are: tester opens bug, developer fixes bug, tester approves fix.  Just like the simple document review we saw before.


But this is illusory.  What really happens?  A tester opens a bug, and assign it to Bill.  Bill says, no not me, this is Clive’s, and reassigns the bug to him.  Or Bill says, this tester is not in this case quite correct (or words to that effect), and rejects the bug as nonsense.  Or asks the tester for clarifying information.  Or even, if he’s in a good mood, fixes it and hands it back to the tester.  Or, if the original tester is out, another tester.  Or the tester withdraws an erroneous bug (surely not).  And so on, with each participant being able to make one of a set of choices at any given stage.


What happens if I write this in the Sequential style?  Something like this (if you’ll forgive my pseudocode):


               Tester T creates instance of bug workflow
               T adds bug details
               T assigns to developer D
LabelA:     Switch
                     D assigns to developer E
                           Goto LabelA
                     D rejects bug to T:
                           Switch
                                 T accepts rejection:
                                 T updates bug and assigns to developer F:
                                          Goto LabelA
                           End Switch
                     D requests info from T:
                     T submits info
                           Goto LabelA
                     D submits solution to T:
                     T withdraws bug:
               End Switch


You get the idea.  Loops and choices which arise within choices are posing structural questions (here I held my nose and used Goto, to try and keep the mapping from the scenario to the code obvious).  And if we start making the process more realistic still, with a queue of bugs coming in that a development team leader assigns to individuals (or a developer might grab them from the queue), and we add a project manager to the picture with the ability to set bug priorities in flight, and so on, things will get worse and worse.


This problem is much better tackled using the State Machine style.  The pseudo-code above becomes:


State: Initial
      Action: T adds bug details
      Action: T assigns to developer D; new state = Fixing


State: Fixing
      Action: D assigns to developer E
      Action: D rejects bug to T; new state = Rejected
      Action: D requests info;  new state = Pending Info
      Action: D submits solution; new state = Pending Approval
      Action: T withdraws bug; new state = Closed


State: Rejected
      Action: T accepts rejection; new state = Closed
      Action: T updates bug and assigns to developer F; new state = Fixing


State: Pending Info
      Action: T submits info; new state = Fixing


State:  Pending Approval
      Action: T rejects solution; new state = Fixing
      Action: T accepts solution; new state = Closed


State: Closed


This is much cleaner and more comprehensible.  Also, adding more features will not complicate the structure – it will simply mean adding more states and actions.


Implementing this style in Windows Workflow Foundation is simply a matter of creating a State Machine Workflow project and defining the states and actions required.


So what’s the criterion for using the State Machine style?  Simply this: are the important choices being made outside the workflow?  Is the user in control?  If so, then the Sequential workflow’s notion that it calls all the shots will become a nuisance.  The State Machine style of workflow, on the other hand, expects the choice of what to do to be made outside the workflow.


So if the workflow makes no choices, what is it for?  Well, a State Machine workflow controls the sets of choices.  It makes no sense for a tester to accept a solution until one has been submitted.  It only becomes valid when the bug workflow has reached an appropriate state – by one of a large number of possible routes.


It’s this last point that leads us to another insight about why the State Machine style is more applicable to this problem.  The Sequential workflow, of its nature, encodes all the possible sequences of behavior in its structure.  But here, we don’t care.  We only need to know about the current state, and what can be done next.  So if we spend time modeling routes through the process, event though we don’t in fact care about them, and these routes are many, as they are in the bug problem, then the Return On Investment from the Sequential style inevitably becomes very poor.


OK, so far, so good.  What’s this third, Data-Driven, style about?


This time, we’ll use the example of an inventory shortfall.  An assembly line is making a gadget, and the computer said there were enough widgets in stock for the purpose, but when the stockroom manager went to fetch the widgets, there was a shortfall of 10.


We want to build a workflow to handle this scenario.


What are the possible actions?  The supplies department could order more widgets, perhaps going to a different supplier or paying more money for faster delivery.  The account manager could go to the customer and defer delivery, or split the delivery in two parts and bear the extra shipping cost.  The production manager could take assembled gadgets from an order for another customer and divert them.  The stockroom manager could search his stock to find the missing widgets.


Our workflow will be a collaboration, containing all these actions, restricted to the appropriate roles.  Any given action might be performed multiple times.  One obvious constraint is that the collaboration is not done until the shortfall is fixed by some combination of the above actions.


There will also be business constraints.  For instance, there may be a rule that says deferral of delivery to gold customers is never permitted.  Also, the actions will affect each other.  For instance, we may say that total added cost from corrective action may not exceed 5% of original factory cost – so placing an order for accelerated supplies might prevent a shipment being split.


This is not a Sequential workflow – all the decisions are being made outside the workflow.  Is it a State Machine workflow?  Clearly, the sets of actions allowed to each role varies as the collaboration progresses – as splitting shipments becomes impossible, for instance – and the workflow is determining these sets of actions.


But the set of actions available at any given point is determined by the interaction of a number of  independent rules – whether the customer is a gold customer, whether we have already deferred delivery once, whether the profit margin on the order is becoming a problem, etc.  So the number of possible sets of actions – and therefore the number of corresponding states – is going to be large. 


Crucially, we’re actually not interested in what these possible combinations of actions are – only that the rules are enforced.  So we find ourselves again in a situation where a modeling approach, in this case the state machine, captures information we don’t care about – and therefore has poor ROI.


What do we get ROI from modeling?  Why, simply what are the available actions, and who can perform them under what circumstances.  This is just a set of actions, and for each, a role and a boolean expression which determines availability.


There is one more thing.  We’d like to know when our collaboration is done – so we add to the model another boolean expression which is true when the collaboration is finished.  In this case, the expression will test whether there are, or will be, enough widgets in stock for assembly.


How is this Data-Driven style implemented in Windows Workflow Foundation?  There are two model elements to support this approach:  the Constrained Activity Group, and the Policy.  Both are typically used within a Sequential Workflow project, and represent regions of ‘data-drivenness’.


Clearly, it would be possible to model all workflows in this Data-Driven style.  Wouldn’t we then have only one modeling approach to worry about?


This is true, but not optimal.  To see why, consider how we know that a Data-Driven workflow is correct.  We cannot predict its behavior very easily at all – the number of possible different series of actions that the workflow will allow is very large.  So really the only way to test it is to try it, using enough different initial states, and enough different paths through it, that we feel confident in its operation.


Contrast the testing of a Sequential style of workflow.  It has only a few possible sequences of behavior, which we can test exhaustively.  We can get a higher level of confidence more cheaply.


So the motto is, choose the workflow model which has as much structure as your problem has – and no more.  Deviating in either direction costs you money.  Using a style with too much structure adds cost because you’re encoding information which has no value.  Using a style with too little structure adds cost because your testing costs are higher than they need to be.


And one final word.  Do not think that a typical real world application should use only one style.  Most applications are most cost-effectively built from a composition of styles.  Consider a Call Center application where most of the time the system uses scripts to drive the telephone operators.  Probably a  Sequential workflow.  But then there are always the exceptions, such as an account in a shouldn’t-have-got-there state.  Now we want to refer to an expert.  Experts need to make choices – and so should be supported with a State Machine or Data Driven workflow.


So there you have it – my thinking on styles of workflow in the Windows Workflow Foundation.  Feedback, as ever, solicited and welcome!


  


 


 


Comments (392)

  1. Robert Banghart says:

    I found this information really helpful.

    Initially, I just read the post and moved on in my aggregator but I kept coming back to the fact that this post is important to those of us who are new to working with workflow on a regular basis and to WWF in particular.

    I think there are a lot of us out here who would like to see you continue post this type of information. We would also like you to link to other workflow and WWF sources that you think would be of benefit to us including books that you would recommend.

  2. David – this is just superb insight! By providing a set of simple rules to help us make choices is great ROI in of itself. Thanks a zillion.

    P.S. Over on my Blog, I posted a piece on WF.

  3. bevcorwin says:

    Yes, please continue to post info, very helpful. Any other WF events coming up?

  4. Very smart and simple explanation!

    It´s really helpful to have this kind of posts, thanks!

  5. Just posted an extended version of my older post.

    It´s here: <a href="http://staff.southworks.net/blogs/ariel/archive/2005/10/27/What_style_of_Workflow_should_I_use.aspx"&gt; "Which Workflow Style should I use?: More approaches…"</a>

    Thanks!

  6. Chris Hallowes says:

    Excellent stuff Dave. But considering most of my apps will be WinForms I am struggling to picture where in a typical WinForms app I will need a workflow. E.g. I have an Sales Order Entry app. Would this standard type of app be a candidate for a workflow?

  7. wei shi says:

    Your post is very helpful to me, thank yo :)

    I am considering about how to integrate human activity into BPEL. As a modelling language based mainly on sequential scenario, BPEL is insufficient to deal with the complexity of human activity. My current idea is that, regarding human activity in main process as a sub-process, using advanced petri net(colored PN, timed PN) to model human activity, tranforming petri net sub-process into BPEL sub-process, and integrating sub-process into main process via ‘call’ activity.

    So, my qustion is that, how to integrate three styles into a real world application? does there exist a unified modeling language for three styles in WWF?

    thank again for your good post

  8. Erik Linthorst says:

    Yep, that helped ! Keep the good stuff coming :-) Thanks.

  9. Bob Flanagan says:

    Excellent post! I’m just trying to learn the concepts and think of ways that I could use WWF. This is really helpful information. Please continue.

  10. Parvez Mulla says:

    Good Post, and helpful , any information on Declarative Workflows

  11. Cesar says:

    Muy bueno, simplemente claro.

    Gracias

  12. Dan Smith says:

    Your insight is very helpful  Dave, don’t blog fast aand dry young on us now 😉

  13. Balbhim Dhere says:

    This posting is really helpfull to me. I was thinking Which style should i use. But it solves my problem. Please continue.

  14. Max Wilson says:

    Quote: <<This is true, but not optimal.  To see why, consider how we know that a Data-Driven workflow is correct.  We cannot predict its behavior very easily at all – the number of possible different series of actions that the workflow will allow is very large.  So really the only way to test it is to try it, using enough different initial states, and enough different paths through it, that we feel confident in its operation.>>

    It seems to me that if you have a well-defined model for all the workflow components, "trying it" doesn’t have to mean actually executing the code. You could build an explicit-state model-checker that would guarantee CTL * formulas, e.g. AG.Request->(AF Response). [It is always true (G=global) that a request will always eventually (F=future) produce a response. That is, I haven’t overlooked any paths that let a request be dropped without actually being handled.] Better yet, your model-checker can be built by Microsofties and yet have the ability to check workflow programs written by developers (or business users), precisely because you’re using a component-based model. It seems to me that a developer is going to be much more willing to modify and extend a workflow if you can give some sort of automated guarantee that he isn’t breaking something important–the function of regression tests is to increase confidence, and thus agility.

    So it would be really nice to have model-checking, or the equivalent, built into workflow at some point.

    -Max Wilson

  15. Mahalax says:

    Excellent and very useful post. Pls post more…

  16. RaghavaNarayana says:

    This is Excellent and very useful post.Can u post a Blog which explains about all the controls in Windows WorkFlow Foundation Tool Box

  17. RaghavaNarayana says:

    This is Excellent and very useful post.Can u post a Blog which explains about all the controls in Windows WorkFlow Foundation Tool Box

  18. dariusz.jankowski says:

    Very simple explanation. Very good. !!! Bravo !!!

  19. Bhushan says:

    Thanks Dave  !!  Wow provided good clarity , specially to the State Machine WF !!!

     Also come to think of it the Data Driven Flow is not always viable and can cross over to Sequential  

     sometimes or State .

     

  20. Persone los pioneros non rabata. Great…

  21. http://www.ringtones-dir.com/get/”>http://www.ringtones-dir.com/get/ ringtones site. [URL=http://www.ringtones-dir.com]ringtones download[/URL]: Download ringtones FREE, Best free samsung ringtones, Cingular ringtones and more. [url=http://www.ringtones-dir.com]samsung ringtones[/url] From website .

  22. http://www.ringtones-dir.com/get/ ringtones site. Download ringtones FREE, Best free samsung ringtones, Cingular ringtones and more. From website .

  23. lesbian rape says:

    Best of all people w can talk…

  24. Dean Tuckerman says:

    This is Gold ! The framework is visionary and this article is a beacon of clarity. I was on the edge of abandoning further investigation of Workflow Solutions on the basis that its purpose was incomprehensible. Ironic indeed now that I understand how it is intended to bring simplicity to my workplace. Thanks for the insight.

  25. Problematica says:

    Here are the&amp;nbsp;Windows Workflow Foundation&amp;nbsp;articles that I have found useful:

    What Is Windows…

  26. Anup Shah says:

    Good effort my friend..

    really useful.

  27. Anup Shah says:

    Hoping to see more examples on finalising aproach of selecting type of model..

  28. John Kruse says:

    This was very helpful. I’m new to this, and I would like to understand more about the role of business rules in all this. You mentioned rules… but didn’t mention the MS Business Rules Engine and authoring capability. I want to know more about judgement calls regarding whether some logic should be in workflow or in rules… or is that even a good question?

  29. sonali says:

    Can you please give some information on Data-driven workflows .

    I don’t see any example or good article on it

  30. doima says:

    nice site man ! htpp://site.com

  31. Natalia B. says:

    Here are the&amp;nbsp;Windows Workflow Foundation&amp;nbsp;articles that I

    have found useful:

    What Is Windows…

  32. H Dan Smih says:

    Excellent – for a non-technical workflow person.  We who would presume to design a workflow and then ask someone else to build the pieces in Sharepoint need this kind of overview on the logic of the systems.  Indispensible.

  33. Orin Belfer says:

    I don’t know what there is to do with this.

  34. Matthew says:

    Dave,

    I found this explanation very usefu, i think there should be more articles on WWF like yours!

    Good use of simple understandable scenarios.

  35. Jay says:

    Hi,

    I am trying to implement bug tracking system using windows workflow. I am already running a bug tracking system which is non windows workflow based.

    My doubt is – how should I handle my earlier bugs which have their own states (e.g. Open/ Resolved/ Need more clarification/ Closed) while creating this workflow based bug tracking system?

    Please guide.

    Thanks in advance

  36. 911thedebt says:

    The framework is visionary and this article is a beacon of clarity. I was on the edge of abandoning further investigation of Workflow Solutions on the basis that its purpose was incomprehensible. Ironic indeed now that I understand how it is intended to bring simplicity to my workplace.

  37. Max says:

    Someone else below asked this already.

    I am getting nailed with Spam in my website for our blog website. Is there anyway to stop this? If not, there really isn’t any point in leaving it up and active. Any help will be greatly appreciated. http://www.profesjonalna-reklama.pl

    Thanks Keep up the good work. Greetings from Poland

  38. Brautkleider says:

    Do you think you can delete all the blo…. spam here… I think this is not the right place to set links to a lot of unserious pages..

  39. Yannkes says:

    Fantastic article covering some points I really needed some good usability info for.

    Best regards from Poland

    <a href="http://www.aerofun.gsi.pl"&gt; Tanie linie lotnicze</a>

  40. Yannkes says:

    Fantastic article covering some points I really needed some good usability info for.

    Best regards from Poland

    http://www.aerofun.gsi.pl

  41. bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb says:

    mmmmmmmmmmmmmmmmkkkkkmmmmnhhvvvvvccxxZZZZZHAHAaDdddddeeeeetttttggbbnnjjuh,mlkl;n

  42. mmmmmmmmmmmmmmmmkkkkkmmmmnhhvvvvvccxxZZZZZHAHAaDdddddeeeeetttttggbbnnjjuh,mlkl;n

  43. Great post… really useful…

    Thanks.

  44. Satish says:

    this is good article. Keep posting so that people like can take benifit and can say thank to you.

  45. Meble says:

    Enjoyed browsing through the site. Keep up the good work.

    Greetings

    http://www.mebs.pl

    http://www.subasta.pl

  46. Onlineshop says:

    Keep up the good work!

    Thanks it helps me a lot…

    I think these blog is really useful for new comers and Excellent resource list.

  47. Please most more blog entries Dave.  :-)

  48. n my opinion it`s a very helpful article. Thanku You for this!

  49. perfect page and stuff. i like it really.

  50. Hi,

    The upcoming release of the inchl framework adds support for Windows Workflow Foundation,

    enabling the use of sequential workflow for the ASP.NET platform.

    http://www.inchl.nl/recordings/inchl.framework.workflow.wmv”>http://www.inchl.nl/recordings/inchl.framework.workflow.wmv

    The light weight version of the framework (including Windows Workflow Foundation support)

    is freeware and will be released shortly.

    For more information visit my website:

    http://www.inchl.nl

    Kind regards,

    Stephan Smetsers

    stephansmetsers@hotmail.com

    http://www.inchl.nl

  51. lol MS and useful information – I’m impressed :)

    keep it going!

  52. what can i say? you made my day… you cannot imagine how timely your informations came. thanks a lot!

  53. gutschein says:

    Very interesting informations.

    Greetings,

    Markus

  54. Thanx for the clear examples, students who are doing a project on WWF were referring to this blog and find this blog very useful.

  55. LR says:

    Very nice and interesting site.  

  56. Liesha says:

    Very helpful explanation…Thanks

  57. Vertrag says:

    Great for this document i`m search many days in the world wide web,but now i found this information on your site.

    Thanks for help,thats the answer of all my questions i`v had

    Thanks again

    Timo

  58. Onlineshop says:

    I think these blog is really useful for new comers and Excellent resource list.

    It´s a very interesting Blog and simple answer of many questions.

    Keep up the good work!

    Thanks it helps me a lot…

  59. JK says:

    This is very useful, simple concise and clear.

  60. otilie says:

    Great site. Thanks for the helpful article. Keep up the good work.

  61. Great and excellent article t’s realy helpful. Thanks again. I will visit it again.

  62. It´s a very interesting Blog and simple answer of many questions.

  63. Katalog says:

    Great and interesting article.

  64. Thermage says:

    It´s a very interesting Blog and simple answer of many questions.

  65. great site with very good look and perfect information…i like it

    http://www.fliesen24.de

  66. gutschein says:

    I searched a long time for such an great article. Thank you very much.

  67. Autostrada says:

    Better yet, your model-checker can be built by Microsofties and yet have the ability to check workflow programs written by developers (or business users), precisely because you’re using a component-based model. It seems to me that a developer is going to be much more willing to modify and extend a workflow if you can give some sort of automated guarantee that he isn’t breaking something important–the function of regression tests is to increase confidence, and thus agility.

  68. Autostrada says:

    Better yet, your model-checker can be built by Microsofties and yet have the ability to check workflow programs written by developers (or business users), precisely because you’re using a component-based model. It seems to me that a developer is going to be much more willing to modify and extend a workflow if you can give some sort of automated guarantee that he isn’t breaking something important–the function of regression tests is to increase confidence, and thus agility. – http://www.kiermasz.info

  69. Absolutely great information – thanks for posting!

    http://www.markenrecht.eu

  70. HOTEL GRILLI says:

    Thanks so very much for taking your time to create this very useful and informative site!

    http://www.hotelgrilli.com

  71. This site is interesting and very informative, nicely interface. Enjoyed browsing through the site

  72. I was looking for any article about this from several weeks. And I foud it here. Many thanks. Good job, man.

  73. banery says:

    Great work ! I really enjoyed browsing through this site. I will recommend it to my friends. Greetings

  74. Bielizna says:

    Thank you very much!

    Exactly what I’ve been looking for.

  75. Good :)

    <a href="http://zyczenia.fajne.org/&quot; title="Życzenia"><b>Życzenia świąteczne</b><a>

  76. darmowe mp3 says:

    This site is interesting and very informative, nicely interface. Enjoyed browsing through the site

  77. Programy says:

    Very impressive. . Keep up the good work!

  78. svt says:

    Ten i wszystkie blogi na ktorych sie dopisujecie maj atrybuty rel="nofollow"

    takie info dla subasta i wsystkich odwiedzajacych

  79. Katalog says:

    Very Cool. I’ve listened to the radio show before but wasn’t aware of the history. Deborah sounds like a cool chick

  80. Cool site! Your website is a powerful tool for the visitors!

  81. Biurka says:

    I think that if one lacks the motivation, anything one tries out, like writing, painting, coding, …, is doomed to fail. At least that’s what my experience says.

  82. senior says:

    My message to all of you up there  is simple: If you don’t have a dog, get one.

  83. Linki says:

    Som people here should just shut up

    http://www.svt.pl  pozycjonowanie, skrypty, animacje

    http://www.agtile.com  granite, marble, countertops vanity tops

    http://aidnieruchomosci.pl   nieruchomości, mieszkania, domy

    http;//www.bialgora.net  noclegi, wakacje, nad morzem

  84. domains says:

    Ooops, my mistake, here it goes again:

    http://www.bialgora.net  noclegi, wakacje, nad morzem

  85. deltatheta says:

    you get in, turn the ignition key on your car and all you get is a depressing clunk… Then you get out again, come here and WOW! some movement in the air!

  86. Hi Aaron this is a verry interesting article. I know you descripe the real live. Thank you and greets from poland

  87. great site with very good look and perfect information…i like it

    <li><a href="http://www.ctr.pl/produkty/rejestratory-dvr/index.html">rejestratory cyfrowe </a></li>

  88. great site with very good look and perfect information…i like it

    http://www.kamery.pl

  89. MZA WARSZAWA says:

    this is good article. Keep posting so that people like can take benifit and can say thank to you.

    http://www.mza.pl

    http://www.eb.com.pl

    http://www.biuroochrony.pl

  90. Aukcje says:

    Thanks so very much for taking your time to create this very useful and informative site. I have learned a lot from your site. Thanks!!

  91. ZahnShop.net says:

    It´s a very useful article. Thanks!

  92. Alicja says:

    great site with very, very good look and perfect information…i like it

    http://www.alicja.pl

  93. I think these blog is really useful for new comers and Excellent resource list.

    It´s a very interesting Blog and simple answer of many questions.

  94. kody do gier says:

    This is Excellent and very useful post.Can u post a Blog which explains about all the controls in Windows WorkFlow Foundation Tool Box

  95. cracki says:

    what can i say? you made my day… you cannot imagine how timely your informations came. thanks a lot!

  96. Can you please give some information on Data-driven workflows .

    I don’t see any example or good article on it

  97. Darius says:

    It´s really helpful and Excellent post! Implementing this style in Windows Workflow Foundation is very simply. Thanks Darius.

  98. Tapeten says:

    Great and excellent article t’s realy helpful. Thanks again.

    Wow. Very impressive.

  99. Very impressive. . Keep up the good work!

  100. podsłuchy says:

    Absolutely great information – thanks for posting!

  101. podsłuchy says:

    Absolutely great information – thanks for posting!

  102. deltatheta says:

    Good post Greg, I’ll have to try this out, Thanks!

  103. kamery Bosch says:

    great site with very, very good look and perfect information…i like it

  104. Clearly, it would be possible to model all workflows in this Data-Driven style.  Wouldn’t we then have only one modeling approach to worry about?

  105. Clearly, it would be possible to model all workflows in this Data-Driven style.

  106. Andreas says:

    i believe at this position the spammer starts …

  107. Ravi Rawat says:

    Excellent Job Dave. Thanks a Lot for providing all the workflow information in a nutshell.

  108. shopautodotcaseocontest says:

    thanks. great post dave. i always looked at workflows differently than everyone else.

  109. Very impressive. Supreme concept of a personalized web portal. I look forward to using this as my browsers’ start page. Keep up the good work!

  110. I think these blog is really useful for new comers and Excellent resource list. It´s a very interesting Blog and simple answer of many questions.Keep up the good work!

    Thanks it helps me a lot…

  111. webkatalog says:

    A quite intresting idea is realized in this website!

  112. John says:

    Great site.We want more like that

    http://www.mp3darmowe.com/

  113. Very great and excellent article. It’s realy helpful. Thanks again.

  114. Tapeten says:

    I think these blog is really useful for new comers and Excellent resource list. It´s a very interesting Blog and simple answer of many questions.Keep up the good work!

  115. Agro says:

    Very good blog – I will visit you more time – best regards.

  116. Fantastic article covering some points I really needed some good usability info for. Best regards

  117. Good Post, and helpful , any information on Declarative Workflows

  118. partnersuche says:

    Thanks, i was desperately looking for that info!, great and excellent article, it’s realy helpful. Covering some points I really needed, really useful.

  119. Good article, thanks a lot for putting all this together.

  120. A very interesting site, I think. The Idea of Technology was new for me but worth to be read and thought about it (although I’m not a native english-speaker and have some difficulties with this language)

  121. janek says:

    counter strike , maps http://www.counter-strike.org.pl bots download http://www.wiaderko.com much stuff

  122. Great and excellent article t’s realy helpful. Thanks again.

  123. Srebro says:

    microformated content to their sites because it is the right thing to do, but that is kind of like answering “which came first, the chicken or the egg?” with “the egg came first, because it was the right thing to do.”

  124. Thanks, i was desperately looking for that info!,

  125. Johniemp3 says:

    Darmowe mp3 coraz powszechniejsze

    Legalna darmowa muzyka w sieci to nie tylko sklepy muzyczne oferujace plyty oraz muzyke w popularnym formacie <a href="http://www.mp3darmowe.pl">mp3</a&gt;. Niejako uzupelnieniem powyzszych sa strony internetowe oferujace uzytkownikom mozliwosc sciagniecia darmowe mp3.Czesto takie serwisy oferuja do sciagniecia <a href="http://www.mp3darmowe.pl">darmowe mp3</a> tworzone przez debiutujace zespoly badz DJ’ów, którzy staraja sie dotrzec do szerszej publicznosci za pomoca najlepszego i najbardziej dostepnego medium, jakim jest obecnie Internet.Oprocz darmowych plikow mp3 Coraz wieksza role odgyrwaja takze teksty piosenek i teledyski.Dlatego tez coraz szersze grona wykonawcow umiesza w internecie zarowno swoje <a href="http://www.mp3darmowe.pl/teksty.php">teksty piosenek</a> jak i <a href="http://www.mp3darmowe.pl/teledyski.php">teledyski</a&gt;.Publikujac w internecie teledysk, tekst piosenki oraz mp3 mamy komplet informacji o danej mp3.

  126. Johnieemp3 says:

    Darmowe mp3 coraz powszechniejsze

    Legalna darmowa muzyka w sieci to nie tylko sklepy muzyczne oferujace plyty oraz muzyke w popularnym formacie mp3 na http://www.mp3darmowe.pl

  127. Jetski says:

    Very helpful explanation…Thanks

  128. versicherung says:

    If you don’t have a dog, get one.

  129. Fantastic article covering some points I really needed some good usability info for.

  130. Very good work admin, thank you for the special article.

  131. A quite interesting idea is realized in this website! And a good and easy to handle design has been found too!

  132. Yep, that helped ! Keep the good stuff coming :-) Thanks……

  133. tensor says:

    This posting is really helpfull to me.

  134. Langeoog says:

    This was very helpful. I’m new to this, and I would like to understand more about the role of business rules in all this. You mentioned rules… but didn’t mention the MS Business Rules Engine and authoring capability. I want to know more about judgement calls regarding whether some logic should be in workflow or in rules… or is that even a good question?

  135. probalance says:

    is there any information in spanish??

    regards

    peter

  136. It´s a very interesting Blog and simple answer of many questions

  137. Great site.We want more like that

  138. Praca says:

    I really enjoyed reading this posts. Greetings..

  139. Dean says:

    Very interested idea. good luck

  140. Torrent says:

    Some people asked for new features; others were wondering if formerly deprecated

    elements would return; some had comments and criticisms about the decision itself,

    the WHATWG or W3C process; and a few raised concerns about the WHATWG and W3C

    ignoring the needs of particular groups.

  141. Torrent says:

    Some people asked for new features; others were wondering if formerly deprecated

    elements would return; some had comments and criticisms about the decision itself,

    the WHATWG or W3C process; and a few raised concerns about the WHATWG and W3C

    ignoring the needs of particular groups.

  142. T-Shirt Blog says:

    Echt tolle Siete, in Deutchland findet man wenig Infos zu diesem Thema.

  143. great site with very good look and perfect information…i like it

  144. It’s very good article. Can i translate this and insert on my site in Poland?  Thanks


    <a title="Apteka internetowa" href="http://sklep.apteka-cito.pl/&quot; >Apteka internetowa</a>

  145. Ferien DK says:

    Just what I was looking for. Thanks

  146. Klaus Adrian says:

    900 Internetseiten voller Infos und Preise für Türen, Schiebetüren, Haustüren und Treppen und mehr. 1000 qm Ausstellung bei ADRIK in Ronneburg

  147. sven says:

    http:www.livecambox.de   Livecams without money

  148. Bhavin says:

    Yes, Dave has really summarized it very well. This information is really helpful in selecting the type of WF.

  149. Colostrum says:

    Absolutely great information – thanks for posting!

  150. prestijceviri says:

    Good use of simple understandable scenarios.

  151. J Batista says:

    Cool explanation. I’m new to this and I intend to develop an asp.net workflow-based application that will allow end-users to build their own workflows. So everything will be build dynamically (attributes, edit components et all).

    Where do you suggest me to start?

    Thanks a lot for the article!

    jbatista.br@gmail.com

  152. Poul says:

    Thanks for very interesting article. btw. I really enjoyed reading all of your posts. It’s interesting to read ideas, and observations from someone else’s point of view… makes you think more. So please keep up the great work. Greetings <b><a href="http://solarisnet.pl&quot; title="Książki Solaris">Księgarnia internetowa</a></b>

  153. Poul says:

    Thanks for very interesting article. btw. I really enjoyed reading all of your posts. It’s interesting to read ideas, and observations from someone else’s point of view… makes you think more. So please keep up the great work. Greetings  http://solarisnet.pl

  154. Serg says:

    Fantastic article covering some points I really needed some good usability info for.

  155. andi says:

    http://ww.amateurtagebuch.de .. nice amateurblog, nice girls

  156. Petra says:

    nice young girls and boys…non profi … http://www.adult4friend.de

  157. Sabrina says:

    well site.. well content.. its funny.. http://www.naked-sexy.com

  158. Rainer says:

    Do you collect spam and trash here?

  159. Onlineshop says:

    Thanks for very interesting article. btw. I really enjoyed reading all of your posts. It’s interesting to read ideas, and observations from someone else’s point of view… makes you think more. So please keep up the great work. Greetings.

  160. ballonformen says:

    Hi, nice web – site, and thanks a lot for all the useful informations, kind greetings

  161. Peter says:

    Nice Amateursite.. come and see

  162. Hotel Bayern says:

    Fantastic article covering some points I really needed some good usability info for.

    Greetings from Germany

  163. Rejsy morskie po morzu Śródziemnym

  164. Ischia says:

    It´s a very useful article. Thanks!

  165. Backlink says:

    Very good site, is interesting and very informative, nicely interface.

  166. It´s a very interesting Blog and simple answer of many questions.

  167. interesting vision of workflow style.

  168. Bank zdjec says:

    Do somebody know a german website about this topic? I don`t speak english very good.

  169. Very helpful explanation…Thanks

  170. Transport miedzynarodowy-Trans-poland-Tir

  171. Hi,

    wonderful site you have made, thanks and kepp on doing

  172. I think this is a very good site and imforative. Possible somebody can translate it into german and this would be very helpful for people who can not speak english. Best regards A.K.

  173. Yes this site definitly should translate into more language`s – fantastic site

  174. ludo says:

    I am interested in the topics discussed but have been feeling a little intimidated by the thought of the work

  175. Hi, great stuff programmed by you, thanks for that

  176. Hi, great stuff programmed by you, thanks for that

  177. kredi says:

    very instristing article. i love it

  178. optik trick says:

    Always a good thing the read some information on your web – site , thanks

  179. blade4246 says:

    very useful and interesting, thank you!

  180. Always a good thing the read some information on your web – site , thanks

  181. kredi says:

    really great.

    its works better. thx

    good luck in future projects

  182. Thanks for the explanation. It’s really good.

  183. Thanks for this great and interesting site!

  184. Gry says:

    A great read, very informative. Been looking for a blog like this one for a while. Keep up the good work.

  185. Kata says:

    It’s very intresting. I admire you because it’s briliant article

  186. Prasa says:

    Great article! It was very intresting, i’ve learn a lot.

  187. Thanks for very interesting article. btw. I really enjoyed reading all of your posts. It’s interesting to read ideas, and observations from someone else’s point of view… makes you think more.

  188. For me an very good article which covering some points, really good!

  189. Soledad Pano says:

    This post was originally published at http://solepano.blogspot.com I have started to play with Windows

  190. Hi Dave, why did you stop blogging? You’ve an interesting view and helped me to rethink our support-workflow…

  191. This article is very interesting and written by some clever guy.:) Thank you!

  192. kalendarze says:

    hey! your article is great. thanks

  193. Thanks for this article. I like your posts

  194. openPeople says:

    Indeed, i appreciate with Rene. Dave, why did you stop blogging?

  195. Could you give an example for C#?

  196. ksero says:

    Thanks for very interesting article.

  197. Last Mimzy says:

    Thanks for help, Keep up the good work

  198. Żeglarstwo says:

    I really find this article usefull… Great job.

  199. Great site with very good look and perfect information.

  200. netsearch says:

    Hey

    Excellent stuff Dave. But considering most of my apps will be WinForms I am struggling to picture where in a typical WinForms app I will need a workflow. E.g. I have an Sales Order Entry app. Would this standard type of app be a candidate for a workflow?

  201. Thanx a lot! This is very useful.

  202. Wybielanie says:

    So many comments with good words. Nothing else to add. Very good job. I`m impressed.

  203. domeny says:

    Always a good thing the read some information on your web – site , thanks

  204. Fliese says:

    A very interesting artikle Dave.

  205. LR says:

    a bit complicated first, but really helpfull. Thanx!

  206. very nice article and site with many information.

  207. Skischule says:

    Fantastic article covering some points I really needed some good usability info for.

  208. Randki says:

    Very impressive. . Keep up the good work!

  209. Dance says:

    Thanks for very interesting article. btw. I really enjoyed reading all of your posts. It’s interesting to read ideas, and observations from someone else’s point of view… makes you think more. So please keep up the great work. Greetings.

  210. Winterurlaub says:

    This article is very interesting and written by some clever guy.:) Thank you!

  211. It’s very intresting. I admire you because it’s briliant article

  212. hey! your article is great. thanks

  213. Thanks for very interesting article. btw. I really enjoyed reading all of your posts. It’s interesting to read ideas, and observations from someone else’s point of view… makes you think more. So please keep up the great work. Greetings

  214. Merseburg says:

    Fantastico article covering some points I really needed some good usability info for.

    Best regards

  215. Very impressive. . Keep up the good work!

  216. many information. in agreat article

  217. Fewo Dorum says:

    Thanks for this great and interesting site!

  218. A interesting article, top infos! Thanks

  219. LR Aloe says:

    I will try to transplate your text in spanish language.

  220. "Dave Green’s WebLog" –  Good work. Cogratulations

  221. This is Excellent and very useful post. Thanks for top infos

  222. Texte kaufen says:

    Thanks so very much for taking your time to create this very useful and informative site!

  223. Fliesen says:

    Useful and informative articel, that helped really much

  224. Thanks so very much for taking your time und lets hope your article will help a lot of people

  225. AKHIL KATYAYAN says:

    Thanks a lot, this article helps me lot  to understand the workflow

  226. craciun says:

    Thanks for very interesting article. btw. I really enjoyed reading all of your posts. It’s

    interesting to read ideas, and observations from someone else’s point of view… makes you

    think more.

  227. Good Post, and helpful , any information on Declarative Workflows

  228. Michael says:

    Hi,

    how workflow is used is a pretty difficult thing to realise.

    So this is an interesting article to read.

    Regards

    Michael

  229. Hotel Ischia says:

    Absolutely great information – thanks.

  230. Great site.We want more like that.

  231. Hip Hop Shop says:

    Thanks for very interesting article. btw. I really enjoyed reading all of your posts. It’s interesting to read ideas, and observations from someone else’s point of view… makes you think more. So please keep up the great work…..

  232. programy says:

    Very impressive. . Keep up the good work!

    http://www.netprogramy.pl

  233. <p>Eine wirklich gute Seite mit vielen nützlichen Informationen – danke.</p>

    <p><a href="http://www.markenrecht.EU">www.markenrecht.EU</a&gt; </p>

  234. hai,

    its  a supurb ..missing few example of data driven./

  235. Craig says:

    Will there by any other workflow styles in for visual studio 2008?

    Cheers

    Craig

    http://www.webandflo.com

  236. sharp aquos says:

    Your insight is very helpful  Dave, don’t blog fast aand dry young on us now 😉

  237. mitesh says:

    Greate job – smart and simple explanation

    seems to be a perfect information.

  238. sprzedaje says:

    bardzo fajny artykul – pozdrowienia z Polski

  239. Gira says:

    Very nice article. Thanks for taking the time to write it down. Keep up the good work.

  240. Ashwani says:

    Nice article. Clears a lot of design related dilemmas.

  241. Thanks for this very good article

  242. Kunstforum says:

    There are many useful informations in this article. Thanks and greetings from Thuringia!

    <a href="http://www.dukasi.de/Kunstforum"<Kunstforum&gt; </a>

  243. Kunstforum says:

    There are many useful informations in this article. Thanks and greetings from Thuringia!

  244. lilupat says:

    very useful information. Thanks

  245. Nico says:

    It´s a very interesting Blog. Many thanks for this explanation.

  246. Thanks for this grate article.

  247. Complete ez money payday loan supermarch� casino

  248. Aussi gratis polyphone klingelt�ne ge card services online credit

  249. By means of cash advance detroit advance cash day loan pay

  250. Great posting! Continue writing!

  251. j. says:

    I can’t believe that Microsoft doesn’t edit out some of the crappy spam links on this page. Absolutely stupid.

  252. RS says:

    Thanks for this very interesting article.

  253. D-k says:

    I found this information really helpful

  254. Wolfgang says:

    Thank you for your information. It was very helpful.

  255. Wari says:

    Great article, i’m beginner in workflow, now understandig the concepts.

  256. Dekoration says:

    Thanks for this really useful article.Great cheat sheet, I appreciate it very much.

  257. Hängematten says:

    Thank You for another very interesting article. It’s really good written and I fully agree with You on main issue, btw. I must say that I really enjoyed reading all of Your posts

  258. Iris says:

    Great blog here on blogs.msdn.com and specially from Dave Green.

  259. tlroz says:

    Thank you for your information. It was very helpful.

  260. It´s a very interesting Blog. Many thanks!

  261. Ares says:

    Thank you.. I am a beginner.. but this helped out alot!

  262. Silberringe says:

    i find the american blogs more interessting then german blogs. and there is more quality in the blogs.

    compliment and so on.

    best regards

    c.

  263. Very nice and interesting site.

  264. Opony says:

    It´s a very interesting Blog. Many thanks for this explanation.

    Regards

  265. One week ago i asked myself a similar question concerning the styles of workflow, but didnt find the right site, umpf. :)

  266. hanover says:

    It´s a great blog.  It was very helpful.

  267. GreenNet says:

    Very nice and interesting site for me. Thanks a lot!

  268. Great posting! Continue writing!

  269. Thank you for your information. It was very helpful.

  270. This is very useful, simple concise and clear – compliment and so on

  271. Thanks for all this very interessting articles!

  272. john says:

    Hi

    I work with BizTalk server 2006 and I have a big problem with it, I will be thankful if you can help me.

    I want to create a process in BizTalk orchestrator which runs in SharePoint and assign tasks to users.

    I can create process and run it in SharePoint but all tasks (of process) is run for one user, So my problem is how to assign each task to each user (SharePoint users).

    Best Regard

  273. Alex says:

    Thank you for this perfect information. It is really helpful

  274. merten says:

    Thanks for very interesting article.

  275. wangjunwei says:

    good start point here for newbie as me, Thanks a lot!

  276. Reinhard says:

    Hi there,

    thanks for this helpful information.

    Rgds Reinhard

  277. Santosh Mahto(san) says:

    I have to start working on WWF and this article helped me alot understanding which workflow should be used in what sinerio, thanks!

  278. luggage says:

    I really wish that these kind of resources were available years ago… or, should I say, that years ago I knew where to get these kind of resources (given that this post is 3 years old.) This kind of way of looking at workflow would have greatly assisted us in the Logistics industry, even, many years ago when we were going through some major process issues. Of course, that was when I was in Logistics – and now I’m not. And, now, I know how to access this kind of info… it figures, I guess…

  279. Very nice and interesting site for me.

  280. rugs says:

    I was reading another blog about “State Machine” and I couldn’t make heads or tales of what they were talking about. What a coincidence – as I now have stumbled onto this blog and I see you’re also talking about “State Machine”. IT makes a whole lot of sense now what it’s all about and what it’s used for, and I think I can make total sense of the other guy’s blog now. I wish we had workflow eight years ago!

  281. This week, we’ve added two new articles for WF to the MSDN Online Library : an article by Jon Flanders

  282. roc says:

    Great and excellent article it’s realy helpful. Thanks again.

  283. bioderma says:

    Great and excellent article it’s realy helpful. Thanks again.

  284. Excellent stuff Dave. But considering most of my apps will be WinForms I am struggling to picture where in a typical WinForms app I will need a workflow. E.g. I have an Sales Order Entry app. Would this standard type of app be a candidate for a workflow?

  285. vichy says:

    This is interesting article, I did not it think that it yes. Interesting it knew persons about this how much. Sorry if I wrote bad there now my English is novice and I do not it write yet good

  286. Acai Berry says:

    Wow that was very interesting. My workflows look more like giant spiders attacking a villiage :)

  287. Cool, pretty interesting! Keep up the good work!

  288. Kochmesser says:

    Wow exciting article!

    Very useful and very interesting.

    Keep ist up. Thx

  289. I guess that mist people here did not even read the article.

    They just say anything.

  290. vinuthan says:

    really nice blog…it was helpful…

    i would like to know the approach for following use case:

    i have a simple workflow where a manger can approve or reject a request. the workflow exists in In Review, Accepted and Rejected status. The no of status’s to which the task gets transitioned to 2 is just 2 (accepted or rejected) .

    Ideally this might have to be implemented using a State machine workflow.

    Can we implement this as a Event Driven Sequential workflow. (Using the CallExternalMethods or HandleExternalEvent activity)

    Which is a better approach.?

  291. Girishgouda says:

    I am working on a task in SharePoint where we need to develop the following scenario

    We need to develop a product development Lifecycle in SharePoint

    1.1.1     Create Product Development Plan

    Primary Actor – Project Manager

    The project manager is notified of the new product development comprising one or more competencies.  Project manager creates the product development plan and assigns tasks to a writer.  

    After product review the Project Manager updates the project schedule and assigns any rework back to the Writer.

    1.1.2     Develop Product

    Primary Actor – Writer

    The Writer creates or updates the product based on product development guidelines.  Write at later stage also incorporates feedback from the reviewers in to the product.

    1.1.3     Develop Assessment Instrument

    Primary Actor – Writer

    As part of product development process, the Writer creates an assessment instrument.

    1.1.4     Access Product Development Guidelines

    Primary Actor – Writer

    Secondary Actors – Reviewer, Editor

    Comprehensive product development guidelines have been developed by the department. The writer is required to develop product based on these set of guidelines. Editor and Reviewer also assess the material against these guidelines.

    1.1.5     Edit Product

    Primary Actor – Editor

    The Editor makes editorial changes to the product and assessment instrument.  Upon completion the material is submitted for review

    1.1.6     Review Product

    Primary Actor – Reviewer

    The reviewer reviews the product and assessment instrument.  If changes are required, the product and assessment instrument are passed back to the Project Manager to schedule updatesReview Product

    Primary Actor – Reviewer

    Reviewer’s comments are discussed in a meeting and the feedback is officially formally collected using review forms.

                   Kindly provide your inputs and revert back for any clarification.

    Thanks

    Girish

  292. @ Girishgouda: I am sure it would interest many people here if you post your blog URL. For sure you have written more about it.

  293. BPM software says:

    Very useful and very interesting

    Thanks

  294. What is the Windows Workflow Foundation roadmap?

  295. Manduca says:

    Thanks for the stuff david, it was very helpful for me.

  296. Thanks for very interesting article.derek

  297. Cool stuff … Interesting stuff

  298. We want to build a workflow to handle this scenario. 😉

  299. Thanx for the clear examples, students who are doing a project on WWF were referring to this blog and find this blog very useful.

  300. Thank you author for interesting information article

  301. euro wybory says:

    Thanks for this grate article.thanks….

  302. LR says:

    This is Good ! The framework is cool and this article is very informative.

  303. Absolutely great information…good site

  304. Absolutely great information – thanks for posting!

  305. Wow exciting article!

    Very useful and very interesting.

    Keep ist up. Thx

  306. Versicherung says:

    Thanks for this good ideas. Realy this is a great article. Top Versicherung im Vergleich

  307. Thank you for your information.

  308. Thanks for very interesting article.

  309. FUE says:

    Great article with interesting points. I Like the informations, thank  you!

  310. Mwamba says:

    I found this article during surfing. I also was thinking which style I could use and this gives me good ideas.

  311. Manduca says:

    Thanks for the useful infiórmations, its an older article but it helps me a lot ,

    Please continue your infos in the Blog.

  312. kienph says:

    I think there are only 2 types of workflows.

    "Workflows come in two varieties: sequential and state machine."

    Refer from page 60 in "Pro WF Windows Workflow in .NET 3.0" publish by Apress.

  313. Very useful article, thanks for your thoughts! I wrote my thesis about this topic, unfotunately I found your blog until now… But your summary is very good!

    all the best,

    olli

  314. Werbetechnik says:

    Thanks for this very interesting article.

  315. Thank you for your information.

  316. Hello, this article was really helpful.

  317. Arun Antony says:

    Thanks for this great insight on workflow rules to decide on which workflow technique to use. This article is really helpful as its very simple and explains in a very practical summary.

  318. Dennis says:

    Brilliant Job Dave. Thanks a Lot for all the workflow information. I needed them for my study in Germany.

    But now i have to work on my boss’s Homepage http://www.strandkoje.de and http://www.immobilien-hillmer.de  Hope to hear more from you in your blog. Greetz from Germany Dennis

  319. Thanks for this good ideas. Realy this is a great article. Top Pferdehaftpflicht Versicherung im Vergleich

  320. This is Good ! The framework is cool and this article is very informative.

  321. versicherung says:

    Absolutely great information – thanks for posting!

  322. Thanks for this grate article.thanks….

  323. Excellent and very useful post. Pls post more…

  324. Obozy konne says:

    Thanks for this grate article.

  325. Very useful and very interesting

  326. Thanks for the useful infiórmations

  327. Thank you fpr the useful Informations!

  328. Thankyou for this grate article.thanks….

  329. JoJo says:

    This article is great and very helpful.. Thank you.

  330. Thanks for this useful information, keep it up! thx

  331. Keep posting so that people like me can take benifit and can say thank to you.

  332. Thanks for this useful information!

  333. Trauringe says:

    I´d wish we had such good blogs over here in Germany! Absolutely great information – thanks for posting! THX Trauringe

  334. Peter says:

    Good article, waiting for more

    Greetings from <href="http://www.kammerjaeger-hamburg.de&quot; target="_blank">

  335. strom says:

    Thank you for your interesting blog.

    http://www.mybest24.com

  336. Samuel says:

    Solaranlagen Gerenda Solar sagt  Danke – http://www.gerenda-solar.de

  337. Henrik says:

    Interesting blogging anyway http://www.auslands-job.de

  338. Lucie says:

    Was ist besser Flachkollektor oder Röhre? – http://www.flachkollektor-solar.de