qf4net: Quantum Framework for .Net
Hierarchical State Machine and Active Objects
by Dr. Rainer Hessmer
Internal Links
Application Notes (pdf)
Version History
Source and binaries (zip)
(includes application notes and version history)

Miro Samek's Web Site
Other ports of the QHSM

Team Members
Rainer Hessmer, Ph.D. (Lead)
David Shields

We would like to thank the following sponsors
for their support:

Here you can always find the latest version of the C# port of Miro Samek's excellent implementation of a hierarchical state machine and his Quantum Framework for active objects. The application notes explain the port in more detail and the version history lists the changes between published versions of the port. The complete source code plus the binaries compressed into a zip file can be downloaded here. The zip file also includes the application notes and the version history.

For details about the general concept underlying quantum hierarchical state machines please refer to Miro Samek's Web Site (http://www.quantum-leaps.com). This Web site also provides information about Samek's book that is basis for this port.

What's New

  • May 14, 2006
    • The creation of new threads for an IQActive instance is now abstracted via a ThreadFactory paradigm. Normal and impersonating threads are supported.
  • August 18, 2005
    • David Shields provided a fix that allows static transitions to be compatible with QHsm inheritance hierarchies more than 2 levels deep. Thanks, David!
    • The source code is now directly exposed through the Subversion repository at http://svn.hessmer.org/repos/oss/qf4net/. For details about how to access the repository please see http://svn.hessmer.org/.
  • Jan 27, 2005
    • Fixed two examples that caused illegal cross-thread operation exceptions when executed under VisualStudio 2005 beta 1.
  • Jan 14, 2005
    • qf4net compiles and runs against .Net 2.1, .Net 2.0 beta1, and Mono. I got a special kick out of being able to compile and run qf4net on Linux!
    • In addition to the solution and project files for VisualStudio 2003, the sources contain a parallel set of solution and project files for VisualStudio 2005 and .Net 2.0 Beta1. Also please note that the excellent Open Source IDE SharpDevelop for Windows can directly import the VisualStudio 2003 solution and project files. On Linux I sucessfully used the MonoDevelop IDE.
    • For an additional list of changes and bug fixes, see the version history.
  • Jan 10, 2004:
    • We now have a basic implementation of the QF including the Dining Philosophers example to demo the usage. The inclusion of the QF also triggered the change of the project name to qf4net. At the same time the source code is now covered by a very open BSD-like license.
    • David Shields implemented a number of examples: Orthogonal Component (alarm clock), Reminder pattern, and Run to Completion. The latter demonstrates how to implement a hierarchical state machine that allows a long running task to be interrupted and completed later.
    • For an additional list of changes and bug fixes, see the version history.
  • Dec 21, 2003: