Session Manager for Visual Studio: ContextKeeper compared to Task Canvas, Favorite Documents and Workspace Manager
Below, you'll find ContextKeeper, a session manager for Visual Studio, compared to alternatives.
All extensions included in the comparison work with Visual Studio 2022. I've included free extensions, with the exception of Task Canvas, which is a paid one. I've invested several hours testing Favorite Documents, Workspace Manager, and Task Canvas to get a clearer picture of how they all stack up against ContextKeeper
Features supported | ContextKeeper | Task Canvas | Favorite Documents | Workspace Manager |
---|---|---|---|---|
Automatic session switching when changing Git branches | ✅ | ❌ | ❌ | ❌ |
Restores full Visual Studio's original documents state | ✅ | ❌ | ❌ | ❌ |
Tabs order | ✅ | ❌ | ❌ | unreliable |
Tab groups (including horizontal/vertical orientation) | ✅ | ❌ | ❌ | unreliable |
Document windows positions & size (including floating windows) | ✅ | ❌ | ❌ | unreliable |
Breakpoints | ✅ | ❌ | ❌ | ❌ |
Bookmarks | ✅ | ❌ | ❌ | ❌ |
Last selected tab for every window | ✅ | ❌ | ❌ | unreliable |
Last active tab among all opened | ✅ | ❌ | ❌ | unreliable |
Visual Studio independent restore engine | ✅ | partially | ❌ | ❌ |
Multiple document windows | ✅ | ❌ | ❌ | unreliable |
Multiple monitors support | ✅ | ❌ | ❌ | unreliable |
Relative path (portable sessions between environments) | ✅ | limited | limited | ❌ |
Maximized/Normal state for document windows | ✅ | ❌ | ❌ | ❌ |
Source control ready sessions files (diffable JSON format) | ✅ | ❌ | ❌ | ❌ |
Continuous session auto-save for branch snapshots | ✅ | ❌ | ❌ | ❌ |
One-click append files | ✅ | ❌ | ✅ | ❌ |
Pinned files | ✅ | ❌ | ✅ | unreliable |
One-click session update | ✅ | ✅ | ❌(only adding) | unreliable |
One-click restore | ✅ | ✅ | ❌ | ❌ |
Shareable session's file between teammates | ✅ | ✅ | ❌(one file for all sessions) | ❌ |
Last opened files | ✅ | ✅ | ✅ | unreliable |
Line & column for every file | ✅ | ✅ | ✅ | unreliable |
Non-solution (external) files | ✅ | ✅ | ✅ | ❌ |
Not based on the (broken) IVsUIShellDocumentWindowMgr | ✅ | ✅ | ✅ | ❌ |
Still in an active development (updates in 2023) | ✅ | ❌ | ✅ | ❌ |
Price | Free during Beta | $49 | Free | Free |
Task Canvas
I must say, I'm a bit surprised by how Task Canvas, the only paid competitor, performed in the comparison. It was built with a different workflow in mind, which is why it lacks in certain areas. However, it's still quite powerful and presents an interesting concept with its independent task canvas (separate, physical tab). Kudos to Sergey for trying something different. I'll take a closer look to see if there are any elements from this concept that could add additional value to ContextKeeper. What are your thoughts on this?
Favorite Documents
It appears that the most popular extension is based on the simple VS API - VsShellUtilities.OpenDocument()
. Unfortunately, it lacks more sophisticated use cases. Nonetheless, it's still better than relying solely on Visual Studio's default state engine and the inherently flawed .suo
file.
Workspace Manager
The spiritual successor to the (broken) approach of Save All the Tabs, utilizing the IVsUIShellDocumentWindowMgr.ReopenDocumentWindows()
API. Unfortunately it is nothing more than wrapper for the default Visual Studio state engine, which which has had persistent, unresolved issues for years. It's unreliable, sometimes functioning properly but often failing. My experience with it has been similar to Save All the Tabs, which I tried using with mixed success in the past.
The fail of the Save All the Tabs extension, to deliver a stable and reliable restore mechanism, really push me to work on the a truly independent session restore engine. I distinctly recall my thought process during that time -
If it doesn't work, I'll at least give it a shot and try to build it. There's nothing wrong with failing, but if I succeed, it will be a big deal one day! I will try to make it the state-of-the-art session manager that Visual Studio has never had but always deserved.
Later, the context engine has become the heart of ContextKeeper. It was entirely written from scratch, and it is fully independent from Visual Studio session restore API. It is rock solid, and works in VS 2022, including olders versions VS 2019/2017/2015. It has taken thousands of hours and years of work to bring it to a state where it is a true pleasure and an enjoyable experience to use, and to have the session manager that Visual Studio has always deserved. 🚀 Cause there ain't room for more than one King 👑 in this town.