Я хотел бы дать свои 2 цента:
Я работаю в новом проекте с довольно сложным доменом, где некоторые рабочие процессы домена могут развиваться и изменяться в некоторых различных сценариях.Мы анализировали возможные решения для организации различных Серверов приложений (сервисы WCF).Первым архитектурным решением, которое мы проанализировали, было использование шаблона Service Bus + PubSubs (nservicebus, Rhino ESB, masstransit, Shuttle ESB ...).Другое решение, которое мы проанализировали, было WF 4.0.Мы близки к тому, чтобы принять решение, и к настоящему времени WF 4.0 является выбранным, потому что:
- Рабочие процессы моделируются с использованием рабочего процессадиаграммы
- рабочий процесс конструктор диаграмм может быть встроен в пользовательское приложение, которое можно использовать для развития рабочих процессов во время производства, поскольку они определены вXAML.
- Шаблон PubSubs с sagas как-то ослабил бы то, как моделируется рабочий процесс, и в некоторых сложных сценариях было бы трудно иметь четкое представление о том, как работает рабочий процесс
- WF 4.0 WorkflowСлужбы поверх WCF , поэтому вы можете иметь действия отправки / получения, которые взаимодействуют с конечными точками WCF.Таким образом, мы обладаем всей мощью и гибкостью WCF: безопасность, надежная связь, стандарты MSMQ, WS *, ...
- WF 4.0 могут быть размещены на Appfabric : масштабируемость, ремонтопригодность, мониторинг и устранение неполадок стало проще
Есть минус, который мы уже анализируем, это тот факт, что WF 4.0 не поддерживает конечные автоматы (как это было в версии3,5).Хотя MSFT объясняет, как реализовать конечные автоматы , используя новые действия Fowchart, поставляемые с 4.0
Надеюсь, это поможет,
Juanjo