Invention-A-Day: Visual Studio Virtual Asset Collection
Posted by Dan Vanderboom on January 6, 2008
One of the challenges of managing several large Visual Studio solutions with many shared projects is that related assets aren’t always located in the same place. I use a querying system that inserts many queries inside rows of a table on the server. This allows us to change synchronization queries without having to recompile the application. These are loaded into the database through a database-building application. Then we have template definitions for list controls which are loaded on handheld devices in a separate solution, and therefore a separate instance of Visual Studio. Then there’s code to establish the data bindings, which is located elsewhere, and a few other pieces are spread here and there. The result is that when I need to create a new list of data, I have to go to several different places to set it up. I’m constantly jumping between instances of Visual Studio, different projects, editing template XML files and SQL queries and code files, etc. And I keep thinking it would be nice to have all of this stuff in one place, at least for the purpose of creating and editing during development, even if they get distributed across several assemblies.
I use a file explorer tool called Directory Opus, which has the ability of defining “Collections”. You can add files and folders to these named collections, and even though they’re spread across many different locations, you can access them all in one spot.
So here’s my invention today: a tool window in Visual Studio where you can define your own named collections, into which you can drag and drop items from Solution Explorer, or from files in other solutions. Or better yet, a replacement for Solution Explorer that has this ability integrated into it. Then in one place, I could see my list control templates, the queries that populate the list, the code for the workflow logic that uses it, both the view and its presenter (or controller) in an MVC/MVP pattern, images used in the list, and so on.