Кто-нибудь успешно использовал рабочий процесс Windows для механизма бизнес-правил / проверки?


11

Мне было интересно, если кто-нибудь успешно использовал Windows Workflow Foundation для механизма BusinessRules / Validation, или вы знаете какой-то пример кода или статьи по этому поводу.

Если вы использовали его раньше, что вы думаете об этом? Как это по сравнению с другими системами BusinessRule / Validation?

Я думаю о правилах, как

if (A, B, and C) 
    AllowAccess();

Или же

if (Value between X and Y)
    return true;

Ответы:


6

Я начал строить двигатель с использованием WWF WCF несколько месяцев назад. Я не знаю, насколько сложна ваша база правил, но наша была довольно большой. Когда у вас есть потенциал для чего-то вроде 40 000 веток, WWF не подходит. В качестве альтернативы я закончил создание механизма, который использовал таблицы логических исключений в SQL. Строки будут хранить основные значения, а также форматированные строки для формул, которые варьируются между исключениями. В сочетании с динамическим языком (я использовал встроенный движок ironpython с оберткой, и вы могли бы использовать встроенный движок JScript), логика могла быть определена на высоком уровне абстракции на лету. Я так рад, что пошел по этому пути.Логика перетаскивания кажется великолепной, но деловые люди никогда не смогут ее использовать, несмотря на маркетинг, и это только замедлит разработчика, ИМХО, быстро превращаясь в крысиное гнездо .

Обновление: если вы все еще заинтересованы, вот руководство для начинающих . Это, конечно, не дорогой, но есть несколько приличных видео. Что касается установки, наши сетевые инженеры выполнили настройку для меня (политика компании по обслуживанию серверов, безопасности и т. Д.), Но предположительно это было почти идентично настройке базовой службы WCF. В основном кидайте его в виртуальный каталог на МКС. Поскольку обычно это длительный процесс, будьте особенно внимательны с управлением памятью при написании сервиса. Если вы не выбрасываете какой-то ресурс снова и снова в течение 6 месяцев, это действительно приведет к тому, что ваш сервер будет недоволен.


Как это было настроено? Знаете ли вы какие-либо статьи в Интернете для начала или которые содержат пример кода?
Рэйчел

Спасибо. Как прошло выполнение бизнес-правил?
Рэйчел

И, честно говоря, я против идеи использовать WWF для этого, однако мой товарищ по команде все для этого, поэтому я хотел бы, по крайней мере, дать ему шанс :)
Рэйчел

1
@ Rachel - производительность была разумной (достаточно быстрой, чтобы ее можно было запускать в настройках пользовательского интерфейса с небольшой многопоточностью, если это что-то значит). Это тоже не безумно быстро, но ничего с распределенным сервисом WCF тоже не будет.
Морган Херлокер

В Интернете все еще есть материал, демонстрирующий ваш логический движок и подход IronPython? (Ваша ссылка "Руководство для начинающих" больше не работает).
Роберт Харви

1

Я должен согласиться с железным кодом. Мы написали систему в стиле перетаскивания за пару лет до выхода нового Biztalk (как ни странно). Идея заключалась в том, что непрограммисты могут программировать, и система будет легко обслуживаемой и изменяемой.

Результат: вам все еще нужны «бизнес-аналитики», которые должны быть столь же хорошо подготовлены, как и программист, но на новом «языке» системы WWF. Таким образом, вы не получили много вообще там. Отладчик был далеко не так хорош, как настоящая система разработки, поэтому вы там проиграли. Вам также нужны были программисты для написания сложных модулей, которые были ядром обработки данных и графического интерфейса. Масштабируемость также быстро исчезла. Простые бизнес-правила было легко составить, но как только вы прошли дюжину, вы оказались в спагетти.

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

Это выглядело действительно круто для маркетинговых типов, хотя, сделано для большой демонстрации :)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.