Альтернативы Windows Workflow Foundation? - PullRequest
13 голосов
/ 21 августа 2008

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

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

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

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

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

Ответы [ 9 ]

13 голосов
/ 21 августа 2008

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

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

4 голосов
/ 09 января 2009

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

1 голос
/ 06 марта 2017

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

1 голос
/ 23 октября 2008

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

0 голосов
/ 01 апреля 2017

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

Ориентированный на задачу

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

Event-Driven

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

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

0 голосов
/ 23 января 2017

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

0 голосов
/ 11 мая 2012

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

0 голосов
/ 09 января 2009

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

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

0 голосов
/ 21 августа 2008

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...