Каков ваш опыт работы с Windows Workflow Foundation? - PullRequest
33 голосов
/ 22 сентября 2008

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

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

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

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

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

Заранее спасибо!

Ответы [ 12 ]

22 голосов
/ 22 сентября 2008

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

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

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

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.

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

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

13 голосов
/ 22 сентября 2008

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

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

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

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

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

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

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

10 голосов
/ 22 сентября 2008

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

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

9 голосов
/ 03 октября 2008

У нас был проект на работе, в котором я участвовал, используя рабочие процессы. Идея (из руководства) заключалась в том, чтобы мы, программисты, писали Workflow Activity вместе с «движком» и фреймворком. Тогда непрограммисты позаботятся обо всем остальном, скомпилировав свои собственные рабочие процессы в dll, которые механизм будет автоматически загружать.

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

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

7 голосов
/ 07 апреля 2010

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

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

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

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

5 голосов
/ 23 января 2009

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

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

4 голосов
/ 22 сентября 2008

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

3 голосов
/ 07 апреля 2010

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

2 голосов
/ 22 сентября 2008

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

1 голос
/ 22 сентября 2008

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

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

...