Hat jemand Windows Workflow erfolgreich für eine Business Rules / Validation Engine verwendet?


11

Ich habe mich gefragt, ob jemand Windows Workflow Foundation erfolgreich für eine BusinessRules / Validation-Engine verwendet hat oder ob Sie Beispielcode oder Artikel dazu kennen.

Wenn Sie es schon einmal benutzt haben, was halten Sie davon? Wie ist es im Vergleich zu anderen BusinessRule / Validation-Systemen?

Ich denke an Regeln wie

if (A, B, and C) 
    AllowAccess();

Oder

if (Value between X and Y)
    return true;

Antworten:


6

Ich habe vor einigen Monaten angefangen, einen Motor mit WWF WCF zu bauen. Ich weiß nicht, wie komplex Ihre Regelbasis ist, aber unsere war ziemlich groß. Wenn Sie das Potenzial für etwa 40.000 Filialen haben, passt der WWF nicht gut dazu. Als Alternative habe ich eine Engine erstellt, die logische Ausnahmetabellen in SQL verwendet. In den Zeilen werden die Grundwerte sowie formatierte Zeichenfolgen für Formeln gespeichert, die zwischen Ausnahmen variieren. In Kombination mit einer dynamischen Sprache (ich habe eine eingebettete Ironpython-Engine mit einem Wrapper verwendet und Sie könnten eine eingebettete JScript-Engine verwenden) konnte die Logik im laufenden Betrieb auf einer stark abstrahierten Ebene bestimmt werden. Ich bin so froh, dass ich diesen Weg gegangen bin.Drag & Drop-Logik scheint großartig zu sein, aber Geschäftsleute werden sie trotz des Marketings nie verwenden können, und sie wird einen Entwickler meiner Meinung nach nur verlangsamen und schnell zum Nest einer Ratte werden .

Update: Wenn Sie immer noch interessiert sind, finden Sie hier den Leitfaden für Anfänger . Es ist sicherlich nicht expansiv, hat aber einige anständige Videos. In Bezug auf die Einrichtung haben unsere Netzwerktechniker die Einrichtung für mich vorgenommen (Unternehmensrichtlinien für Serverwartung, Sicherheit usw.), aber angeblich war sie fast identisch mit der Einrichtung eines grundlegenden WCF-Dienstes. Grundsätzlich werfen Sie es in ein virtuelles Verzeichnis in ISS. Da es sich normalerweise um einen lang laufenden Prozess handelt, sollten Sie beim Schreiben des Dienstes besonders vorsichtig mit der Speicherverwaltung umgehen. Wenn Sie 6 Monate lang nicht immer wieder Ressourcen entsorgen, summiert sich das wirklich und Ihr Server wird nicht glücklich sein.


Wie war es eingerichtet? Kennen Sie Artikel, die online sind oder Beispielcode enthalten?
Rachel

Vielen Dank. Wie war die Leistung bei der Ausführung der Geschäftsregeln?
Rachel

Und ganz ehrlich, ich bin gegen die Idee, den WWF dafür einzusetzen, aber mein Teamkollege ist alles dafür, also möchte ich ihm zumindest eine Chance geben :)
Rachel

1
@ Rachel- Leistung war angemessen (schnell genug, um in einer UI-Einstellung mit ein bisschen Multithreading ausgeführt werden zu können, wenn das etwas bedeutet). Es ist auch nicht wahnsinnig schnell, aber nichts mit einem verteilten WCF-Dienst wird auch lodern.
Morgan Herlocker

Gibt es im Internet noch Material, das Ihre Logik-Engine und Ihren IronPython-Ansatz demonstriert? (Ihr Link "Anfängerleitfaden" funktioniert nicht mehr).
Robert Harvey

1

Ich muss Ironcode zustimmen. Wir haben ein paar Jahre vor dem Erscheinen des neuen Biztalk ein Drag-and-Drop-System im Flowchart-Stil geschrieben (seltsamerweise). Die Idee war, dass Nicht-Programmierer programmieren konnten und das System leicht zu warten und zu ändern war.

Das Ergebnis: Sie brauchten immer noch "Business Analysten", die so gut ausgebildet sein mussten wie ein Programmierer, aber in der neuen "Sprache" des WWF-Systems. Sie haben dort also überhaupt nicht viel gewonnen. Der Debugger war bei weitem nicht so gut wie ein echtes Entwicklungssystem, also haben Sie dort verloren. Sie brauchten auch Programmierer, um die kniffligen Module zu schreiben, die den Kern der Daten- und GUI-Verarbeitung bildeten. Die Skalierbarkeit ließ auch sehr schnell nach. Einfache Geschäftsregeln waren leicht zusammenzustellen, aber als Sie ein Dutzend hinter sich hatten, waren Sie in Spaghetti.

Ich denke, es hatte einige Vorteile, aber im Grunde wäre es besser, eine Skript-Engine zu verwenden, um benutzerdefinierte Module zusammenzufügen.

Für die Marketing-Typen sah es allerdings wirklich cool aus, was für eine großartige Demo sorgte :)

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.