This is a multipart question:
First, what is your personal opinion of Workflow?
Second, are there any other good .NET-based workflow engines? Some information about my usage:
I don't care whether the workflow is defined in DB, XML or Code, as however we decide to define it we can write an adapter if it's not already supported. Proprietary (free or fee) is fine, but open source is preferred.
Quick overview. Workflow Engine is the perfect solution if you are dealing with business entities life cycle management in a project. Using embedded drag&drop designer you can create processes in your system and manage your workflows via a simple API.
Elsa Workflows is a set of workflows libraries that enable workflow execution in any . NET Standard application. Workflows can be defined using C# code or using JSON. A workflow designer is provided in the form of an HTML5 web component.
A workflow engine is a software application designed to help users enforce a series of recurring tasks that make up a 'business process' or a 'workflow'. Workflow engine takes cues from the workflow's design and guides the process through its various steps. This is done by task routing, also called workflow automation.
According to Wikipedia, a workflow “consists of an orchestrated and repeatable pattern of business activity enabled by the systematic organization of resources into processes that transform materials, provide services, or process information.” Maybe Wikipedia meant to say, put more simply, “a workflow defines the steps ...
I have used http://codeplex.com/simplestatemachine in one production system successfully (an ASP.NET system for handling 350+ different government business license issuance).
A simple state machine is implemented in Boo, so we just expose the definition in a text file which the system administrator can modify. In the editor we do verification to make sure the editing is correct and the workflow is actually functional.
Today I found this, https://github.com/nblumhardt/stateless, which looks interesting.
We switched to an open source alternative simply because our experience with Workflow was not good.
I don't like the fact that workflows are persisted to the database in a binary format. It means you can't make sense of it by just looking at the database.
There is only very weak support for versioning. This means that if you update your workflow it is a real hassle to make sure any existing workflows running on the previous version can finish. You need to mess around with web.config and specify the different version's of your .dll files.
I did play around with a couple. WorkflowGen was pretty easy to use and powerful. But in the end I just decided to roll my own because we only needed workflows for simple tasks such as sending emails to suppliers when purchase orders were raised and invoices needed to be paid. I also had complete control of the source and could make modifications this way.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With