Пример Windows Workflow Foundation - модерация - PullRequest
2 голосов
/ 17 февраля 2009

В рамках моей программы личного совершенствования (PIP ™) я пытаюсь изучить основы Windows Workflow Foundation.

Я решил написать довольно простой движок для блогов. Я знаю, что есть тонны, но это просто игровой проект, который я могу использовать для изучения некоторых интересных вещей. Одной из основных функций, которые я хотел реализовать, является модерирование записей в блоге с помощью WF. Остальная часть проекта будет приложением ASP.NET MVC, возможно, с небольшим количеством WCF.

Из того, что я читал о WF, я должен использовать последовательный рабочий процесс, который должен выглядеть примерно так:

  1. Автор добавляет / редактирует запись в блоге.
  2. Заявка отправляется модератору на утверждение.
  3. Модератор одобряет отправку или возврат к пункту 1. автору для исправления вместе с примечаниями модератора.
  4. Конец

Каждый шаг должен также отправлять по электронной почте получателю действия.

Из-за человеческого фактора взаимодействия, я предполагаю, что среда выполнения WF должна где-то сериализоваться, чтобы не терять состояние (поскольку каждое действие может быть прервано сбросом AppPool, сбоями сервера и т. Д.)

Кто-нибудь знает какие-нибудь хорошие примеры или места, в которых реализован подобный рабочий процесс?

Спасибо всем.

Ответы [ 4 ]

3 голосов
/ 23 февраля 2009

Я не уверен, что вы хотите использовать последовательный рабочий процесс. Рабочий процесс конечного автомата, вероятно, больше соответствует вашим потребностям. Промывание и повторение в последовательном рабочем процессе всегда кажется немного громоздким ИМХО.

Мне нравятся учебные пособия по Оде коду , и я думаю, что учебник по рабочим процессам конечного автомата ответит на многие ваши вопросы.

3 голосов
/ 17 февраля 2009

Вы на правильном пути. Рабочий процесс Windows предоставляет модель персистентности, которая позволяет сохранять состояние работающего экземпляра рабочего процесса на SQL Server. Когда запущенный экземпляр находится в режиме паузы (обычно во время ожидания ввода извне рабочего процесса), состояние автоматически сериализуется в базу данных.

Здесь - это стартовый комплект от Microsoft для веб-процессов утверждения.

3 голосов
/ 17 февраля 2009

Я бы пока не стал углубляться в WW. .NET 4.0 собирается внести изменения в модель WW для решения текущих проблем. Эти изменения представят модель, которая в корне отличается от сегодняшней WW, и изучение современных методологий для WW будет не таким полезным, если у вас еще нет решения WW.

Более подробную информацию можно найти здесь:

http://blogs.msdn.com/endpoint/archive/2009/01/20/the-road-to-wf-4-0-part-1.aspx

1 голос
/ 17 февраля 2009

где-то сериализуется, чтобы не потерять состояние

WF имеет встроенную поддержку для этого (с использованием SQL Server, но вы можете подключить другой бэкэнд).

Любой достойный ресурс должен охватывать постоянство рабочего процесса (например, «Pro WF» (APress)).

Другие книги (например, «Essential Windows Workflow Foundation» (AW)) охватывают больше «почему это работает так». Таким образом, «Pro WF» поможет вам быстрее использовать встроенные (или другие готовые действия) и т. Д., Но Essential ... скорее всего, поможет вам лучше понять, как создавать свои собственные действия (особенно когда речь идет о взаимодействии постоянство и недостатки).

...