c# - studio - ¿Cómo diseñar un motor de reglas?
visual studio installer (7)
No puedo creer que implemente el suyo teniendo en cuenta que hay tantos disponibles comercialmente como de código abierto.
Recomiendo echar un vistazo a InRule como una gran opción comercial que tiene un precio razonable, o NxBRE en el espacio de código abierto.
Se supone que debo crear un motor de reglas simple en C #. ¿Alguna pista sobre cómo puedo proceder ?. Es un motor de reglas minimalista, y usaría SQL Server como back-end. ¿Tenemos algún modelo general o patrones de diseño que generalmente se apliquen a motores de reglas? ¿Qué tipo de tecnologías .Net puedo usar para diseñar uno? Cualquier dirección sería útil. Gracias.
¿Qué tipo de motor de regla estás buscando? Para las prácticas de estilo? Si es así, ve a StyleCop . No es la respuesta, pero puede que ya exista algo para ti.
¿Se te ha dado alguna indicación sobre el método? (es decir, si esto se complementa con el material del curso, ¿qué estás aprendiendo actualmente?) Si se supone que es un sistema bastante básico, es posible que encuentres el éxito en la búsqueda de la Máquina de estados finitos determinista y la Máquina de estados finitos no deterministas.
Si quiere escribir su implementación, algo como esto ...
[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);
}
... o esto...
[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);
}
... entonces tal vez consulte mi motor de reglas simples aquí: http://www.duanewingett.info/2015/01/21/SimpleCRuleEnginePart1TheRuleEngine.aspx
Si tiene analistas de negocios para programar el motor de reglas de alto nivel, entonces elija uno de los motores de reglas antes mencionados o haga los suyos propios (incluidos los flujos de trabajo). De lo contrario, simplemente codifique la lógica de su negocio en código y si alguna vez necesita contratar analistas comerciales y rehacer el sistema, está en un buen lugar para estar.
Si usa .NET 3.0 o posterior, puede usar el Motor de reglas de Windows Workflow Foundation sin tener que usar Flujo de trabajo de forma inmediata.
He hecho esto en un proyecto, y puedes usar SQL o XML como back-end, y funciona muy bien. Puede usar el IDE que viene con los ejemplos de Workflow y ponerlo en sus propias aplicaciones. Es excelente.
También puedes probar http://rulesengine.codeplex.com/