Windows workflow foundation что это за папка

Время на прочтение
8 мин

Количество просмотров 22K

Базовое понимание

 
Помню, еще в университете перед реализацией любого алгоритма мы описывали его в виде блок схемы, и только после этого переходили непосредственно к кодированию. Workflow, как одна из парадигм программирования, на ряду с процедурным и объектно ориентированным подходами, как раз и позволяет нам визуально реализовать любой процесс, используя набор предопределенных функциональных блоков (Activity), при этом, избавляя от его последующего кодирования.

Библиотека WF, являясь одной из реализаций парадигмы Workflow, предоставляет следующие основные возможности:

— богатый набор функциональных блоков;
— расширение набора стандартных функциональных блоков пользовательскими;
— сохранение и возобновление экземпляров Workflow в процессе их исполнения;
— использование Workflow дизайнера в вашем приложении;
— интеграция с WCF;
— пошаговая диагностика непосредственно в Workflow дизайнере;
— и многое другое.

Критерии применения

Как известно, каждой технологии своя область применения. Для определения необходимости использования WF при реализации конкретного алгоритма/процесса я применяю 3 критерия:

1. Реализация алгоритма/процесса постоянно меняется.

В нашей компании мы разработали подсистему Workflow, которая является ядром всех продуктов. Имея, к примеру, десятки клиентов наших продуктов, у которых десятки процессов, получаем сотни разных изменяющихся процессов.

2. Процесс/алгоритм имеет длительный срок выполнения.

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

3. Нужно предоставить возможность изменения алгоритма/процесса конечному пользователю без вмешательства программиста.

Мы разработали свой собственный дизайнер, чтобы максимально упростить и облегчить редактирование процессов конечному пользователю (бизнес-аналитику). Это позволяет снять нагрузку с разработчиков. А возможность видеть и самим с легкостью менять свои процессы очень привлекательна для клиентов.

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

Ознакомительный пример

В качестве ознакомительного примера использования WF я как раз и реализую Workflow процесс, который ответит на вопрос о целесообразности использования WF.
1. Создаю новый проект IsWWFUsefullSample используя шаблон Blank Solution:

2. Добавляю новый проект IsWWFUsefullSample.Activities используя шаблон Activity Designer Library:

3.  Удаляю сущеcтвующий файл ActivityDesigner1.xaml и добавляю новый элемент  используя шаблон Activity:

4. Открываю Activity в дизайнере и добавляю необходимые параметры типа Boolean:

— три входящих параметра соответствующих нашим критериям: IsLongRunning, IsChangeable, IsDesignerNecessary;

— один исходящий параметр для возврата результата: Result.

Стоит упомянуть, что на данный момент для описания выражений и типов внутри Workflow Activity можно использовать только синтаксис VB.Net. Обещают добавить поддержку С#.

5. Для анализа входящих праметров использую три вложенных If Activities (Toolbox -> Control Flow -> If), хотя конечно можно обойтись и одним. Для присвоения результата использую Assign Activity (Toolbox -> Primitives -> Assign). В итоге получается следующий алгоритм:

6. Workflow процесс готов. Для его использования добавляю новое приложение IsWWFUsefullSample.TestClient  на основании шаблона Workflow Console Application:

7. Удаляю файл Workflow1.xaml.

8. Добавляю ссылку на проект IsWWFUsefullSample.Activities.

9. Реализую Main метод. Он предлагает пользователю ответить на три вопроса, запускает процесс Workflow с полученными исходными данными и выводит результат вычисления.

// ==============================================================
// <copyright file="Program.cs" company="The World as a Workflow">
//     Copyright (c) The World as a Workflow. All rights reserved.
// </copyright>
// <author>Alexander Nechyporenko</author>
// <date>2011-07-12</date>
// ==============================================================

namespace IsWWFUsefullSample.TestClient
{
    using System;
    using System.Activities;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    using IsWWFUsefullSample.Activities;

    /// <summary>
    /// Console program class.
    /// </summary>
    public class Program
    {
        /// <summary>
        /// Program starting point.
        /// </summary>
        /// <param name="args">Program parameters.</param>
        public static void Main(string[] args)
        {
            // Question answers
            const string Yes = "yes";
            const string No = "no";
            var answers = new List<string> { Yes, No };

            // Create new activity instance
            var activity = new IsWWFUsefull();
            var parameters = new Dictionary<string, object>();

            do
            {
                Console.WriteLine("Please, answer following questions to determine necessity of using WWF.");
                Console.WriteLine();

                // Read activity input parameters
                parameters["IsLongRunning"] = ReadAnswer("Is process/algorithm long running?", answers) == Yes;
                parameters["IsChangeable"] = ReadAnswer("Is process/algorithm frequently changed?", answers) == Yes;
                parameters["IsDesignerNecessary"] =
                    ReadAnswer("Do you need a visual designer for your process/algorithm?", answers) == Yes;

                // Execute activity
                var result = WorkflowInvoker.Invoke(activity, parameters);

                // Show result
                Console.WriteLine();
                if ((bool)result["Result"])
                {
                    Console.WriteLine("Use WWF!");
                }
                else
                {
                    Console.WriteLine("You don't need WWF but still can use it if you like it :).");
                }
            Console.WriteLine("---------------------------------------------------------------------");
                Console.WriteLine();
            }
            while (ReadAnswer("Do you want to proceed?", answers) == Yes);

            return;
        }

