Подтвердить что ты не робот

Каков ваш опыт работы с Windows Workflow Foundation?

Я оцениваю WF для использования в линейке бизнес-приложений в Интернете, и мне бы хотелось услышать недавние из первых рук данные этой технологии.

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

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

Если он переопределен до такой степени, что он непригодный для использования (или плохой компромисс) для проекта малого и среднего размера, это то, что мне нужно знать.

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

Спасибо заранее!

4b9b3361

Ответ 1

Windows Workflow Foundation - очень способный продукт, но все еще очень в своей первой версии: - (

Основные причины использования:

  • Визуальное моделирование бизнес-требований.
  • Отделив бизнес-логику от бизнес-правил и внешних правил как XML файлы.
  • Отделяйте свой бизнес-поток от вашего приложения, вытесняя ваши рабочие процессы как XML файлы.
  • Создание длинных процессов с автоматической способностью реагировать, если ничего не произошло в течение некоторого длительного периода времени. Например, счет не оплачен.
  • Автоматическое сохранение продолжительных рабочих процессов для сокращения использования ресурсов и перезапуска процесса и/или машины.
  • Автоматическое отслеживание рабочих процессов, помогающих с бизнес-требованиями.

WF поставляется в виде библиотеки/фрейма, поэтому большую часть времени вам нужно написать хост, создающий среду выполнения WF. Тем не менее, использование WCF, размещенного в IIS, является жизнеспособным решением и сэкономит много работы. Однако соединение WCF/WF менее совершенное и требует некоторой серьезной работы. Подробнее см. Здесь http://msmvps.com/blogs/theproblemsolver/archive/2008/08/06/using-a-transactionscopeactivity-with-a-wcf-receiveactivity.aspx. Ожидайте немало изменений/улучшений в следующей версии.

WF (и WCF) довольно важны для многих новых материалов, выходящих из Microsoft. Вы можете ожидать некоторые интересные объявления во время PDC.

BTW, поддерживающий несколько версий рабочего процесса, занимает немного работы, но это в основном стандартный .NET. Я только что сделал серию сообщений в блогах по этому вопросу, начиная здесь: http://msmvps.com/blogs/theproblemsolver/archive/2008/09/10/versioning-long-running-workfows.aspx

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

Ответ 2

Связанный с этим вопрос: Когда использовать Windows Workflow Foundation? Мой ответ там:

Вам может понадобиться WF только в том случае, если какой-либо из верно следующее:

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

Подробнее см. Пол Эндрю post: Что использовать Windows Workflow Foundation для?

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

Итак, если у вас есть такие требования, то WF - хороший кандидат. Конечно, это относительно сложно, но напомним, что проблемы, которые пытаются решить, также сложны (а иногда и очень сложны). ИМХО, он очень сложный, например, для обезвоживания/регидратации объектов, к которым прикреплены обработчики событий (с событиями, которые могут срабатывать, когда объект отсутствует в памяти).

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

Ответ 3

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

С другой стороны, у него есть некоторые действительно серьезные проблемы, такие как отсутствие версий, которые могут действительно повредить ваше приложение в будущем. Мы вынуждены развертывать до трех параллельных версий одного и того же рабочего процесса с именами xxx-v1, xxx-v2 и xxx-v3, чтобы поддерживать более старые экземпляры и использовать новые экземпляры для использования обновленных версий. Настоящая боль в заднице. О, и есть также некоторые действительно неинтуитивные концепции (корреляционные токены, wtf??)

Ответ 4

У нас был проект на работе, в котором я участвовал в использовании Workflow. Идея (от руководства) заключалась в том, что мы, программисты, будем писать Workflow Activities вместе с "движком" и каркасом. Тогда не-программисты позаботятся обо всем остальном, компилируя свои собственные рабочие процессы в dll, которые двигатель будет автоматически загружать.

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

Конечным результатом было то, что мы не смогли сделать модули Workflow достаточно универсальными для использования другими пользователями. Таким образом, программисты были теми, кто был вынужден работать с Workflows, и все рабочие процессы сделали это на нашем пути.

Ответ 5

Я использую Workflow 4.0 в течение последних нескольких месяцев и, хотя в основном впечатлен, мне было очень трудно учиться.

Для самой последней версии (которая поставляется с .NET 4.0 RC) в Интернете есть любая документация, в каких-либо книгах или нет доступных учебных курсов. Я только нашел статьи, относящиеся к ныне несуществующей версии 3.0. Даже документация MSDN светлая на земле.

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

Итак, я думаю, что у него есть потенциал, но вы были бы совершенно безумны, чтобы узнать его еще - дождитесь большего количества обучения, документации и книг, иначе вы будете вдаваться в неё!

Ответ 6

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

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

Ответ 7

Я рассматриваю MS WF как низкоуровневую библиотеку документооборота, а не полноценный продукт рабочего процесса предприятия, такой как K2. Это позволит вам создать приложение, поддерживающее рабочий процесс, но само по себе не является приложением рабочего процесса. Мой опыт в этом качестве был положительным, хотя нам пришлось строить вокруг себя много собственной инфраструктуры (паб/подфрейм, менеджер жизненного цикла worlkflow и т.д.). Большая часть документации там довольно упрощена и не распространяется на создание корпоративного рабочего приложения на основе MS WF.

Ответ 8

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

Ответ 9

Это действительно зависит от того, что вы хотите с этим делать. Я использовал его немного, но по сравнению с более зрелыми продуктами, такими как MetaStorm (я знаю, что это BPM, но есть еще компонент рабочего процесса), Process Choriographer и IBM MQ workflow, нет никакого сравнения. Он просто недостаточно зрелый. С другой стороны, он свободен там, где другие нет, и, вероятно, может выполнить свою работу. Я не знаю, могу ли я разместить на нем многомиллионную операцию, но с меньшими, я бы дал ей еще один выстрел. Реальным препятствием, с которым вы столкнетесь, является изменение в процессе мышления, которое оно требует. Если у вас нет разработчиков, которые работали с государственными системами, прежде чем это может стать настоящим препятствием.

Ответ 10

Брайан, я не могу ответить на ваш комментарий, но в любом случае, с помощью версии, я имею в виду внесение изменений в базовый код рабочего процесса без нарушения уже запущенных экземпляров и изящное применение обновлений для существующих рабочих процессов. Я не уверен в "запасе" WF, но, по крайней мере, в среде SharePoint нет концепции версий рабочего процесса, поэтому новые версии должны быть развернуты как совершенно разные рабочие процессы, которые становятся кошмаром обслуживания. Это не имеет ничего общего с "регидратацией", регидратация - это процесс, с помощью которого вы возвращаете "бездействующий" рабочий процесс в действие после некоторого события или изменения состояния. Это прозрачно обрабатывается рабочей средой рабочего процесса.

Ответ 11

WF ist интегрирован в SharePoint (WSS 3.0), и я создал довольно много рабочих процессов для различных сайтов SharePoint, поэтому я могу рассказать о моем опыте WF в SharePoint. По сравнению с другими рабочими рамками WF хорошо оценивает. Он стабилен (я не испытывал никаких таинственных ошибок), рабочие процессы довольно просты в дизайне (спасибо дизайнеру рабочего процесса в Visual Studio), и вы можете использовать не только последовательные, но и рабочие процессы состояний.

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

Ответ 12

Никогда не пробовал WFF, но я помню, как читал эту статью о WFF от Leon Bambrick, где он в основном говорит, что весь жанр инструментов разработки программного обеспечения бред какой то. Можете помочь вам решить так или иначе.