Я думаю, что сегодня не имеет смысла говорить о Workflow в WF4 как о технологическом выборе для такого рода проблем.Что действительно уместно, как упомянул Ладислав Мрнка выше, так это WCF WF Services, размещенные в AppFabric.
Мой опыт показывает, что он приносит большие дивиденды и доставляет массу удовольствия, но в начале возникают проблемы, потому что неправильно понимают, что для многих программистов это изменение методологии, а не изменение технологии.С другой стороны, универсалы и те, у кого есть способ решения проблем, рассматривали WCF WF AppFabric как набор захватывающих возможностей.Поэтому, если в проекте участвуют довольно консервативные разработчики C #, привязанные к своему ежедневному набору ОО и шаблонов, это будет сложно представить.Если команда будет более инновационной, то принятие будет намного проще, потому что потенциал и новые дверные проемы умножаются с каждым открытием.
Две основные концептуальные проблемы, с которыми программисты сталкивались при переходе на эту технологию, были: a) Корреляция сообщений и обмен сообщениямиb) рабочие процессы и модульное тестирование. В стандартных системах в C #, например, рабочий процесс редко является явным и, следовательно, редко проверяется модулем.Общий рабочий процесс оставлен для тестирования по сценариям приемки или интеграции.Представьте явный WF как программный артефакт, и внезапно стандартные разработчики захотят попробовать и модульно его протестировать, что, как правило, не стоит делать.
Аспект корреляции сообщений - это небольшой сдвиг мышления для тех, кто не знаком сшаблоны обмена сообщениями.Большинство разработчиков имели дело с внутрипроцессными и удаленными вызовами, веб-сервисами и SOAP и обычно фокусируются на одном или двух из них.Изначально абстрагироваться от всего этого и работать с общей системой, основанной на сообщениях, поначалу может быть сложно.
С другой стороны, конечный результат - это то, что экономит много времени и создает много возможностей.Одним из главных моментов является то, что, если визуально понятен, worfklow - это то, над чем могут совместно работать конечный пользователь, разработчик и аналитик, устраняя ненужные шаги в жизненном цикле разработки и фокусируя стороны на одном артефакте.Кроме того, он препятствует выделению функциональных возможностей в специализированных приложениях с выделенными слоями клея, поощряя набор бизнес-процессов в WF для каждой бизнес-области.Кроме того, с AppFabric, все для вас - все, что вам нужно - это обеспечить постоянство, регистрацию и пробуждение запланированных действий.Производительность WF4 тоже выдающаяся.
Я бы порекомендовал, чтобы наиболее новаторский или исследовательский член команды провел начальную разведку, чтобы обнаружить сложные детали, заставить работать основные функции, и чтобы этот начальник отвечал за разделение оставшейся работы.