        /// <summary>
        /// Read answer from console.
        /// </summary>
        /// <param name="question">Question text.</param>
        /// <param name="answers">A list of posible</param>
        /// <returns>Answer text.</returns>
        private static string ReadAnswer(string question, IList<string> answers)
        {
            // Prepare answers prompting string
            var answersString = new StringBuilder();
            for (var i = 0; i < answers.Count; i++)
            {
                answersString.AppendFormat(i == 0 ? "{0}" : "/{0}", answers[i]);
            }

            // Read and validate the answer
            var text = string.Empty;
            var answer = string.Empty;
            do
            {
                if (!string.IsNullOrEmpty(text))
                {
                    Console.WriteLine(
                        string.Format("'{0}' doesn't belong to list of posible answers: '{1}'.", text, answersString));
                }

                Console.Write(string.Format("{0} ({1}): ", question, answersString));

                text = Console.ReadLine();
                answer = answers.Where(a => a == text.ToLower()).FirstOrDefault();
            }
            while (answer == null);

            return answer;
        }
    }
}

10. Запускаю и тестирую приложение:

Исходники проекта можно загрузить здесь.

Всем удачных архитектурных решений и приятного кодирования!

Знакомство с Windows Workflow Foundation

Мы продолжаем знакомство с технологиями Visual Studio 2005 и Windows Vista. Сегодня речь пойдет еще об одном нововведении, претендующем на революционность, – это Windows Workflow Foundation (WWF).

Вячеслав Колдовский
koldovsky@mail.ru

Мы продолжаем знакомство с технологиями Visual Studio
2005 и Windows Vista. Сегодня речь пойдет еще об одном нововведении,
претендующем на революционность, – это Windows Workflow Foundation (WWF).
Полная реализация WWF планируется в следующем поколении среды .NET
Framework – WinFX, которая положена в основу Windows Vista, однако она
будет доступна и для нынешних операционных систем Microsoft. Текущая
бета-версия WWF (msdn.microsoft.com/windowsvista/building/workflow)
предназначена для использования с Visual Studio 2005.

После написания первой программы «Hello, world!» в дальнейшем
обучении будущих разработчиков обычно применяются блок-схемы, которые
очень наглядно отображают логику программ. Но, к сожалению, блок-схемы
исчезают сразу после того, как усвоены циклы и условные переходы. А ведь
сложные программные конструкции напрочь лишены наглядности, что
порождает множество проблем, с которыми вынуждены бороться все участники
процесса создания ПО.

Существует, конечно, множество инструментов и методик, поддерживающих
«визуализацией» различные этапы разработки, – от конструкторов кода до
UML и RAD-сред, даже не предполагающих программирования. Но большинство
из них не являются столь простыми и наглядными, как обычные блок-схемы.
Нередко, однако, возвращение к старым идеям на более современном уровне
дает весьма интересные результаты.

Так, среди значительного числа других нововведений WinFX Microsoft
предлагает и свой взгляд на то, каким образом визуальная разработка на
основе блок-схем может быть использована при создании приложений. Для
этих целей рекомендуется применять некую интерпретацию понятия «workflow»,
реализованную в WWF.

Определимся с терминологией

Термин «workflow» достаточно распространен в IT-индустрии и
воспринимается прежде всего в контексте систем электронного
документооборота. Однако, как это часто происходит в том случае, когда
вначале формируется рынок, а лишь потом согласовывается терминология,
существует несколько различных толкований данного понятия, каждое из
которых имеет определенное право на существование. Здесь мы не будем их
анализировать, поскольку, как это станет ясно ниже, в случае WWF в
«workflow» вкладывается смысл, несколько отличающийся от принятого в
бизнес-системах.

В наиболее широком понимании термин workflow означает упорядоченную
последовательность действий (или работ), призванных решать какую-либо
задачу. В такой трактовке достаточно прозрачно определена суть понятия,
однако нет даже намека на ту форму, в которой оно предстанет перед
потребителем. Здесь мы вполне можем принять точку зрения, наверное,
самой авторитетной в данной области международной организации Workflow
Management Coalition (WfMC, wfmc.org). Не вдаваясь в нюансы, отметим,
что WfMC предусматривает ряд требований к workflow-системам, включая
наличие специального инструментария для определения моделей процессов,
«движка», который будет их исполнять, средств для мониторинга,
управления и составления отчетности.

