Предложения по механизму рабочих процессов .NET [закрыто]
-
06-07-2019 - |
Вопрос
я наткнулся лицо без гражданства, иерархическая структура конечного автомата, основанная на Простой конечный автомат для Бу, но настроен с использованием C# 3.0
Его легко настроить и использовать, возможно, я скоро им воспользуюсь.
Но мне просто интересно, если
- Кто-нибудь использовал лицо без гражданства для реальных проектов (если да, то каково ваше мнение?)
- Существуют ли другие хорошие механизмы рабочего процесса для .NET?(кроме ВФ)
Решение
Я использовал Stateless и WF для приложения, которое когда-нибудь планируется запустить в производство.:) Я подробно описал свой опыт в моем посте здесь.
В целом, я предпочитаю Stateless, потому что он проще для большего количества вещей, чем WF.Конечно, приятно иметь возможность графически спроектировать рабочий процесс, но когда вам нужно реализовать что-то более сложное, чем последовательный рабочий процесс (например, рабочий процесс конечного автомата), вам придется работать с ExternalDataExchange только для того, чтобы совершать правильные переходы между состояниями.Вероятно, это несложно, но, учитывая это, а также тот факт, что вам нужно реализовать службу персистентности для приостановки рабочего процесса, мне показалось это непривлекательным.В любом случае мне не нужно сохранять рабочий процесс на диск для последующего выполнения...поэтому я буду использовать регулярные события, чтобы справиться с этим в безгражданстве.Обработка ошибок легко осуществима в Stateless (мне это удалось), но выбранная мной реализация сомнительна и является темой другого обсуждения (которое я сейчас ищу на SO!).Возможно, очень скоро я опубликую вопрос по этому поводу.
Удачи с Безгражданством.Я надеюсь услышать, как у вас продвигаются дела.
Другие советы
Для Workflow Foundation используйте его только для зеленого проекта, чтобы можно было использовать WF4.Проверь этоhttp://realworldsa.dotnetdevelopersjournal.com/goodbyewindowsworkflowfoundationseeyouin2011.htm
WF 1.0 и 1.5 несовместимы с WF4.Так что это не передовое решение.
Я лично использую http://simplestatemachine.codeplex.com как альтернатива WF.Я использовал его в одной полной производственной системе (на основе asp.net) для управления довольно сложной системой выдачи бизнес-лицензий (обработка более 350 различных государственных бизнес-лицензий).
Я еще не пробовал без гражданства, но это выглядит многообещающе.
Опоздал на вечеринку.Мы используем Stateless в производстве уже более полутора лет, никаких проблем.Это очень элегантное решение для обработки рабочих процессов, позволяющее быстро интегрировать состояния с вашей моделью данных.Мы представляем наши состояния с помощью и int в SQL, поэтому вы можете запустить конечный автомат в ASP.Net в процессе.Это справедливо и для длительных рабочих процессов.
Если ваши требования просты, может вас заинтересовать очень простой StateMachine, который я написал.
Имейте в виду, что он (на момент написания) не поддерживает иерархические состояния.
Вы можете найти его на NuGet:
nuget install nstate
или проверьте это на GitHub:
https://github.com/benaston/NState
Я надеюсь, что кто-то найдет это полезным.
Если вы не посмотрели Фонд рабочих процессов Windows вероятно, стоит хотя бы немного почитать об этом.