DejaVu project emerged as a response on the challenge of implementing Undo/Redo feature in my .NET applications.
Typical application with Undo/Redo have rich user interface with some sort of graphical designer. Designers are stuffed with many elements that can be dragged, streatched and manipulated in other different manner. It's vitaly important for positive user experience to provide Undo/Redo feature that will work consistently throughout the application.
And here is the challenge because it quite difficult to write code for N types of objects that support M operations that can be executed and rolled back in arbitrary order.
After some work I have developed component DejaVu and posted it on http://codeplex.com/dejavu.
I maintain this project in my spare time, you can check it for updates from time to time. Its written on C#, so I hope the .NET community will enjoy this open source project.
I also wrote a review on CodeProject.com site. I'd recommend read it for all who want get complete walkthough on the subject.