правила дизайна движка и примеры в c # - PullRequest
10 голосов
/ 14 мая 2011

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

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

Ответы [ 2 ]

3 голосов
/ 14 мая 2011

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

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

Редактировать : Если вы хотите проверить архитектуру, вот два готовых движка с открытым исходным кодом:

0 голосов
/ 01 июня 2011

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

...