При этом, как правило, подразумевается, что инструментарий
workflow-моделирования обладает возможностями визуального
проектирования, достаточными для создания сложных бизнес-систем
фактически без программирования в традиционном понимании (т. е. без
написания кода вручную).

Однако если рассматривать программирование в широком смысле – как
создание набора инструкций, предусматривающих обратную связь и
возможность повторного использования, то станет ясно, что под это
определение вполне попадает моделирование любых рабочих процессов, так
или иначе укладывающихся в модели workflow. Именно от этого
отталкивалась Microsoft, разрабатывая WWF.

Важно понимать, что WWF не является ни реализацией какого-либо
стандарта workflow вроде тех, которые определены WfMC, ни инструментом
сугубо делового применения. Так что попытки сравнивать WWF с
существующими на рынке workflow-систем готовыми бизнес-продуктами лишены
всякого смысла, поскольку это универсальная и гибкая платформа,
ориентированная прежде всего на визуальное
программирование. И поэтому конструирование workflow-диаграмм с
помощью WWF в той же мере программирование, в какой и создание
блок-схем.

Соответственно, очень важная особенность WWF – универсальность.
Поскольку визуальное программирование отличается от традиционных
подходов к разработке программных систем только внешне, но никак не
своей сутью, то WWF практически равноценна самой платформе .NET
Framework 2.0, на основе которой она реализована. Это, впрочем, ни в
коей мере не означает, что WWF может полностью заменить традиционные
подходы, однако для определенного круга задач (в том числе, пожалуй, и
для реализации workflow-систем в обычном понимании) данное решение
действительно может оказаться предпочтительным.

Архитектура

Архитектурно Windows Workflow Foundation состоит из нескольких
уровней (таблица). На нижнем находится родительский процесс (Host
Process). Характерно, что WWF работает не изолированно, а выполняется
именно в рамках родительского процесса, который посредством
стандартизированных интерфейсов предоставляет набор сервисов,
определяющих функциональность WWF. Похожий подход применяется в
Microsoft Windows Scripting Host (WSH) для обеспечения доступа к
внутренним объектам.

Архитектура WWF

Уровень Задача
Workflow Model Поддержка предопределенных типов моделей, действий
(activities) и соответствующего API
Runtime Layer Исполнение модели и поддержка управления ее жизненным циклом
Hosting Layer Интеграция с родительским процессом, предоставление
интерфейсов для ключевых процессов WWF, реализация которых
зависит от родительского процесса
Host Process Обеспечение объектов и функциональности, которые полностью
или частично доступны в WWF

Взаимодействие с родительским процессом осуществляется посредством
родительского уровня (Hosting Layer). Его интерфейсы для ключевых
процессов уровня исполнения WWF должны реализовать разработчики,
интегрирующие WWF в свои приложения. Microsoft также собирается
реализовать Hosting Layer для своих ключевых платформ, в частности
ASP.NET 2.0, SQL Server 2005 и Microsoft Office 12, соответственно,
вскоре в их рамках можно будет использовать workflow-модели.

Ядром технологии WWF является уровень исполнения (Runtime Layer),
который отвечает непосредственно за workflow-моделирование и содержит
необходимые для этого службы. Он же управляет жизненным циклом
(менеджмент состояний и активация) моделей, что позволяет исполнять
значительное количество моделей, не расходуя понапрасну системные
ресурсы в том случае, если часть из них находится в режиме ожидания.

На самом верху архитектуры WWF – уровень workflow-модели (Workflow
Model Layer). Он отвечает за поддержку различных типов моделей, содержит
предопределенные действия (activities) и реализует соответствующий API.

Также WWF включает встроенный визуальный редактор, благодаря которому
можно конструировать модели без программирования. Хотя при необходимости
они могут быть реализованы исключительно посредством программного кода,
поскольку фактически представляют собой обычные классы. Кроме того,
поддерживается возможность хранения описания моделей в XML-файлах, что
позволит применять разнообразный инструментарий.

Сама технология WWF изначально ориентирована на расширения. Отдельные
элементы workflow-модели – действия (activities) – выполнены в виде
компонентов, которые могут создаваться сторонними поставщиками с помощью
Visual Studio и WWF SDK. Помимо этого, WWF поддерживает динамическое
обновление моделей во время исполнения, а также позволяет встраивать
редактор моделей в собственные приложения.

Использование на практике

