Lately I have used a lot of time focusing on my "Tattoo" project, but I haven't forgot about my Profile Manager for Visual Studio 2008, in fact it is undergoing a complete re-design, adding some new features as well.
Basically, before a Profile was considered to be the Layout of the editors, tool windows ect. This will all change. Instead a profile will be a set of Layouts, Contexts, Colour schemes and possibly more.
Profiles
Just as before, a profile can be activated from the "Profiles" menu, but this does not mean that it applies a new layout anymore. It is very possible that it does, but this depends on how the profile is configured.
This means that profiles covers more that just the layout, however for now it actually only covers that, but rather than just having a single layout bound to a profile, layouts can also be bound to a specific context for a profile, so that if Visual Studio enters this context while the profile is active, the new layout will be applied.
Layouts
Layouts are much of what profiles was before, meaning they control the layout of the tool windows and editors ect. What is different is that a single layout no longer binds directly to a profile, in other words, a layout can be used from several profiles.
Contexts
Contexts are a state of Visual Studio so to speak, this means it will be possible to set a specific layout for when the Form Designer is active as an example.
Each context will be able to signal that it has become active, and then a bound layout can be loaded, contexts can however be a bit tricky in that way, since several contexts can be active at same time.
For this reason contexts will have rankings and also, if possible, only document editor contexts will be allowed.
Architecture Refactoring
All of this has also brought on a full refactoring of the architecture of the plugin, not becouse it was nessesary, but becouse all of the new features added alot of items, where a layered architecture suddenly made more sence, and that is hopefully also more maintainable.
This also moves the code from being of prototype quality, to be more production quality, which also means that Unit testing will be added throughout the solution.