Я'м должен создать простой двигатель правило в C#. Любой ведет о том, как я могу поступить?. Это'ы минималистичный двигателя правило, и будет использовать SQL Server в качестве серверной. У нас есть генеральный план или шаблоны проектирования, которые обычно применяются к правилу двигателей? Какому виду .Net-технологии можно использовать для разработки одного? Любой маршрут будет полезен. Спасибо.
Если вы're, используя .Чистая 3.0 или более поздней версии, вы можете использовать обработчик правил фонда рабочего процесса Windows]1 без необходимости вообще использовать рабочий процесс.
Я'ве сделали это в проекте, и вы можете использовать SQL или XML в качестве бэкэнда, и он отлично работает. Вы можете использовать IDE, который поставляется с примерами рабочих процессов и положил его в свои собственные приложения. Это's превосходное.
Я не могу поверить, что вы бы реализовать свой собственный рассматривая имеющиеся в продаже и открытым исходным кодом.
Я рекомендую взглянуть на InRule как большой коммерческий вариант, что это приемлемая цена, или NxBRE в открытом космосе.
Если вы хотите написать свою реализацию что-то вроде этого...
[TestMethod]
public void GreaterThanRule_WhenGreater_ResultsTrue()
{
// ARRANGE
int threshold = 5;
int actual = 10;
// ACT
var integerRule = new IntegerGreaterThanRule();
integerRule.Initialize(threshold, actual);
var integerRuleEngine = new RuleEngine<int>();
integerRuleEngine.Add(integerRule);
var result = integerRuleEngine.MatchAll();
// ASSERT
Assert.IsTrue(result);
}
... или это...
[TestMethod]
public void GreaterThanRule_WhenGreater_ResultsTrue()
{
// ARRANGE
int threshold = 5;
int actual = 10;
// ACT
var integerRule = new IntegerGreaterThanRule(threshold);
var integerRuleEngine = new RuleEngine<int>();
integerRuleEngine.ActualValue = actual;
integerRuleEngine.Add(integerRule);
// Get the result
var result = integerRuleEngine.MatchAll();
// ASSERT
Assert.IsTrue(result);
}
... тогда, возможно, проверить мой простой двигатель правилом здесь: http://www.duanewingett.info/2015/01/21/SimpleCRuleEnginePart1TheRuleEngine.aspx
Вы дали какие-либо указания на способ? (т. е. если это дополняется лекционный материал, что вы сейчас изучаете?) Если это предназначается, чтобы быть довольно простой системы, вы могли бы найти успех смотреть в детерминированный конечный автомат и недетерминированных конечных автоматов
Какой двигатель правилом вы ищете? Для укладки практики? Если это так, пойти проверить StyleCop. Не ответ, но там уже может быть что-то там для вас.
Если у вас есть бизнес-аналитики для программирования двигателя высокой уровень правила, а затем выберите одну из вышеуказанных двигателей правилом или свернуть свой собственный (в том числе бизнес-процессов). Если нет, то просто код бизнес-логики в код, и если вы когда-нибудь понадобится, чтобы нанять бизнес-аналитики и переделывать систему, вы'вновь в хорошее место, чтобы быть.