На текущий момент создавать и исполнять workflow-модели можно с
помощью соответствующего расширения для Visual Studio 2005, доступного
на сайте Microsoft.

После установки Visual Studio 2005 Extensions for Windows
Workflow Foundation в среде Visual Studio появляется возможность
создавать новые проекты на основе WWF

WWF стандартно поддерживает два типа моделей – последовательные
(sequential) и конечные автоматы (state machine). Первые представляют
собой набор последовательно исполняемых действий и в наибольшей мере
соответствуют классическим блок-схемам. Вторые позволяют моделировать
переходы между несколькими предопределенными состояниями, что особенно
актуально при конструировании сложных программных систем, например
управления бизнес-процессами.

Эти два типа в определенной мере взаимозаменяемы – последовательная
модель может быть преобразована в конечный автомат и наоборот. Однако
каждый из них в наибольшей степени подходит лишь для определенного типа
задач. Например, при большом количестве ветвлений и исключений
последовательная модель может оказаться слишком запутанной и потерять
наглядность, что сведет на нет все преимущества графического
представления.

В стандартной поставке WWF идет обширный набор доступных
действий для создания моделей разного уровня сложности

Несмотря на то что стандартно поддерживаются только два типа моделей,
разработчики могут самостоятельно создавать дополнительные.
Конструирование новых моделей на основе существующих не вызовет больших
сложностей даже у относительно неподготовленного пользователя,
обладающего лишь общими навыками описания алгоритмов. Для этого
предназначен визуальный режим, в котором достаточно выбирать доступные
действия (activities) и указывать их свойства и взаимосвязи. Их набор
довольно обширен в стандартной поставке и включает возможности
управления исполнением, построения циклов, распараллеливания, работу с
исключениями, подсоединение к источникам данных, связывание с
Web-службами и др. Создание же полностью оригинальных моделей требует
весьма профессиональной работы.

Для построения условий система предлагает визуальный конструктор,
позволяющий без программирования работать с бинарными операторами. Если
же требуется создать более сложное условие, то применяются традиционные
возможности одного из языков программирования – на уровне метода класса,
реализующего модель.

Несмотря на то что workflow-модели можно создавать и исполнять сами
по себе, полностью их потенциал раскрывается только при интеграции с
приложением, обеспечивающим объекты для манипуляции. Для того чтобы
модель получила доступ к внутреннему устройству родительского процесса,
как уже говорилось, необходимо реализовать определенные интерфейсы,
описанные в документации к WWF.

Модели также поддерживают режим отладки. Несмотря на определенные
проблемы в текущей версии, Microsoft обещает, что будут доступны точки
прерывания и пошаговое исполнение как в графическом представлении, так и
в виде программного кода.

Модели конечных автоматов хорошо подходят для решения
бизнес-задач

Даже такое поверхностное описание позволяет очертить некоторые сферы
применения WWF. Данная технология хорошо подходит для решения задач
управления бизнес-процессами и документооборотом, поскольку дает
возможность наглядно представить их алгоритмику. Это может быть
согласование условий контракта и обеспечение его выполнения или принятие
заказов и их реализация с учетом индивидуальных особенностей и пожеланий
каждого заказчика.

Также WWF хорошо подходит для формализации взаимодействия различных
исполняющих устройств, и даже человека и машины. Эта особенность
пригодится не только в бизнес-системах, но и в бытовой сфере. К примеру,
посредством WWF можно создать некий «конструктор», предназначенный для
управления логикой работы составляющих «умного дома» – от включения
нагревательных приборов до алгоритма уборки помещений с помощью
роботизированного пылесоса.

Последовательные модели в наибольшей степени схожи с
обычными блок-схемами

Не исключено, что WWF найдет применение и в самых обычных
приложениях. К примеру, многих пугала необходимость изучать скриптовые
языки для того, чтобы автоматизировать часто выполняемые рутинные
операции. Наглядность и простота создания моделей в WWF может изменить
отношение пользователей к несложному программированию и заметно повысить
эффективность их труда.

Одно из первых «показательных» применений WWF будет реализовано в
грядущей двенадцатой версии Microsoft Office. До сих пор для организации
полноценного корпоративного документооборота с помощью этого пакета
приходилось либо применять сторонние продукты, либо инвестировать
значительные усилия в разработку решений на базе Exchange и/или
SharePoint. Теперь базовые возможности обеспечения документооборота
войдут в стандартную поставку Microsoft Office, а создавать новые
сценарии движения документов опытные пользователи смогут самостоятельно
без привлечения программистов.

Реальные преимущества

Попробуем выделить некоторые достоинства новой технологи.

