State Machine Frameworks für .NET
Wir ein system haben, bei meiner Arbeit, dass ist im Grunde eine message-driven state machine. Es braucht in einer Vielzahl von Arten von Nachrichten, schaut etwas Kontext/Zustand basierend auf der Nachricht, und entscheidet dann, was zu tun ist, auf der Basis der Nachricht und den aktuellen Stand. Normalerweise das Ergebnis ist eine Nachricht, die gesendet wird aus dem system heraus.
Gibt es gute open-source-frameworks für die Implementierung einer state-Maschine .NET? Ich habe mir in der neuesten Version von Windows Workflow, und es scheint, wie es wäre eine gute option sein; ich habe jedoch einige Bedenken über die Standard-Persistenz-Mechanismen (die brauchen wir berichten aus dem state-transition-Daten), Testbarkeit, und die Tatsache, dass das WF-team re-architecting Rahmen, wie wir sprechen (angeblich).
Statt WF, ich überlege, zu versuchen, eine nur-alte GoF "State" - Muster, und mit Spring.NET bis zum Draht alles zusammen. Gibt es etwas gibt, tut dies bereits, oder etwas ähnliches?
InformationsquelleAutor der Frage Andy White | 2009-03-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Je nach Ihren genauen Anforderungen finden Sie vielleicht die State Machine Compiler ist ausreichend für die Umsetzung der GoF "State" - Muster. Es können sowohl C# als auch als Punkt, der transformiert werden kann in mehrere image-Formate, die mit Graphviz. Ich habe es bei einem vorherigen Projekt und fand es ausreichend für die Generierung einer 'einfachen' state machine. Ich hoffe, das hilft.
InformationsquelleAutor der Antwort Bas Bossink
Werfen Sie einen Blick auf NState
https://github.com/benaston/NState
https://nuget.org/packages/NState/.
Disclaimer: ich behaupte es.
InformationsquelleAutor der Antwort Ben
Zwei große state-machines .NET
InformationsquelleAutor der Antwort Mark H
Ich pflegen eine open-source-Projekt, das die (unter anderem) eine generische finite-state-Maschine .NET. Es baut auf QuickGraphso erhalten Sie viele Grafik-Analyse-algorithmen für freie. Sehen auf dieser Seite für weitere Informationen.
InformationsquelleAutor der Antwort Steve Guidi
Sollten Sie die North State-Framework in C#. Es ist zwar nicht open source, es ist relativ preiswert zu lizenzieren. Es ist das einzige framework, das ich kenne, das erlaubt die Wiederverwendung durch die state-machine für Komposition und Vererbung. In anderen Worten, Sie Erben von einem Basis-Zustand-Maschine mit nur ein paar Zeilen code, und fügen Sie Zustände, übergänge, Aktionen, etc. Sie können auch eine vorhandene state-Maschine Klasse und "plug in" einen anderen Zustand der Maschine. Du wirst nicht glauben, wie viel einfacher es ist, zu implementieren und arbeiten mit state-machines mit diesem Rahmen, relativ zu der GOF-oder anderen mustern.
InformationsquelleAutor der Antwort Mark Uebel
Haben Sie einen Blick auf StateBuilderDotNeteine state machine-code-generator, wandelt eine XML-Beschreibung eines Zustandsautomaten in einer erweiterten version des C# - state-Muster. Es unterstützt alle UML-Semantik: Zustands-Maschine können hierarchisch sein, gleichzeitige und asynchrone. Ein grafisches tool ist auch zum erstellen von Zustandsautomaten.
Disclaimer: ich bin der Autor dieser software.
InformationsquelleAutor der Antwort Frederic Heem
Habe ich Staty was ist ein smart-state-machine .NET. Geschrieben in C# portable class library (PCL), Staty kommt als expressive event-driven state-Maschine mit features wie
Es ist kostenlos, open-source, verfügbar auf NuGet und basiert auf Ideen von David Lafreniere C++ State Machinedas ist die berühmte state-machine in C++.
InformationsquelleAutor der Antwort Alexander Pacha