Правила проектирования двигателей и примеры в С#

В настоящее время я пишу приложение .net с С# и хочу проверить ряд правил и основываясь на передаче или сбое правил, выполните действие. Поэтому я ищу реализовать универсальное решение, которое я могу повторно использовать, придерживаясь хороших принципов. Это привело меня к выводу, что мне нужно написать механизм правил.

У меня есть хорошее знание С#, но это первый раз, когда мне нужно написать механизм правил, так как часть моих исследований в области разработки и разработки таких, я ищу любые советы относительно создания такого двигатель. Что было бы лучше, если бы были какие-то примеры, на которые я мог бы смотреть? Любые С#/.NET правила двигателя приложений? Какой слой в типичной трехуровневой архитектуре должен располагаться? Я быстро просмотрел код и код Google, но никто не выскочил на меня! Поэтому какое-то направление было бы замечательным.

Ответ 1

На самом деле .NET имеет первоклассный движок правил, предназначенный для использования с рабочими потоками (как он и был разработан), но может быть легко использован вне рабочих процессов: вы должны увидеть " Windows Workflow Foundation Engine Engine" и проверьте пространство имен System.Workflow.Activities.Rules.

Изучение того, как использовать правила за пределами рабочих процессов, занимает всего несколько раз.

Изменить. Если вы хотите проверить архитектуру, вот два предустановленных механизма с открытым исходным кодом:

Ответ 2

Построение и внедрение вашего собственного механизма правил может быть очень сложной задачей с учетом многих вещей. Самая большая проблема, с которой вы столкнетесь, - это решить, какие правила должны срабатывать и когда. Не давая этого, надлежащий уход может привести к проблемам с производительностью в ходе реализации. Я бы настоятельно рекомендовал сосредоточиться на проблеме бизнеса и предоставить вашим специалистам по предмету (МСП) возможность определять и поддерживать свои собственные правила. Есть много хороших коммерческих продуктов, которые это делают; тот, который я успешно реализовал несколько раз, - www.inrule.com. У них есть хороший набор продуктов, которые могут помочь решить простые и сложные проблемы. Надеюсь, это поможет.