8

I have to create a workflow in C# capable of moving an object (persisted as a database record) through an approval workflow where people are required to perform some sort of action or validation.

We initially looked at Windows Workflow Foundation but shied away from it because it seemed so infrastructure-heavy (and besides we don't really like Microsoft products). We looked at ObjectFlow because it's lightweight, but I'm having trouble figuring out how to persist & resume workflow states. It almost seems like it's too lightweight.

Does anyone have a particular favorite framework for doing workflow? I'm open to ideas (even to WWF, if you can explain why it's your favorite).

2
  • 1
    Did you have a look here? stackoverflow.com/questions/3634901/… Commented Mar 4, 2011 at 19:52
  • @gsharp - that question was asked last year. Has the situation changed much since then? Commented Mar 4, 2011 at 20:47

4 Answers 4

11

Now at the end of 2022 I recommend Elsa Workflows library which is free and open source. In this case, state machine workflows would work. I have used it in multiple projects witch success. It is flexible, has a web workflow designer and acceptable documents

Sign up to request clarification or add additional context in comments.

1 Comment

Link which you provided is broken. @MD Zand
3

As the question @gsharp linked to says, WF 4 isn't entirely easy to use. However, ObjectFlow has an easy fluent interface that is light and built with solid design principles. Given the apparent lack of decent workflow frameworks, I decided to pitch in and extend ObjectFlow with an IStatefulWorkflow that contains a .Yield() method capable of yielding workflow processing to the calling method so that it's state can be persisted.

The end result of my work will be a new release at codeplex in a couple weeks. Until then, you can follow my progress at github.

2 Comments

I noticed that the github repository hasn't been updated in a few years. Have your changes been merged into the codeplex project? Many thanks!
It never got merged in. The changes were so severe that it was too hard to merge them. Also, I've moved to another job and I don't really have a need for a workflow framework anymore. Sorry :(
0

Have you looked at Drools.Net?

Drools.NET is a Business Rules Engine (BRE) based on Charles Forgy's Rete algorithm. Developers can now exploit a powerful Rule Engine through a completely managed .NET code base! Drools.NET is based on Jboss Rules, and comes with all the features of that Rules Engine.

4 Comments

The documentation is thin. How easily does it fit into my application?
@kelloti - I am not a mind reader. I have no idea about your application. I know that drools is a popular rules engine/workflow engine.
Have you used it personally? Does it require an additional server? Do I setup my workflows in code, GUI or configuration file? They only have one page of documentation and it doesn't answer any of my questions. I'm sure the rules engine is powerful, but are there any good examples out there that would help me understand why it's good?
@kelloti - No, I have not used it, but have heard and read that it is (as is the java engine it is based on). From the documentation on this page it appears that you reference it in your application and use the infrastructure it provides - no server required. It appears that you setup workflows in drl files or decision tables (that can be expressed as excel speardsheets).
-1

I have recently developed a C# Workflow library that leverages the fluent syntax and provides compile time validation between workflow steps. A Workflow's steps can be consolidated in a single location providing maintainable code. The library is very light weight and performant.

https://www.nuget.org/packages/NetWorkflow

https://github.com/Tmarndt1/NetWorkflow

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.