Frage

Wir arbeiten derzeit an einer „data-driven“ Zustandsmaschine Anwendung. Im Moment werden die Zustandsströme alle in der Datenbank konfigurieren, aber keiner von der Entscheidung / Business-Logik ist konfigurierbar in der DB mit unserem aktuellen Design. Aus diesem Grunde hat der Code im Grunde „wissen“, der Staat als auch fließen, so gibt es wirklich keinen Punkt in den Fluss in der Datenbank zu konfigurieren.

Ich habe ein Design im Auge, die uns zusammen einen Zustand Muster zu verdrahten erlauben würde, unter Verwendung von Abhängigkeitsinjektion (Spring.NET), aber ich bin der beste Weg, nicht sicher, ob diese Daten-getriebene zu machen. Ich bin kein großer Fan von Code-wie Dinge zu konfigurieren (wie Klasse oder Methodennamen) in der Datenbank, aber der Entwurf, den ich im Sinne habe, müßte uns die Anwendung in der DB (ähnlich Verdrahtung in einem Spring-XML verdrahten Datei), so dass scheint schlecht.

Wir haben mit dem Windows WF untersucht, aber ich denke, dass wir ein wenig besorgt über die Zukunft von WF sind, und ob dies eine gute Zeit, es zu übernehmen. Ich habe noch nie mit Regeln Motoren behandelt, so frage ich mich, ob das hier von Nutzen sein könnten. Hat jemand irgendwelche Vorschläge, wie dies zu implementieren?

War es hilfreich?

Lösung

Ihre beste Wette ist wahrscheinlich das Daten gespeichert Verhaltens von der Technologie zu entkoppeln verwendet, um sie zu implementieren.

Die Art und Weise, dies zu tun, ist eine DSL (Domain Specific Language). Kommen Sie mit einem Format bis die die Geschäftslogik in der abstrakten darstellen kann (das heißt eine Mikro Sprache), zu speichern Saiten, dass in Ihren Tabellen und implementieren einen Interpreter für sie im Code. Auf diese Weise, wenn die zugrunde liegende Technologie ändert müssen Sie nur den Interpreter neu zu implementieren.

arbeitete ich an einer Anwendung, die diese Technik in der Mitte der 1980er Jahre verwendet, und es wird mehrmals mit nur geringen (und automatible) Änderungen der Geschäftsregeln erforderlich portiert.

Andere Tipps

Für domänenspezifischen Sprache Unterstützung Blick hier in der MSDN . Sie können auch einen Blick auf Irony aber das ist wahrscheinlich noch nicht eine Lösung für produktiven Code.

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