2 Stimmen

Checkpointing-Bibliothek für C#

Bin auf der Suche nach Checkpointing-Bibliothek für C#. Irgendwelche Ideen?

siehe http://en.wikipedia.org/wiki/Application_checkpointing

2voto

dalle Punkte 17489

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.

1voto

Joel Coehoorn Punkte 377088

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.

1voto

Rune Grimstad Punkte 34670

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.

0voto

leppie Punkte 111830

Anhand des Links von wikipedia kann ich Ihnen sagen, dass .NET/CLR dies nicht unterstützt. Was dies unmöglich macht, ist die Tatsache, dass .NET es nicht erlaubt, den Anwendungsstapel zu inspizieren oder zu verändern, was wiederum aufgrund der eingebauten Sicherheit in .NET nicht möglich ist.

CodeJaeger.com

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.

Powered by:

X