Во-первых, использование WWF обеспечивает наглядность и прозрачность
программной логики. Графическое представление, в отличие от кода,
доступно для понимания не только разработчикам, но и другим участникам
процесса создания ПО, в том числе, что особенно важно, заказчикам. WWF
позволяет гораздо эффективнее по сравнению с альтернативными подходами
отделить интерфейс пользователя и бизнес-логику приложений, упрощая
коллективную разработку, модификацию решений и их портирование под новые
платформы и разные типы клиентских устройств.

Во-вторых, наличие среды исполнения WWF и визуального дизайнера
моделей во многих случаях поднимет на качественно новый уровень
встроенные средства автоматизации/адаптации приложений. На наш взгляд,
наглядное конструирование алгоритмов значительно удобнее и доступнее,
чем, к примеру, аналогичные решения на базе скриптов.

В-третьих, WWF становится новым стандартным элементом платформы
Windows с унифицированным интерфейсом и едиными правилами применения,
что существенно упрощает задачу разработчиков по продвижению продуктов
на его основе. Пример показывает сама Microsoft, использующая WWF в
будущей версии Microsoft Office.

В-четвертых, следует отметить, что Microsoft заложила в архитектуру
WWF очень важную функциональную особенность, которой могут похвастаться
далеко не все поставщики нынешних workflow-систем, а именно, возможность
динамически изменять выполняющиеся модели.

Перспективы

На наш взгляд, WWF имеет все шансы на успех и признание. Благодаря
активной поддержке Microsoft эта технология обещает стать стандартом (на
платформе Windows) при решении любых задач, требующих графического
представления логики исполнения и гибкой ее модификации. Естественно,
WWF не претендует на то, чтобы заменить привычное программирование, но
разнообразить и дополнить его сможет вполне.

Не исключено также, что некоторые из существующих поставщиков
откажутся от своих частных технологий и перейдут на использование ядра и
дизайнера WWF. Это может стать стимулом развития рынков, в том числе и
ПО автоматизации документооборота, за счет популяризации и унификации
подходов.

Расширяемость платформы подразумевает появление значительного числа
компонентов, реализующих действия (activities), которые позволят
применять WWF для взаимодействия с широким спектром
аппаратно-программных решений – от составляющих «умного дома» до сложных
корпоративных платформ. Уже сейчас на официальном сайте WWF (windowsworkflow.net)
доступно для загрузки больше десятка различных компонентов от сторонних
поставщиков, и это несмотря на то, что сама технология WWF находится в
стадии разработки.

Встраивание скриптовых языков совсем не превратило большинство
расширяемых программных продуктов в среды разработки, доступные даже
домохозяйкам. Возможно, визуальный подход WWF сумеет исправить эту
ситуацию. Однако какой бы ни была конечная цель Microsoft, ясно одно –
технология WWF займет достойное место в ряду инструментов, которые
применяют современные разработчики, и станет серьезным подспорьем в
руках опытных пользователей.

Источник: Компьютерное обозрение, 7 февраля 2006

From Wikipedia, the free encyclopedia

Windows Workflow Foundation (WF)

Developer(s) Microsoft
Initial release November 21, 2006; 16 years ago
Stable release

WF45
/ August 15, 2012; 11 years ago

Operating system Microsoft Windows
Platform .NET Framework
Type Software framework
Website docs.microsoft.com/en-us/dotnet/framework/windows-workflow-foundation/

dot net three point zero windows stack diagram

This subsystem is a part of .NET Framework 3.0

Windows Workflow Foundation (WF[2]) is a Microsoft technology that provides an API, an in-process workflow engine, and a rehostable designer to implement long-running processes as workflows within .NET applications. The latest version of WF was released as part of the .NET Framework version 4.5 and is referred to as (WF45).[3]

A workflow, as defined here, is a series of distinct programming steps or phases. Each step is modeled in WF as an Activity. The .NET Framework provides a library of activities (such as WriteLine, an activity that writes text to the console or other form of output). Custom activities can also be developed for additional functionality. Activities can be assembled visually into workflows using the Workflow Designer, a design surface that runs within Visual Studio. The designer can also be hosted in other applications.

Encapsulating programming functionality into the activities allows the developer to create more manageable applications; each component of execution can be developed as a Common Language Runtime object whose execution will be managed by the workflow runtime.

