Thoughts and Experience with Workflow Foundation 4

Now that Microsoft has updated the workflow structure in Windows Workflow Foundation 4, what are your thoughts and experiences in this new structure?

I have been working with WF4 for several months, and I came across several pitfalls:

  • Unable to communicate with Workflow Services (Xamlx).
  • If an error occurs in the workflow, whether it is communication, correlation, persistence, or some unhandled exception in the workflow, it is almost impossible to say what went wrong because the trace logs tell you nothing. For example, I had an Entity Framework object as a workflow variable, and the persistence of the workflow made it somewhat difficult to serialize. Unfortunately, the absence of errors in the trace files showed that this was a problem. I went through many hours of trial and error before I realized what went wrong.
  • Some of the actions provided are insufficient. For example, I had to extend the Send action to support dynamic endpoints. Unfortunately, I could not make it fully dynamic, for example, the interface name cannot be dynamic.
  • If the workflow gets too large, the developer becomes very slow. One workflow that is larger than 100K took more than a minute to download! And forget about debugging a workflow of this size.
  • There is no continuity provider for Oracle.

Despite the pitfalls, I am very impressed with the possibilities of saving the database, the simplicity of binding actions in the designer, and the simplicity of configuring WCF services as workflow services.

I'm curious about the experiences of other developers using Workflow Foundation 4.

Edit:

I managed to solve the extremely slow constructor problem for large workflows. It turned out that there is an unsolvable import, which, apparently, causes a lot of stress for the designer.

I posted on the MSDN forums about this issue.

Update

There are many problems that we face with AppFabric, now that we are working in production. It’s clear to me that AppFabric Workflow Services is currently not ready for use. I would stay away from this until new versions are released.

+7
source share
2 answers

I think you made a pretty good summary of WF4 issues.

My main point of pain is the inability to change the definition in technological processes. This is fixed in the next version, but at the moment a big problem.

+4
source

I also had difficulties with exceptions in workflows - mainly to determine the causes of their occurrence, source and description or message. I became better at this, as I got more experience, and if I started a new project, I could debug it much more efficiently. This is just a different paradigm, and therefore one cannot approach as much as direct code.

Another problem I encountered with WF 4.0 is unit testing with WorkflowInvoker ; Specifics escaped me, but mocking dependencies and parent / child workflows were a real headache.

All in all, I really like WF 4.0, a massive improvement over 3.5. Starting in debug mode can be very slow, debugging in the designer is more of a problem than it costs, but the structure is excellent and very convenient.

+3
source

All Articles