OK so I’m not so sure that “project” is the right term, but for my purposes, I define “project” as similar to what Visual Studio uses, or Microsoft word – files that the user can open and work on and then save, and when the user runs the application again the program is aware of the files that were worked on last time the application was open.
So I ask, what is a good design strategy for retaining history of user activities and files like Visual Studio projects?
0
Persistence of user activity and preferences
There are different approaches depending what technology is used at client side. In your case of Windows forms it has very good support from .NET Framework itself.
In short, it is all about creating, loading, and saving user settings.
More detailed posts and walk through are available:
– Application Settings Architecture
– How To Persist Windows Form State
– Painless Persistence of Windows Forms Positions
A good source to Enhancing Windows Forms Applications can be referenced in MSDN article.
You want persistence (the ability of user data to survive across different invocations of the same applications). There are many ways to implement it, and your product description is so general that it is hard to predict which will be best for you. Some possible directions to look at are databases, serialization, memory dumps, and many variations of home-grown persistence approaches (rarely useful unless your requirements are really unusual). Please search for any of those things in your favorite information retrieval tool and come back for more information exchange.