Использование Workflow Foundation в MVC3 для обработки потока страниц (как в мастере) - PullRequest
4 голосов
/ 08 августа 2011

Я хочу отделить веб-страницы MVC и порядок их отображения. Вообще говоря, я думаю, что это те сценарии, которые мне нужно рассмотреть, но я очень привязан к определенному образу мышления. Я просто хочу найти шаблон или объект, который поможет в управлении потоком.

Пример страницы:

  • Только пересылка: пользователь может продвигаться вперед только через рабочий процесс, пока не завершится.
    - Особый случай: если пользователь переходит или вводит неверный URL-адрес вручную, система должна ответить соответствующим образом (перенаправить на текущий шаг)

  • Вперед - Назад (только для чтения): пользователь может пройти через мастер, но кнопка назад позволяет просматривать предыдущие данные только для чтения.

  • Вперед - назад (чтение и запись): пользователь может вернуться назад и обновить данные в предыдущих записях. Это может привести к сбросу рабочего процесса в предыдущее состояние.

Для тех случаев, когда пользователь может войти в более чем одно «действительное состояние», приведенная выше концепция форвардинга должна учитывать это (например, в конечном автомате)

Вопрос:

Как мне реализовать этот поток управления страницей в приложении MVC3 / WF4?

enter image description here

Ответы [ 2 ]

4 голосов
/ 22 ноября 2011

Мы сами рассматриваем архитектуру, похожую на ваше предложение.Часть MVC - это, главным образом, автоматически сгенерированный код с Llblgen Pro + пользовательскими шаблонами ASP.Net, поэтому мы хотим управлять бизнес-логикой (и рабочим процессом страницы) откуда-то еще.

Мы все еще изучаем финальную версиюрешение, и WF 4.0 является одним из кандидатов (так как довольно легко создать библиотеку повторно используемых действий), но конечный автомат без сохранения состояния выглядит действительно более простым подходом и его легче поддерживать.У нас уже есть уровень персистентности, сгенерированный ORM, поэтому нет ничего страшного в том, чтобы в будущем возобновить состояние приостановленного рабочего процесса.Посмотрите на Stateless и сообщите нам, подходит ли он.

Пример объяснил: http://blogs.msdn.com/b/nblumhardt/archive/2009/04/16/state-machines-in-domain-models.aspx

Актуализированный код VS 2010 с примерами: https://github.com/haf/Stateless

3 голосов
/ 08 августа 2011

Я исследовал эту идею.На мой взгляд, Workflow Foundation будет стоить того, только если ваш процесс займет много времени (например, дней).

В противном случае вы обнаружите, что написание какого-то пользовательского кода (например, конечного автомата) являетсягораздо более простое решение, чем попытка включить Workflow Foundation.

Однако, если вы ищете примеры, вот один из них: http://code.msdn.microsoft.com/Windows-Workflow-233b5e3c/sourcecode?fileId=22211&pathId=1790082120

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...