Предложения Engine Engine для .NET
Я наткнулся на stateless, иерархическую структуру государственного аппарата на основе Simple State Machine для Boo, но настроен с использованием С# 3.0
Легко настроить и использовать, я, вероятно, буду использовать его в ближайшее время.
Но мне было просто интересно, если
- Любой, кто использовал stateless для реальных проектов (если да, то каково ваше мнение?)
- Есть ли еще какие-то хорошие рабочие процессы для .NET? (кроме WF)
Ответы
Ответ 1
Я использую Stateless и WF для приложения, которое собирается когда-нибудь выпускаться.:) Я подробно рассказал о своих опытах в своем сообщении здесь.
В целом, я предпочитаю безгражданство, потому что это проще для большего количества вещей, которые WF. Конечно, приятно иметь возможность графически создавать рабочий процесс, но когда вам нужно реализовать что-то более сложное, чем последовательный рабочий процесс (например, рабочий процесс конечного автомата), вам нужно будет работать с ExternalDataExchange только для правильного перехода состояния. Это, вероятно, не сложно, но, учитывая это, и тот факт, что вам нужно реализовать службу сохранения для приостановки рабочего процесса, просто казался мне непривлекательным. В любом случае мне не нужно сохранять рабочий процесс на диске для последующего выполнения... поэтому я буду использовать регулярные события, чтобы справиться с этим в Stateless. Обработка ошибок легко выполнима в Stateless (я был успешным с ней), но реализация, которую я предпринял, сомнительна и является темой другого обсуждения (которое я ищу сейчас на SO!). Возможно, я скоро отправлю вопрос об этом.
Удачи с безгражданством. Я надеюсь услышать, как вы прогрессировали с ним.
Ответ 2
Для Workflow Foundation используйте его только для зеленого проекта, чтобы использовать WF4. Проверь это
http://realworldsa.dotnetdevelopersjournal.com/goodbyewindowsworkflowfoundationseeyouin2011.htm
WF 1.0 и 1.5 не совместимы с WF4. Таким образом, это не форвардное решение.
Я лично использую http://simplestatemachine.codeplex.com в качестве альтернативы WF. Я использовал его в одной полной производственной системе (на основе asp.net) для обработки довольно сложной системы выдачи бизнес-лицензий (обработка 350 + разных государственных бизнес-лицензий).
Я еще не пробовал апатриды, но он выглядит многообещающим.
Ответ 3
Поздняя вечеринка. Мы использовали Stateless в производстве уже более полутора лет, без проблем. Это очень элегантное решение для обработки рабочих процессов, и вы быстро интегрируете состояния с вашей моделью данных. Мы представляем наши состояния с и int в SQL, поэтому вы можете запускать конечный автомат в ASP.Net в процессе. Это справедливо и для длинных рабочих процессов.
Ответ 4
Если ваши требования являются базовыми, может представлять интерес очень простой StateMachine, который я написал.
Пожалуйста, будьте предупреждены о том, что он (на момент написания) не поддерживает иерархические состояния.
Вы можете найти его на NuGet:
nuget install nstate
или проверьте его на GitHub:
https://github.com/benaston/NState
Я надеюсь, что кто-то сочтет это полезным.
Ответ 5
Если вы не просмотрели Windows Workflow Foundation, возможно, по крайней мере стоит немного почитать о нем.