Альтернативы Windows Workflow Foundation?

Я уже некоторое время использую WWF как часть приложения внутреннего колл-центра (ASP.NET), и, узнав, что это хорошая практика для понимания того, как должна работать система рабочих процессов на основе конечного автомата , я определенно не влюблен в Сам WWF. На мой взгляд это:

  1. Чрезмерно сложный, особенно для использования в веб-приложениях (все эти многопоточные приложения)
  2. Незрелый (когда-либо работал с этим ужасным дизайнером?)
  3. Anemic в своем текущем наборе функций

У кого-нибудь есть предложения по улучшению платформы рабочих процессов на основе .NET? В частности, я ищу следующие функции:

  1. На основе конечного автомата (отображение состояний на доступные действия)
  2. Ориентация на права пользователей (контроль над тем, у кого есть доступ к каким действиям)
  3. Возможность запускать рабочие процессы как синхронизированные фоновые задачи (например, отправлять напоминания об элементах, которые находились в определенном состоянии в течение x дней)

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

21.08.2008 03:58:11
9 ОТВЕТОВ
РЕШЕНИЕ

Вы можете попробовать Simple State Machine . Вы должны были бы реализовать контроль доступа и фоновые таймеры самостоятельно, но это не должно иметь большого значения. SSM также был создан из-за разочарования WF. В Codeplex есть и другие реализации конечных автоматов . Если кто-то из них не подходит, он выставляет счет из коробки, они с открытым исходным кодом и должны помочь вам достаточно близко.

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

13
21.08.2008 04:38:42
Simple State Machine - это умно. Если его модель подходит, но вы предпочитаете работать в C #, а не в Boo, вы можете также рассмотреть возможность использования Stateless ( stateless.googlecode.com )
Nicholas Blumhardt 16.08.2009 02:34:52
Извините, я новичок здесь (и в .NET), поэтому я опаздываю к игре. :) Я согласен, что реализация конечного автомата в WF довольно сложна. Я сам использую последовательные рабочие процессы, потому что они действительно соответствуют моим требованиям, но обработка ошибок действительно сложна (для меня), когда все, что связано, все еще включает требования обновления GUI. Спасибо за рекомендацию Simple State Machine - мне нравится, как легко реализовать последовательные рабочие процессы в WF, но я полагаю, что в SSM это все еще довольно просто, и, возможно, обработка ошибок будет гораздо проще реализовать.
Dave 5.12.2009 16:14:32

У вас есть возможность рассмотреть BizTalk Server?

0
21.08.2008 04:23:31

Попробуйте Drools.NET

1
23.10.2008 14:44:53

Я бы держался подальше от Drools.Net, так как последний SVN коммит был в сентябре 2007 года. Выглядит хорошо, но кажется слишком рискованным, чтобы включать такую ​​большую библиотеку в ваш проект, когда вы знаете, что она больше не привлекает внимания.

4
9.01.2009 10:41:01

Мне очень понравилось работать с Oracle BPEL Process Manager. Это часть JDeveloper.

http://www.oracle.com/technology/bpel/index.html http://gemsres.com/story/dec06/313602/jellema-fig1.jpg

0
9.01.2009 10:49:20

Вы можете взглянуть на джаз - http://jazz.codeplex.com/

0
10.05.2012 21:54:01

Попробуйте WF4.5. Он был полностью переработан с .NET4.0.

0
23.01.2017 09:32:05

Посмотрите на Workflow Engine . Это облегченная рабочая среда для решений .NET и Java. Он имеет визуальный дизайнер HTML5, контроль версий, приличный интерфейс и поддерживает широкий спектр баз данных.

1
6.03.2017 19:37:10

Прежде всего вы должны искать двигатель, поддерживающий BPMN. BPMN является стандартом в управлении рабочими процессами и процессами и хорошо поддерживается многими проектами. Во-вторых, вы должны подумать о требованиях к двигателю. Когда вы ищете BPMN Engine, есть два разных подхода:

Задача-Orientated

Эти механизмы (например, JBoss BPM - jbpm ) предназначены для обработки входных данных с помощью четко определенной модели процесса. Каждая задача в модели дает контроль над фрагментом кода - стандартной или индивидуальной реализацией. Процесс заканчивается, когда токен процесса достигает конца модели процесса (End-Event). Этот вид обработки занимает миллисекунды. Движок может использоваться для пакетных заданий или обработки данных со сложным потоком, ориентированным на процесс.

Event-Driven

Основанные на человеке механизмы рабочих процессов управляются событиями (например, Imixs-Workflow ). Это своего рода конечный автомат, но, как правило, предлагает гораздо больше функциональности. Вы можете запустить новый экземпляр процесса, назначив вашему бизнес-объекту начальную задачу (определенную событием запуска). Чем механизм рабочего процесса позволяет вам запускать события, назначенные каждой задаче, определенной в вашей модели. Каждое событие (Intermediate CatchEvent) запускает механизм рабочего процесса для передачи запущенного экземпляра процесса в следующую задачу (состояние). Пока не сработает новое событие, процессный экземпляр «ждет» в текущей задаче (состоянии). Процесс одобрения является типичным примером такого рода ориентированного на человека рабочего процесса.

Вы можете найти список двигателей здесь .

0
31.03.2017 21:47:22