Динамические бизнес-правила - PullRequest
7 голосов
/ 05 августа 2011

Я создаю интерфейс, в котором пользователи могут создавать свои собственные бизнес-правила из определенных для домена объектов во время выполнения, сохранять эти правила в базе данных и затем использовать приложением. Некоторые из них являются сложными предикатами, а другие требуют комбинаций объектов предметной области в довольно сложных отношениях. До сих пор я изучал GoF, динамику с eval и CodeDom. У кого-нибудь есть предложения о том, что следует использовать?

Ответы [ 4 ]

5 голосов
/ 05 августа 2011

На самом деле, вы можете просто разработать свое приложение с помощью API механизма правил WF без использования WF.http://blogs.microsoft.co.il/blogs/bursteg/archive/2007/08/09/WF-Rules-Engine-without-Workflow.aspx Это избавит вас от большой работы.

1 голос
/ 05 августа 2011

Как часто меняются правила?Создание системы, которая позволяет бизнесу создавать (и версию) свои собственные правила, значительно сложнее, чем создание системы, которая позволяет программисту динамически обновлять правила.

Когда аналогичное требование возникло в прошлом проекте,бизнес признал, что пока да, правила изменятся;они не будут меняться так часто, что будет , чтобы они делали обновления.Мы закончили с использованием IronPython для динамических частей и хранения кода в базе данных, и система подтянет соответствующие правила при загрузке.Остальная часть приложения была написана на C #.Победа для нас и для бизнеса.

1 голос
/ 05 августа 2011

Потратив год на создание двигателя правил и борьбу на подходах, я могу сказать, что это нелегко.Особенно, когда вы сосредоточены на том, что ваша цель.Чтобы заставить пользователей писать правила для системы, вам действительно нужно сосредоточиться на этой области.То, что легко для разработчика, возможно, намного сложнее для большинства бизнес-пользователей.Мы создали платформу для разработки правил в Excel, которая была скомпилирована в C # и работала динамически ... проблема заключалась в том, что пользователи находили электронные таблицы и поток логики слишком сложными и нанимали подрядчиков ASp.NET для создания правил.

BizTalk имеет движок, который, я думаю, можно использовать для приложений .NEt http://www.microsoft.com/biztalk/en/us/business-rule-framework.aspx

Веселитесь!

1 голос
/ 05 августа 2011

Кайдзен, в зависимости от объема и вида ваших динамических правил, вы можете в конечном итоге использовать механизм рабочего процесса, например, MS WF, для определения правил в качестве действий рабочего процесса ... таким образом, вы изолируете логику и не нуждаетесь вполная перестройка приложения, когда вам нужно что-то изменить в рабочем процессе.

Возможно, это не лучшее решение, но может быть альтернативой ...

...