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