Как стать автором
Обновить

Комментарии 36

Небольшое примечание:

Вы некоторые слова выделили через подчеркивание. В интернете подчеркивание считается ссылкой. Если подчеркнутый текст не ссылка, это смущает. Используйте "Жирный"

А так статья отличная. Мне лично понравилось.
Или [i]Курсив[/i].
Тьфу. Привык уже к bbcode-ам повсюду…
Фикс:
Или Курсив
Исправил подчеркивание на курсив. Спасибо за подсказку.
А за что было минусовать? Почему если критика, так сразу в минус? Причем, здоровая и адекватная критика?
Внешний вид статьи похож на книжки от Microsoft :).
Это хорошо или плохо? :)
Это хорошо, потому что все в картинках и подробно. Начиная с самого создания проекта. Сам так пишу, чтобы по одним картинкам можно было все вспомнить и сделать.
Много картинок не бывает, запутаться новичкам можно даже в «элементарных» действиях.
Написали свой Visio плагин для дизайна Workflow процессов. После редактирования процесс прямо из Visio публикуется в систему, при этом генерируется рабочий Workflow Service.
Может быть поделитесь плагином? Это было бы полезно многим т.к. идея очень здравая — передать редактирование workflow бизнес подразделениям.
Я бы с радостью, но плагин является частью наших продуктов и собственностью компании. Так что могу только делиться используемыми подходами в дальнейших примерах.
Зачем? Есть какая-то причина не использовать VMDK?
Не вижу связи между плагином для дизайна Workflow процессов и VMDK.
VMDK можно использовать для дизайна workflow. Например, у меня используется библиотека Stateless, которая конфигурируется через DSL, сделанный в VMDK.
Ответил на вопрос ниже
в workflow foundation есть серъёзный недостаток, если используете persistence и у вас имеются workflow instances сохраненные на полпути и в workflow были внесены изменения, foundation не сможет эти изменениямкорректно обработать и instances становятся не валидными.
Мы решили эту проблему путем сохранения Workflow сервисов в базе, то есть их версионирования. При изменении Workflow, добавляется его новая версия. Существующие экземпляры Workflow используют свои версии Workflow сервиса, а все новые экземпляры используют последнюю версию.

Позже напишу пример реализации подобного сценария.
да мы тоже такой вариант рассматривали (и нативная поддержка этого будет встроена в 5 wf), но как правило изменения в workflow происходят что называется for a reason, и необходимо чтоб даже существующие instances продолжали действие по уже новому сценарию, но я так понимаю что это не возможно.
Инструкция хорошая. Но очень примитивная.
Хотелось бы разобраться с длительными процессами, когда есть сохранение промежуточных состояний в базе. И конечно, хотелось бы глянуть, как обрабатываются инстансы для отредактированных процессов.
Жду продолжения!
Вообще интересно… Как-раз сейчас работаю над проектом, где пользователь сам может создавать сценарии, а затем их проходить. То есть череда вопросов и в зависимости от ответов-генерация других вопросов или действий. Реализовали это дело без WF (опыта в WF ни у кого из команды небыло, а проект срочный). Интересно посмотреть на более серъезный пример использования… Например вкусно будет узнать, как пользователям дать редактировать процессы… Конечно могу и сам почитать в соответствующей литературе, но именно в данный момент приоритеты другие и просто нет времени =( Статья была бы в самый раз для знакомства. Нои за введение-спасибо =)
WF дизайнер не совсем подходит в нашем конкретном случае, он слишком сложен для не технического пользователя. А Visio знаком всем бизнес-аналитикам. Представьте, что показываете руководству потенциального клиента две картинки: первую из самого начала статьи, вторую вашу. Думаю, очевидно, какой вариант окажется более понятным и привлекательным для человека из бизнеса — проверено на собственном опыте. А WF дизайнер отлично подойдет для продуктов, ориентированных на продвинутых технических пользователей.
Единственное, чего я не понял, почему достаточным окзалось ипользовать 3 Primitive Assign Activity, хотя по уму нужно использовать 4. Даже на картинке видно, что последнее Else в контроле IF (IsDesignerNecessary) осталось пустым.

Result нигде не инициализировался, по идее, если ответить три раза No, он должен остаться равен Null.
Почему же он возвращает False?
Действительно, для полноты картины напрашивается четвертый Assign для присвоения результату False. Но поскольку для переменной типа bool значением по умолчанию итак является False, то это не обязательно. Точно также как равнозначны следующие две строки кода:

bool result;
bool result = false;

Дело вкуса.
Такой код не скомпилируется в теле метода. Но в теле класса/структуры допустимо.
Прекрасно компилируется и в теле метода. А ReSharper даже подсвечивает = false как избыточный.
НЛО прилетело и опубликовало эту надпись здесь
Насчёт вашей статьи «Windows Workflow Foundation – для чего и в каких случаях применять», пара опечаток:
Мы разработали свой собственный дизайнер, что бы максимально упростит и облегчить редактирование процессов конечному пользователю (бизнес аналитику).
должно быть:

Мы разработали свой собственный дизайнер, чтобы максимально упростить и облегчить редактирование процессов конечному пользователю (бизнес-аналитику).
блин, писал здесь, чтоб предпросмотром воспользоваться… в сообщениях-то предпросмотра нет :(
по запарке нажал отправить :(
Спасибо, исправил.
А можно подробнее про варианты использования? Было бы здорово в общих чертах узнать реальное применение, где крутятся сервисы, какого типа приложения их используют и как. А то пример реализации IF в визуальном редакторе ну никак не намекает на какие-либо преимущества WWF.
Согласен, пример вводный для понимания базовой концепции.
Более реальные сценарии и примеры исользования буду описывать в следующих постах.
Небольшое добавление, при использовании Long State Workflow реккомендую добавлять к свойствам классов (которые сериализуются вместе с Workflow, ведь вы же где-то храните состояния) атрибуты вида: [DataMember(IsRequired = false, Order=0)] иначе будут проблемы при обновлении приложения и десериализации Workflow Instance после.
Совет разумный.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации