Trainee’s Weblog

блог .NET разработчиков … in .Net veritas …

Windows Workflow Foundation (Введение)

Опубликовал masalov на Июнь 7, 2008

Windows Workflow Foundation (WWF) представляет собой технологию Microsoft для определения, выполнения и управления рабочими потоками (workflows). Windows Workflow Foundation является подсистемой .NET Framework 3.0, входящей в состав операционной системы Windows Vista. WWF ориентирована на визуальное программирование, используя при этом декларативную модель программирования.


Базовые понятия

Как известно, логику работы программной системы можно представить в виде схемы. Обычно схемы используют на этапе проектирования, но во время разработки про них забывают, так как существующие инструменты синхронизации схем и кода не вполне эффективны. Так было до появления WF. Теперь у разработчиков есть возможность создавать в Visual Studio схемы, синхронизированные с кодом.

Для описания логики работы программ (алгоритмов) в WF используются два основных понятия – activity и workflow.

Activity – это любое действие, которое логически считается элементарным (неделимым) или, другими словами, activity – это шаг алгоритма. С английского activity переводится как 1) «деятельность» 2) «активность». В разных статьях используются следующие синонимы: задание, задача, функция, операция, шаг процесса, элемент работы.

Активность реализована в классе System.Workflow.ComponentModel.Activity (находится в сборке System.Workflow.Activities.dll).

У класса Activity есть множество наследников, часть из которых служит для организации иерархий активностей. К таким классам относятся CompositeActivity и все его наследники, например, IfElseActivity, WhileActivity и т.д. Другая часть классов реализует активности, типичные для многих проектов – это, например, InvokeWebServiceActivity, InvokeWorkflowActivity и т.д. Типичные активности отображаются в Visual Studio в окне Toolbox (Ctrl+Alt+X).

Workflow – это последовательность или иерархия активностей (activity). Переводится как «последовательность выполняемых действий». Синонимы: поток работ, работопоток, рабочий процесс, ход работ, бизнес-процесс, схема процесса, сценарий, модель процесса, модель бизнес-процесса, последовательность операций.

Если activity можно рассматривать как команду, специфичную для предметной области, то workflow – это дерево команд.

Существуют два класса (находятся в сборке System.Workflow.Activities.dll) с реализацией workflow:

* System.Workflow.Activities.SequentialWorkflowActivity
Поток, в котором все активности выполняются последовательно.

* System.Workflow.Activities.StateMachineWorkflowActivity
Событийно-управляемый поток, в котором активности вызываются непоследовательно в ответ на внешние события. Этот тип workflow подходит для создания различных мастеров (wizard).

Надо заметить, что среди предков у обоих классов есть класс CompositeActivity. Т.е. любой workflow является контейнером для других activity.

Примечание: наиболее часто повторяющиеся структуры, т.е. характерные последовательности активностей в workflow называют workflow-паттернами (workflow patterns или wf-patterns).

Workflow runtime – исполняющая среда; служит для выполнения workflow, т.е. исполняющая среда «обходит» дерево workflow и «оживляет» activity. Синонимы: workflow engine, движок, механизм исполнения.

Исполняющая среда представлена в классе System.Workflow.Runtime.WorkflowRuntime, а также в ряде наследников класса System.Workflow.Runtime.Hosting.WorkflowRuntimeService (находятся в сборке System.Workflow.Runtime.dll).

Один ответ к “Windows Workflow Foundation (Введение)”

  1. voffkanikituk говорит::

    пиши от себя, а не от трейни =)

Ответить

Вы, должно быть, зарегистрированный, авторизованный отправить комментарий.