Рабочий процесс представляет собой набор операции (называемых действиями), которые выполняются в зависимости друг от друга, бизнес-правил, различных словил и действий пользователя. Рабочие процессы обычно моделируют бизнес-процессы и часто включают в себя взаимодействие с пользователем. Windows Workflow предоставляет инфраструктуру, инструменты и движок для использования рабочих процессов в вашем приложении. С ее помощью вы можете создать рабочий процесс и быть уверенными в том, что он будет работать везде, где инсталлирована .NET Framework.
Вы взаимодействуете с рабочими процессами из вашего приложения. Это может быть приложение любого типа (Windows, ASP.NET, консольное, сервис и т. д.). Обычно вы предоставляете рабочему процессу данные и, возможно, получаете от него ответ, либо вы можете использовать рабочий процесс для запуска определенных задач или действии в вашем процессе. Рабочий процесс может также сохранять себя во время длительных транзакций, а затем при необходимости возобновляться.
В Visual Studio 2008 встроены два типа рабочих процессов: последовательные н типа конечных автоматов. Последовательный рабочий процесс выполняет шаги сверху вниз (в порядке конструирования). Каждый шаг зависит от предыдущего (н, возможно, от некоторою набора условий). Рабочий процесс типа конечного автомата реагирует на различные состояния (статус), передаваемые в него. Состояния обеспечивают переходы между другими состояниями и могут также запускать определенные события.
Тип вашего рабочего процесса вы выбираете на стадии конструирования. Имеются шаблоны как для последовательных, так и для конечных автоматов. На рис. 1.35 показан пример шаблонов рабочих процессов, встроенных в Visual Studio 2008. Обратите также внимание на шаблоны рабочих процессов SharePoint. Они предоставляют такие же рабочие процессы, только в них имеются дополнительные методы для разработчиков SharePoint.
Создание рабочего процесса — очень визуальное действие. Основная идея здесь состоит в том, что сами рабочие процессы традиционно представляются в виде набора шагов (прямоугольников) и связей (стрелок). У вас по-прежнему есть доступ к коду, но визуальный конструктор предоставляет хороший визуальный инструмент для создания как последовательных процессов, так и процессов типа конечного автомата. С его помощью вы можете указать точки начала и конца, добавить в диаграмму действия и настроить каждое действие в соответствии с его задачей.
На рис. 1.36 показан последовательный рабочий процесс в Visual Studio. С левой стороны - фигуры действий рабочего процесса. Вы используете их для визуального представлении вашего рабочего процесса. Каждая фигура имеет набор свойств, которые требуют настройки разработчиком. Этот простой пример рабочего процесса позволяет реализовать утверждение предложения на покупку. Здесь имеется условие if/then для определения, нужно ли утверждение для данного предложения на покупку. Если оно необходимо, то предложение ждет утверждения. Затем предложение либо утверждается, либо отвергается пользователем. Если пользователь не ответил в срок, то посылается сообщение об истечении срока. Вы можете изучить этот рабочий процесс по визуальному представлению в виде диаграммы.
Набор инструментов для рабочих процессов содержит также простой редактор правил и условий. Этот редактор позволяет вам настраивать правила рабочих процессов и управлять этими правилами. Затем эти правила выводятся в виде XML для того, чтобы при необходимости они могли подстраиваться на стадии выполнения. На рис. 1.37 показан пример редактора правил. В этом диалоге настраивается условие по стоимости предложения на покупку из предыдущего примера. Затем это условие прикрепляется к действию if/then на диаграмме.
Примечание
Более подробное обсуждение инструментов Windows Workflow см. в главе 20.