Table of contents
Welcome to Windows Workflow Foundation Mono implementation.
Windows Workflow Foundation (WF) has been introduced as part of Microsoft .Net 3.0 framework (formerly called WinFX). It is a namespace and a set of tools designed for building workflow enabled applications on .Net.
The WF is implemented using three assemblies: System.Workflow.Activities, System.Workflow.ComponentModel and System.Workflow.Runtime.
Microsoft WF is a very sophisticated workflow engine that supports persistence (hydratation, dehydratation), tracking, visual design, compiling, communications, timer and rules services and it is highly extensible from new activities to new hosts. Windows Workflow Foundation also provides an extensible model and designer to build custom activities which encapsulate workflow functionality for end-users. WWF it is heavily object oriented designed and a bit overbloatted.
Microsoft also allows to define workflows using XOML (Extensible Object Markup Language) and provides a compiler for it.
This library is in pre-alpha state. Development is still in the very early stages. Bug reports are welcome, provided they don't just point out missing classes. Please use http://bugzilla.ximian.com/.
This table describes the main features provided by WF and its level of implementation.
|Activities||Collection of different tasks that a workflow can perform.||About 70% of activities are implemented|
|Communication||Different communications services from Queues to data activities||Queues and some basic communication are implemented.|
|Compensation||Role back the changes in a not finished workflow.||Not implemented|
|Compiler services||Services to build compilers from XOML||Not implemented|
|Dynamic update||Allows updating a workflow that has been already started in run-time||Not implemented|
|Persistence||Persistence with different providers including databases||Not implemented|
|Rules||Provide policy execution and CodeDOM condition evaluation||Basic rules and the main CodeDOM rules are implemented|
|Visual designers||Allow to draw the representation of a workflows on a System.Drawing surface.||Not implemented|
Some indications when contributing to this namespace:
- Contributions providing only stubs are not useful at this point. Our goal is to have a consistent and complete working implementation. New classes, enumerator or interfaces should be defined as they are need it as progress is made in the implementation.
- For every new class or behavior added to a class provide a clear test case to verify its functionality and it to the test case suite for the assembly.
- Before committing a change or propose a patch please verify that it does not break any existing test case for any of the three assemblies used to implement WF.
- Check the Mono Coding Guidelines
Tentative roadmap for WF:
- Finish all the activities (including custom ones) and rules. Been able to run the Microsoft technology samples for activities, basic workflows and the OrderStateMachine application.
- Complete all the communication services.
- Complete persistence support.
If you are interested in helping in this effort please join the email@example.com mailing list, explain your experiencie and how you can help.
Getting a copy
Currently Windows Workflow Foundation (WF) lives in the olive SVN module at mono-cvs.ximian.com subversion.
You can get a copy using an anonymous access:
You can find some samples at class/System.Workflow.Runtime/Samples/. To compile them you should use:
gmcs sample.cs -pkg:olive
- The book Presenting Windows Workflow Foundation. (ISBN 0672328488)
- The book Essential Windows Workflow Foundation. (ISBN 0321399838)
- Microsoft Windows Workflow Foundation Step by Step (ISBN 073562335X)
- Pro WF: Windows Workflow in .NET 3.0 (ISBN 1590597788)
Other open source workflow projects
- OpenWFE is an open source workflow engine. It is implemented in Java and is available under the BSD license.
- NetBpm is an open source platform for building, executing and managing workflows
- Bossa is a workflow engine written in Java