Workflow Foundation

13
Workflow Foundation в .NET Framework 4.0 Принципы работы и обзор возможностей TulaDev.NET Андрей Кулешов Codemasters International Senior C# Developer, Team Lead [email protected] | http://www.codemastersintl.com/Blogs/Andrey -Kuleshov

description

Introduction into Workflow Foundation 4.0

Transcript of Workflow Foundation

Page 1: Workflow Foundation

Workflow Foundationв .NET Framework 4.0

Принципы работы и обзор возможностей

TulaDev.NET

Андрей КулешовCodemasters InternationalSenior C# Developer, Team Lead

[email protected] | http://www.codemastersintl.com/Blogs/Andrey-Kuleshov

Page 2: Workflow Foundation

Что будет:Цели и задачи Workflow FoundationПринципы построения Workflow 4Hello Workflow WorldWorkflow и окружающий мирCodeActivitiesDynamic WorkflowsWorkflow PersistenceWorkflow WCF Service

Page 3: Workflow Foundation

Цели и задачи Workflow Foundation

• Control Flow

• Реализация алгоритма внешне сходна с самим алгоритмом

• Улучшение коммуникации с экспертами предметной области

• Возможность изменять потоки выполнения на стороне клиента

Page 4: Workflow Foundation

Принципы построения Workflow 4• Всё состоит из Activities – минимальных строительных единиц

• Можно как использовать различные Activities из стандартной поставки, так и реализовывать собственные

•В визуальном дизайнере выстраивается поток выполнения

• Некоторые Activity выполняют действия, некоторые – управляют потоком

• Хранение Workflow – в виду XAML-файлов

Page 5: Workflow Foundation

ДемоHello Workflow World

Page 6: Workflow Foundation

Code Activities

• CodeActivity позволяет писать свой код• AsyncCodeActivity позволяет безопасно выполнять в нем асинхронные операции• Activities используют In/Out/InOutArgument<T> для передачи данных• Activities используют Variable<T> для хранения данных• Доступ к данным должен всегда осуществляться через контекст• Async/CodeActivity<T> задает результат как OutArgument <T>•Перегружайте CacheMetadata для лучшей производительности•Перегружайте CacheMetadata для валидации Custom Activities

Page 7: Workflow Foundation

Dynamic Workflows

• Workflow в .NET 4.0 хранятся в виде XAML

• По умолчанию workflow компилируется при компиляции всей программы

• Фактически, возможно создание Workflow из любой XAML-строки

• Хранение в виде файлов и в базах данных

• Редактирование на стороне клиента

Page 8: Workflow Foundation

ДемоDynamic Workflows

Page 9: Workflow Foundation

Workflows Persistence

• Большинство Workflows являются долгоживущими

• В первую очередь – при взаимодействии с человеком (изменение состояний в ответ на действия пользователя)

• Средство хранения Workflows с некоторой реализацией по умолчанию SqlWorkflowInstanceStore

• Сохранение традиций в области поддержки версионности Workflow (вылетает Loading Exception)

Page 10: Workflow Foundation

ДемоWorkflows Persistence

Page 11: Workflow Foundation

Чего сегодня не было,а стоило бы...

• Поддержка транзакций

• Разбор связки WF - WCF

• Работа с конкретными инстансами Workflow

• Детальный разбор Flowchart

• Другое

Page 12: Workflow Foundation

Вопросы?Внимательно слушаю

Андрей КулешовCodemasters InternationalSenior C# Developer, Team [email protected] | http://www.codemastersintl.com/Blogs/Andrey-Kuleshov

Page 13: Workflow Foundation

Источники• Центр разработчиков .NET – Windows Workflow Foundation

http://msdn.microsoft.com/ru-ru/netframework/aa663328• The Workflow Way

http://msdn.microsoft.com/en-us/library/dd851337.aspx• Сессия для новичков

http://www.msteched.com/2010/NorthAmerica/DEV207• A Developer's Introduction to Windows Workflow Foundation (WF) in .NET 4

http://msdn.microsoft.com/en-us/library/ee342461.aspx• Windows Workflow Foundation (WF) Screencasts

http://msdn.microsoft.com/en-us/netframework/wf-screencasts.aspx• Windows Workflow Foundation 4 Performance

http://msdn.microsoft.com/en-us/library/gg281645.aspx

Андрей КулешовCodemasters InternationalSenior C# Developer, Team [email protected] | http://www.codemastersintl.com/Blogs/Andrey-Kuleshov