Bin auf der Suche nach Checkpointing-Bibliothek für C#. Irgendwelche Ideen?
siehe http://en.wikipedia.org/wiki/Application_checkpointing
Bin auf der Suche nach Checkpointing-Bibliothek für C#. Irgendwelche Ideen?
siehe http://en.wikipedia.org/wiki/Application_checkpointing
Dies sollte mit Hilfe von Transaktionen (Commit/Rollback) oder Undo möglich sein. Wenn Sie Ihre Klassen und Operationen richtig entwerfen, wird es funktionieren, es erfordert natürlich etwas harte Arbeit und Disziplin bei der Verwendung der Klassen. Außerdem müssen Sie bei Ausnahmen vorsichtig sein.
Le site Namespace System.Transactions (wie von Rune vorgeschlagen) scheint ein guter Kandidat zu sein, oder zumindest ein guter Ausgangspunkt.
Wenn ich Sie richtig verstehe (und die Frage ist ziemlich vage, so dass ich mir da nicht sicher bin), dann verfügt Windows Workflow Foundation sicherlich über diese Fähigkeit. Allerdings ist es fast sicher Overkill für das, was Sie fragen.
Okay, Sie haben einen Link hinzugefügt, der besser erklärt, was Sie mit Checkpointing meinen.
In diesem Sinne hat .Net nichts eingebaut, um dies direkt zu unterstützen. Aber alles, was einen Zustandsautomaten verwendet, bei dem der Zustandsautomat persistiert werden kann, inspiziert/validiert werden kann und transaktionsfähig ist, hat diese Art von Dingen natürlich eingebaut. WWF ist ein Beispiel dafür.
Ich glaube nicht, dass es eine eingebaute Unterstützung dafür gibt, aber es sollte relativ einfach sein, eine eigene zu bauen. Angenommen, Sie haben eine zentrale Anwendungsklasse, die den Zustand Ihrer Anwendung speichert, oder zumindest den Teil, der für das Checkpointing verwendet wird. Dann könnten Sie die Serialisierung verwenden, um den Zustand Ihrer Anwendung bei Bedarf zu speichern. Außerdem wäre es einfach, die Snapshots in einer Datenbank oder einer Datei zu speichern, wenn Sie sie später benötigen. Dazu müssten Sie allerdings eine eigene Bibliothek schreiben, die dies unterstützt.
Während ich dies schreibe, habe ich das Gefühl, dass es in dem Rahmen irgendeine Unterstützung dafür geben muss. Schauen Sie sich zum Beispiel den System.Transactions-Namensraum an.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.