Workflow Foundation versions[edit]

  • Workflow Foundation was first released in Version 3 of the .NET Framework,[4] and primarily uses the System.Workflow.Activities, System.Workflow.ComponentModel, and System.Workflow.Runtime namespaces. Workflows in version 3 were created using either the Sequential model (in which activities are executed in order, with the completion of one activity leading to the next), or the State Machine model (in which activities are executed in response to external events). Microsoft SharePoint 2007 uses WF 3.
  • In .NET Framework 3.5, messaging activities were introduced that integrated Workflow with Windows Communication Foundation (WCF). With the new ReceiveActivity, workflows could respond to incoming WCF messages. The new features of Workflow in version 3.5 use the System.ServiceModel namespace. Microsoft SharePoint 2010 uses WF 3.5.
  • In .NET Framework 4, Windows Workflow Foundation was updated extensively, with new features such as Data Contract Resolver, Flowchart, and other flow control activities added. Workflow in .NET 4 uses the System.Activities namespace. Most notably, there is no longer a Workflow Runtime object in version 4; workflows are executed directly using WorkflowApplication or WorkflowInvoker instead.
  • Activities created in previous versions of the .NET Framework can be executed by .NET 4 workflows using the Interop activity.
  • Future versions and releases of Windows Phone will include an updated State Machine and Dynamic Update.

Workflow usage scenarios[edit]

Windows Workflow Foundation is used to create applications that execute an ordered business process, such as the steps needed to approve a document, hire a candidate for a position, or make a purchase. These processes can execute in a short amount of time, but are typically long-running, in which the application will need to shut down to conserve memory between steps. Typically, business processes to be modeled as workflows have the following features:

  • Have specific business logic that may need to change periodically, such as the tax or shipping calculation needed to determine the purchase price of an item, or the series of steps needed to approve a purchase, hire, or process.
  • Have several inputs into the workflow that may come hours or days apart
  • Have advanced business logic that might require workflow execution to travel down different branches depending on different circumstances.
  • Need to interact with other systems, such as a database, website or other client application, or web service.

[edit]

Workflows are created either by being defined in XAML Extensible Application Markup Language using the workflow designer, or by being assembled programmatically in a .NET language such as C# or VB.NET.
If the designer is used, activities are assembled on the workflow designer canvas by dragging them from the toolbox. Workflow arguments and variables are also created and assigned within the designer. If a workflow is assembled in code, activities are instantiated like other CLR objects, and assembled into collections of a single parent activity, usually a Sequence or Flowchart. The single parent activity is then executed using WorkflowApplication or WorkflowInvoker, and runs as a workflow. The term «Workflow» here usually refers to the root activity that is executed by the host. Workflows can use both out-of-box activities and custom activities. Out-of-box activities include flow control activities such as DoWhile, Flowchart-related activities such as FlowDecision, WCF Messaging activities such as Send, and primitive activities that perform simple tasks like Assign and WriteLine. Custom activities are user-created CLR objects that derive from the class System.Activities.Activity, and provide declarative functionality by allowing the developer to define the execution behavior of the activity in code. Custom activities can benefit from having a custom activity designer associated with them to enhance the visual authoring experience in the Visual Studio IDE.

Books on Workflow[edit]

.NET Framework 3.0 and 3.5[edit]

  • Dharma Shukla, Bob Schmidt: Essential Windows Workflow Foundation, Addison-Wesley Professional, 13 October 2006, ISBN 0-321-39983-8
  • Michael Stiefel: Building Applications with Windows Workflow Foundation (WF): Basics of Windows Workflow Foundation (Digital Short Cut), June 5, 2007, Kindle, ISBN 0-321-51454-8
  • Brian Noyes: Developing Applications with Windows Workflow Foundation (WF) (Video Training), June 7, 2007, Brian Noyes, ISBN 0-321-50313-9
  • Brian R. Myers: Foundations of WF, Apress, 23 October 2006, ISBN 1-59059-718-4
  • Bruce Bukovics: Pro WF: Windows Workflow in .NET 3.0, Apress, 19 February 2007, ISBN 1-59059-778-8
  • Todd Kitta: Professional Windows Workflow Foundation, Wrox, 12 March 2007, ISBN 0-470-05386-0
  • Kenn Scribner: Microsoft Windows Workflow Foundation Step by Step, Microsoft Press, 28 February 2007, ISBN 0-7356-2335-X

.NET Framework 4.0[edit]

  • Mark Collins: Beginning WF: Windows Workflow in .NET 4.0, Apress, March 19, 2010, ISBN 978-1-4302-2485-3
  • Bruce Bukovics: Pro WF: Windows Workflow in .NET 4, Apress, June 29, 2010, ISBN 978-1-4302-2721-2
  • Andrew Zhu: Microsoft Windows Workflow Foundation 4.0 Cookbook, Packt Publishing, September 24, 2010, ISBN 978-1-84968-078-3

.NET Framework 4.5[edit]

  • Bayer White: Pro WF 4.5, Apress, November 14, 2012, ISBN 978-1-4302-4383-0

