Frage

Ich bin mir nicht sicher, ob sich diese Frage als hier qualifiziert, aber ich kann mir keinen besseren Ort vorstellen.

Ich erstelle eine Webanwendung, die zu den meisten Anwendungsfällen mehrere alternative Wege hat. Diese Pfade empfinde ich als Geschäftsregeln. Ich möchte meine Anwendung zuerst für Hauptszenarien codieren und dann alternative Szenarien als Geschäftsregeln anwenden (Regeln können auch bei der Produktion hinzugefügt und entfernt werden).

Ich denke, meine Bewerbung verdient eine Regelmotor. Ich habe in der Vergangenheit keine benutzt. Ich habe also nur wenige Fragen, aber davor ist hier das Profil meiner Anwendung:

  • Webbasierte Anwendung (datenintensiv)
  • Etwas kritisches (im Zusammenhang mit der Gesundheitsversorgung) - Dynamik muss berücksichtigt werden
  • Microsoft .net Platform (ASP.NET, MS SQL Server, WCF)

Hier sind einige Fragen:

  • Wie am besten von Regeln externalisieren?
  • Ist es möglich, Regeln sofort anzuwenden, oder stapelig ist die einzige Möglichkeit?
  • Wie kann der Geschäftsbenutzer die Regeln kontrollieren?
  • Welche am besten (geeignete) Regelmotor gibt es? (Ich bevorzuge ein Open -Source -Produkt)

Jede zusätzliche Erfahrung ist willkommen, da ich immer noch in die Bedürfnisse bohre.

War es hilfreich?

Lösung

Für ASP.NET stehen viele Geschäftsregeln zur Verfügung. Windows Workflow Foundation, BizTalk Geschäftsregel Engine, Solver Foundation, Stream Insight, und Reaktives Gerüst. Google enthüllt viele weitere, wie z. Einfache Regelmotor und Benutzerdefinierte Regel Engine.

Wenn es viele Lösungen für ein Problem gibt, ist das ein Hinweis, dass keiner von ihnen gut ist, und das war meine Erfahrung mit Regelmotoren. Ich untersuchte den WWF, und meine Erfahrung war, dass die Implementierung der Engine und die Definition von Regeln schwieriger und fehleranfällig war, als einfach die Regeln in der Anwendungslogik zu kodieren.

Ich entfache Binärformat oder grafische DSLs. Nach meiner Erfahrung sind sie sehr schwer zu ändern, zu debuggen, zu suchen und zu warten.

Mein Rat ist, die Regeln in einer vertrauten, endverwechselungsfähigen, domänenspezifischen, textbasierten Sprache zu implementieren. Welche Sprache hängt davon ab, in welcher Domäne Sie arbeiten und welche Sprachen Ihre Endbenutzer vertraut sind. Untersuchen Sie konkurrierende Produkte und Implementierungen, um zu sehen, was bereits in Ihrer Domain verwendet wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top