Menu
Your Cart

StateCoder

StateCoder

Need more information on this product?

Please contact us on +44 (0)20 8733 7100 or via our online form.

Contact Us

If you are not currently a customer, you can apply for an account.

Register here


  • SKU: STATECOD


.NET namespace for creating and supporting State Machines in .NET languages.
StateCoder is a .NET namespace for creating and supporting powerful State Machines in .NET using Visual Basic .NET, C# and other .NET Languages. Typical Applications include:

  • Manage large numbers or varying numbers of asynchronous operations
  • Reduce the number of threads needed to perform background operations (especially useful for objects that support multiple clients)
  • Selective use of between-request processing for ASP.NET and Web Services can improve user response while using minimal server resources
  • Encapsulating sequences of asynchronous operations (wrapping them into a single event or wait operation)
  • Protocol Implementation. Internet or other protocols are almost always based on state machines
  • State machines can be used to parse incoming data and perform operations based on the results including generating output data in a different format
  • State machines can define transaction based objects that do not use COM+/MTS.

State machines reflect a design pattern that is fundamental to all programming but are in many cases created haphazardly producing code that is hard to support, test and modify. StateCoder's class framework leads naturally to state machine based design. The StateCoder engine executes the state machine providing efficient thread support, exception handling and other features.

StateCoder - Features

StateCoder is a .NET namespace for creating and supporting powerful State Machines in .NET using Visual Basic .NET, C# and other .NET Languages. Typical Applications include:

  • Manage large numbers or varying numbers of asynchronous operations
  • Reduce the number of threads needed to perform background operations (especially useful for objects that support multiple clients)
  • Selective use of between-request processing for ASP.NET and Web Services can improve user response while using minimal server resources
  • Encapsulating sequences of asynchronous operations (wrapping them into a single event or wait operation)
  • Protocol Implementation. Internet or other protocols are almost always based on state machines
  • State machines can be used to parse incoming data and perform operations based on the results including generating output data in a different format
  • State machines can define transaction based objects that do not use COM+/MTS.

State machines reflect a design pattern that is fundamental to all programming but are in many cases created haphazardly producing code that is hard to support, test and modify. StateCoder's class framework leads naturally to state machine based design. The StateCoder engine executes the state machine providing efficient thread support, exception handling and other features.

Features include:

  • State machines can be defined statically using attributes or dynamically
  • Flexible thread control including using a single thread to support unlimited state machines and assigning each state machine with its own thread
  • State machines can be assigned to web applications and services, running in the background between requests
  • Largely self-synchronising to eliminate the chance of data corruption, race conditions and deadlocks
  • Complete flexibility for message sources
  • Base message sources include:
    • Generic source for custom message sources
    • IAsyncResult based source for asynchronous operations
    • Stream based message source with pre-defined or custom parsing into messages.
  • Message sources can be built on Desaware base types using one or two overrides or created from scratch
  • Messages can be of any .NET type
  • Multiple message sources are allowed
  • essage sources can be re-defined for each state in the state machine
  • Message sources can include timeouts
  • Exceptions can act as message sources
  • State machines can act as messages sources to other state machines
  • State machines can invoke other state machines
  • State machines can be run by the StateCoder framework, run from a newly created framework or run synchronously
  • Fully resource driven and easy to localise
  • Per developer licensing.