References[edit]

  1. ^ «Windows Workflow Foundation (WF) FAQ». Microsoft. 22 December 2018. Retrieved 25 January 2021. WF is an acceptable abbreviation for Windows Workflow Foundation. WWF is not acceptable because it is a registered trademark of the World Wildlife Fund
  2. ^ Abbreviation WWF is not used because it’s trademarked by World Wide Fund for Nature[1]
  3. ^ «A Developer’s Introduction to Windows Workflow Foundation (WF) in .NET 4». Retrieved August 21, 2012.
  4. ^ .NET Framework 3.0

External links[edit]

  • Microsoft Docs: Windows Workflow Foundation

Материал из Википедии — свободной энциклопедии

Перейти к: навигация, поиск

WF в составе .NET Framework

Windows Workflow Foundation (WF) представляет собой технологию компании Microsoft для определения, выполнения и управления рабочими процессами (англ. workflow). Данная технология входит в состав .NET Framework 3.0, который изначально установлен в Windows Vista и может быть установлен в Windows 2003 Server и Windows XP SP2. WF ориентирована на визуальное программирование и использует декларативную модель программирования.

WF поддерживается в Visual Studio 2005 в виде расширения (add-on), в состав которого входит визуальный дизайнер процессов и визуальный отладчик, позволяющий отладить созданный процесс. В Visual Studio 2008 эта функциональность входит изначально.

При помощи WF могут быть описаны три типа процессов:

  • последовательный процесс (Sequential Workflow) — переход от одного шага в другой без возвратов обратно;
  • конечный автомат (State-Machine Workflow) — переход из одного состояния в другое, возможны и произвольные возвраты в предыдущие состояния;
  • процесс, управляемый правилами (Rules-driven Workflow) — частный случай последовательного процесса, в котором переход на следующий шаг определяется набором правил.

[править] Литература

  • Кристиан Нейгел, Билл Ивьен, Джей Глинн, Карли Уотсон, Морган Скиннер C# 2005 и платформа .NET 3.0 для профессионалов = Professional C# 2005 with .NET 3.0. — М.: «Диалектика», 2007. — ISBN 978-5-8459-1317-3
  • Дхарма Шукла, Боб Шмидт Основы Windows Workflow Foundation = Essential Windows Workflow Foundation. — М.: «ДМК Пресс», 2008. — ISBN 5-94074-400-1
 Просмотр этого шаблона Программные интерфейсы и фреймворки Microsoft Windows
Графика Проводник Windows • DirectX • Direct3D • GDI • Windows Presentation Foundation • Windows Color System • Windows Image Acquisition • Windows Imaging Component
Звук DirectSound • DirectMusic • XACT • Speech API • MME
Мультимедиа DirectShow • Windows Media • Media Foundation
Веб MSHTML • MSXML • Платформа RSS для Windows • JScript • ActiveX • XMLHttpRequest • Гаджеты
Доступ к данным Компоненты Microsoft Data Access • Extensible Storage Engine • ADO.NET • Sync Framework • Jet-механизм
Сети Winsock (LSP) • Filtering Platform • NDIS • Windows Rally • Сервис фоновой интеллектуальой передачи данных • P2P API
Коммуникации TAPI
Администрирование Консоль Win32 • Windows Script Host • Инструментарий управления Windows • PowerShell • Планировщик задач • Offline Files • Теневое копирование • Windows Installer • Диспетчер ошибок Windows • Журнал событий Windows
Модель компонентов COM • COM+ • DCOM • .NET Framework
Библиотеки Microsoft Foundation Classes (MFC) • Active Template Library (ATL) • Windows Template Library (WTL) • Base Class Library (BCL)
Разработка драйверов Windows Driver Model • Windows Driver Foundation (KMDF • UMDF)
Безопасность CryptoAPI (CAPICOM) • Windows CardSpace • Data protection API • Security Support Provider Interface
.NET .NET Framework • ASP.NET • ADO.NET • .NET Remoting • Windows Presentation Foundation • Windows Workflow Foundation • Windows Communication Foundation • Windows CardSpace • XNA Framework • Silverlight • Библиотека параллельного программирования
Межпроцессное
взаимодействие
Dynamic Data Exchange (DDE)  • MSRPC • Именованные каналы
Текст и
поддержка языков
Framework Текстовых сервисов • Объектная модель текстов • Редактор метода ввода • Языковые пакеты • Многоязычный интерфейс
Игры XNA Framework • DirectX
 Просмотр этого шаблона API и фреймворки Microsoft
