Новые возможности в Windows Workflow Foundation (WF)

Данный раздел относится к версии Windows Workflow Foundation 4.

В сравнении с предыдущими версиями Windows Workflow Foundation (WF) в .NET Framework, версия 4 изменяет несколько принципов разработки. Теперь рабочие процессы стало еще проще создавать, выполнять и поддерживать, а также реализовывать узел с новыми функциями.

Модель действий рабочего процесса

Теперь действие, а не использования класса SequentialWorkflowActivity или StatemachineWorkflowActivity является базовой единицей создания рабочего процесса. Класс Activity обеспечивает базовую абстракцию поведения рабочего процесса. Авторы действий могут реализовать CodeActivity для обеспечения базовых пользовательских функций действий либо NativeActivity для обеспечения пользовательских функций действий, использующих среду выполнения. Activity — это класс, используемый авторами действий для объявления новых поведений посредством других объектов NativeActivity, CodeActivity, AsyncCodeActivity или DynamicActivity, независимо от того, являются они пользовательской разработкой или включены в библиотеку Встроенная библиотека действий .NET Framework 4.

Параметры сложных композитных действий

Flowchart представляет собой новое мощное действие потока управления, позволяющее авторам моделировать произвольные циклы и условное ветвление. Flowchart обеспечивает модель программирования на основе событий, которую раньше можно было реализовать только при помощи действия StateMachineWorkflowActivity. Процедурные рабочие процессы получают дополнительные преимущества благодаря новым действиям управления потоком, которые моделируют обычные структуры управления потоком, такие как TryCatch и Switch.

Расширенная библиотека встроенных действий

Новые функции библиотеки действий:

  • Новые действия управления потоком, такие как DoWhile, Pick, TryCatch, ForEach, Switch и ParallelForEach.

  • Действия для обработки данных элементов, такие как Assign, и действия коллекции, такие как AddToCollection.

  • Действия для управления транзакциями, такие как TransactionScope и Compensate.

  • Новые действия для обмена сообщениями, такие как SendContent и ReceiveReply.

Явная модель данных действия

.NET Framework 4 включает новые варианты хранения и перемещения данных. Данные можно сохранить в действии при помощи переменной Variable. При перемещении данных в действие и из него для определения направления перемещения данных используются специальные типы аргументов. Такими типами являются InArgument, InOutArgument и OutArgument. Дополнительные сведения см. в разделе Модель данных Windows Workflow Foundation.

Улучшенные варианты размещения на узле, сохраняемости и отслеживания

.NET Framework 4 содержит следующие усовершенствования сохраняемости.

  • Добавлены новые параметры для выполнения рабочих процессов, включая WorkflowServiceHost, WorkflowApplication и WorkflowInvoker.

  • При помощи действия Persist данные состояния рабочего процесса можно сохранять явным образом.

  • Узел может сохранить экземпляр ActivityInstance, не выгружая его.

  • Рабочий процесс может указывать зоны несохраняемости во время работы с данными, которые не могут быть сохранены, чтобы отложить операцию сохраняемости до выхода из зоны несохраняемости.

  • Транзакции могут быть введены в рабочий процесс при помощи TransactionScope.

  • Выполнять отслеживание проще благодаря TrackingParticipant.

  • Отслеживание и запись в журнал системных событий обеспечивается при помощи EtwTrackingParticipant.

  • Для возобновления ожидающего рабочего процесса теперь используется объект Bookmark.

Более удобное расширение среды проектирования WF Designer

Новый WF Designer построен на основе Windows Presentation Foundation (WPF), он обеспечивает более удобную модель для повторного размещения WF Designer за пределами Visual Studio, а также обеспечивает более простые механизмы для создания конструкторов пользовательских действий. Дополнительные сведения см. в разделе Рекомендации по настройке конструктора рабочих процессов.

См. также

Другие ресурсы

Путь к Windows Workflow Foundation 4 ― изменения между версиями Beta 1 и CTP