2008-08-21 15 views
13

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

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

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

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

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

ответ

13

Вы можете попробовать Simple State Machine. Вам придется самостоятельно осуществлять контроль доступа и фоновые таймеры, но это не должно быть большой проблемой. SSM также был построен из разочарования WF. There are some other state machine implementations on Codeplex также. Если один из них не вписывается в его счет из коробки, они имеют открытый исходный код и должны быть достаточно близко к вам.

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

+2

Простая машина состояния умна. Если его модель подходит, но вы предпочтете работать на C#, чем в Boo, вы можете также рассмотреть Stateless (http://stateless.googlecode.com) – 2009-08-16 02:34:52

0

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

4

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

0

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

1

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

0

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

Task-сориентированные

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

Event-Driven

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

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

Смежные вопросы