Графика Desktop Window Manager · Direct2D · Direct3D (extensions)  · GDI / GDI+ · WPF · Windows Color System · Windows Image Acquisition · Windows Imaging Component
Аудио DirectMusic · DirectSound · DirectX plugin · XACT · Speech API  · XAudio2
Мультимедиа DirectX (Media Objects · Video Acceleration) · DirectInput · DirectShow · Image Mastering API · Managed DirectX · Media Foundation · XNA · Windows Media  · Video for Windows
Web MSHTML · RSS Platform · JScript · VBScript · BHO · XDR · SideBar Gadgets
Доступ к данным Data Access Components · Extensible Storage Engine · ADO.NET · ADO.NET Entity Framework · Sync Framework · Jet Engine · MSXML · OLE DB · OPC
Сеть Winsock (LSP) · Winsock Kernel · Filtering Platform · Network Driver Interface Specification · Windows Rally · BITS · P2P API · MSMQ · MS MPI · DirectPlay
Коммуникации Messaging API · Telephony API · WCF

Администрирование и
управление

Win32 console · Windows Script Host · WMI (extensions) · PowerShell · Task Scheduler · Offline Files · Shadow Copy · Windows Installer · Error Reporting · Event Log · Common Log File System
Компонентная модель COM · COM+ · ActiveX · Distributed Component Object Model · .NET Framework
Библиотеки Base Class Library (BCL) · Microsoft Foundation Classes (MFC) · Active Template Library (ATL) · Windows Template Library (WTL)
Драйверы устройств Windows Driver Model  · Windows Driver Foundation (KMDF · UMDF) · WDDM · NDIS · UAA · Broadcast Driver Architecture  · VxD
Безопасность Crypto API (CAPICOM) · Windows CardSpace · Data Protection API · Security Support Provider Interface (SSPI)
.NET ASP.NET · ADO.NET · Base Class Library (BCL) · Remoting · Silverlight · TPL · WCF · WCS · WPF · WF
Программное обеспечение EFx Factory · Enterprise Library · Composite UI · CCF · CSF
IPC MSRPC · Dynamic Data Exchange (DDE)  · Remoting · WCF
Доступность Active Accessibility · UI Automation

Текст и многоязная
поддержка

DirectWrite · Text Services Framework · Text Object Model · Input method editor · Language Interface Pack · Multilingual User Interface · Uniscribe

March 05, 2023
2 min read
views 326
Engineering
.Net

Windows Workflow Foundation (WWF) is a programming model designed by Microsoft to allow software developers to create applications using a workflow. It provides a workflow engine that is used to execute user-defined workflows. It also allows developers to create custom activities and integrate them with other applications. WWF provides an efficient way to build complex applications that involve multiple steps.

Getting Started with Windows Workflow Foundation

Before you can use WWF, you need to install the .NET Framework and the Windows Workflow Foundation SDK. The SDK provides the necessary tools and libraries for creating and executing workflows. Once you have installed the SDK, you can create your first workflow using Visual Studio. To do this, open Visual Studio, select File -> New Project -> Workflow from the menu, and then choose the type of workflow you would like to create.

Once you have created your workflow, you can start working with it. The workflow is composed of activities that are connected together in a sequence. Each activity has its own set of properties, inputs, and outputs. You can define the properties of each activity using either Code-Behind or XAML.

When working with Code-Behind, you can define the properties of an activity in the code behind file. This allows you to write custom logic in the code behind file and interact with other components in your application. For example, you can use Code-Behind to call a web service or access a database.

XAML allows you to define an activity’s properties in an XML file. This allows you to quickly create activities without having to write any code. You can also use XAML to define the layout of your workflow, which makes it easier to visualize and debug your workflow.

Executing Windows Workflow Foundation Workflows

Once your workflow is created, you can execute it using the Windows Workflow Foundation engine. The engine will execute each activity in the workflow in the order they are defined. As each activity is executed, its output is passed to the next activity in the sequence.

The Windows Workflow Foundation engine also provides the ability to pause and resume a workflow. This allows you to suspend a workflow while running other tasks and then resume it at a later time. This is useful if there are tasks that need to be performed while the workflow is running.

Integrating Windows Workflow Foundation with Other Applications

One of the most powerful features of WWF is its ability to integrate with other applications. You can use WWF to create custom activities that interact with other applications such as databases or web services. This allows you to create complex workflows that integrate with other applications.

WWF also provides the ability to create custom activities that can be used in other workflows. This allows .NET remote developers to share their workflows and activities with other developers, making it easier for them to collaborate on complex projects.

Conclusion

Windows Workflow Foundation is a powerful programming model designed by Microsoft that allows software developers to create applications using a workflow. It provides an efficient way to build complex applications that involve multiple steps and integrates easily with other applications. With WWF, .NET remote developers can collaborate on complex projects and share their workflows with others.

In this tutorial, we have discussed how to get started with Windows Workflow Foundation and how to execute workflows, as well as how to integrate it with other applications.

  • Windows x64 доступна не вся оперативная память windows
  • Windows wipe free space windows 10
  • Windows xp black edition скачать торрент
  • Windows x64 promise sataii150 579 tm ide controller
  • Windows without loader что это