.NET state machine written in C# supporting most UML 2 features
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
examples
src
tests
.gitignore Bug fix in transactional code Jul 16, 2013
CONTRIBUTING.md
GPL.md
MIT.md Dual licence Oct 11, 2014
README.md
RELEASES.md

README.md

state.js Logo

Executable finite state machine for .NET.

If you like state.cs, please star it.

Introduction

State.js provides a hierarchical state machine capable of managing orthogonal regions; a variety of pseudo state kinds are implemented including initial, shallow & deep history, choice, junction and entry & exit points.

State.cs is a C# implementation of a state machine library that largely follows UML 2 state machine semantics. Given the need to make this an executable model, there are certain features that are not supported, please read [UML compliance](https://github.com/steelbreeze/state.cs/wiki/UML Compliance) for more information.

Versioning

The versions are in the form {major}.{minor}.{build}

  • Major changes introduce significant new behaviour and will update the public API.
  • Minor changes introduce features, bug fixes, etc, but note that they also may break the public API.
  • Build changes can introduce features, though usually are fixes and performance enhancements; these will never break the public API.

Documentation

Documentation for the v5 release is underway...

Please see API documentation for documentation on the v4.x code base.

Building state.cs

Simply add all the .cs files and the resources to an existing or new assembly. That's it...

Usage

If you're using state.cs, please drop me a mail; I'd love to hear about how this is getting used...

License

state.cs is dual licenced under The MIT License (MIT) and GPL v3

Copyright (c) 2014 Steelbreeze Limited