У меня есть альтернатива для вас, если вы открыты для решения не от Microsoft, хотя оно основано на .Net. Я использовал фреймворк под названием Stateless , конечный автомат Николаса Блумхардта, создателя Autofac, где вы можете сделать следующее:
Без гражданства был разработан с
инкапсуляция внутри домена ORM
модель в виду. Некоторое место ОРМ
требования к месту отображения данных
может быть сохранен С этой целью
StateMachine конструктор может принять
аргументы функции, которые будут использоваться
прочитать и записать значения состояния:
var stateMachine = new StateMachine<State, Trigger>(
() => myState.Value,
s => myState.Value = s);
С очень небольшими усилиями вы можете сохранить свое состояние, а затем легко восстановить это состояние. Обратите внимание, что вам НЕ нужно размещать отдельную среду выполнения. Если ваше состояние представлено целым числом, вы можете получить это значение, создать экземпляр объекта без состояния с текущим состоянием, и теперь вы готовы обновить свой конечный автомат. Прелесть в том, что вам не нужны накладные расходы, которые обычно требуются для Workflow Foundation.
Я использовал это в производстве в течение 4 месяцев, и это работает очень хорошо. Я думаю, вы могли бы довольно легко адаптировать это к ASP.Net MVC.
В отношении динамического обновления рабочего процесса, если вы настраиваете конечный автомат, такой как
var stateMachine = new StateMachine<string, int>();
и ведение отдельного файла состояний и триггеров в XML, вы можете выполнить настройку во время выполнения, просматривая пары строк значения int.