В моей работе есть система, которая в основном представляет собой конечный автомат, управляемый сообщениями. Он принимает различные типы сообщений, просматривает какой-то контекст/состояние на основе сообщения, а затем решает, что делать, на основе сообщения и текущего состояния. Обычно результатом является сообщение, отправленное из системы.
Есть ли хорошие рамки с открытым исходным кодом для реализации конечного автомата в .NET? Я рассмотрел последнюю версию Windows Workflow, и похоже, что это будет хороший вариант; однако у меня есть некоторые проблемы с механизмами сохранения по умолчанию (мы должны сообщать данные о состоянии перехода), тестируемостью и тем фактом, что команда WF перестраивает структуру, когда мы говорим (предположительно).
Вместо WF я подумываю о попытке реализовать простой шаблон "State" GoF и использовать Spring.NET для подключения всего вместе. Есть ли что-то, что уже делает это, или что-то подобное?