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:
- Using both static and dynamic workflows
- Integrate with Castle (Monorail and Windsor)
- Utilizing queuing via MSMQ
- We want a simple, clean, non-leviathan framework.
- GUI workflow editing is not really required, but I don’t care if it has it.
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.
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.