The Visual Studio Library (VSL) is a new addition to the Visual Studio SDK 2005-10 (VS SDK), and was not previously available in the VSIP SDK. VSL is a C++ source library, primarily targeting the Visual Studio Platform, which extends the Active Template Library (ATL). A Power Point presentation given at the VSIP dev lab can be be found here.
< xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
Thus far the contents of VSL have been solely driven by the needs of the four new C++ reference samples included in the VS SDK, so many classes are not as fully featured as is possible. Content will continue to be added to VSL, as needed by the C++ samples; however, content can also be added based on community needs. Included in the VSL source are some comments tagged with FUTURE, which illustrate some possible additions, but we would very much like to get feedback from the community on what is most needed.
This is the official thread for the discussion of the future direction of VSL. Please limit your posts on this thread to the discussion of suggestions for additions and modifications to VSL. Off-topic posts will be moved or deleted. Questions, problems, and issues relating to VSL should be posted on new threads on this forum, so they can be individually addressed and answered.
It is encouraged to read over the suggestions of others and comment on suggestions that you would also like to see added, as this will help us prioritize work items.
We will post back onto this thread for clarification when necessary as well as posting the VSL work we plan to do and what its priority is.
Do not post any code, other then unmodified VSL or VS SDK sample code. Posting any other code will result in the post being immediately deleted to avoid legal issues regarding intellectual property.
Please be sure you looking at VSL source from the Visual Studio SDK 2005-10 RTM release or later. Referencing older source will likely cause confusion.
The VSL headers are located at <VS SDK Install Root>\VisualStudioIntegration\Common\Source\CPP\VSL\Include. An easy way to browse them all in the Visual Studio IDE is to open the solution located at <VS SDK Install Root>\VisualStudioIntegration\Common\Source\CPP\VSL\UnitTest\VSLUnitTest.sln and browse to the “Header Files” folder under the VSLIncludes project.
It should be noted that the mock object infrastructure included in VSL is in need of some redesign and fair bit of refactoring (some changes will be breaking). A separate post will added to this thread to detail the current plans for the mock object infrastructure provided in VSL.
This thread will remain sticky for 3 months.

Official VSL feedback and suggestions thread
Jaime Atiles
The December CTP of the VS SDK (NOTE - this hasn't been posted yet, but will be shortly) includes mock interfaces for nearly all Visual Studio Platform interfaces, as well as numerous changes to the VSL infrastructure for mock objects. The changes to the VSL infrastructure where necessitated in part by the development of the mock interfaces, and in part to make ease the utilization of the mock interfaces in unit tests.< xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
The breaking changes are:
The samples VisualStudioIntegration\Samples\IDE\CPP\Reference.MenuAndCommands and VisualStudioIntegration\Samples\IDE\CPP\Reference.Services provide examples of unit tests, which are complete, and make use of the new mock interfaces and the new macros that ease the use of the new mock interfaces.
The sample VisualStudioIntegration\Samples\IDE\CPP\Reference.ToolWindow\UnitTest has more complex unit testing needs then other two samples, and some of this illustrated currently, but the unit test is not yet complete.
Aqiqul
Hi Josh
I have started looking at implementing a new VSPackage, and for various reasons want to implement it in C++
I stumbled - and that is the right word - across just a hint about VSL in the MSDN VS SDK documentation, and have since been trying to find any other documentation about it. I did stumble across the deep dive ppt - Google found it for me once I threw some of the VSL identifiers at it
My biggest handicaps to using the VSL are (a) this lack of documentation, and (b) I can not discern how committed Microsoft is to it
McGanahan Skejellyfetti
element__
Hi Josh,
I think VSL is a really good work I was checking the templates and they are really a high quality work. Anyway from the begining I decided to not use these templates because I didn't find a reason I didn’t find a use case where using VSL save my time over using for example MPF or directly interop interfaces.
In my Case I have 3 unmanaged packages and a lot of managed packages, so What should I do with my 3 unmanaged packages I could try to start using VSL but I prefer invest my time migrating to managed packages because after I will have more productivity working in C# over C++.
So really, I prefer Microsoft invest time improving the MPF over invest time on VSL.
Best Regards,
Gaston Milano
charles pratheepan
I already have some things in C++/CLI and I consider it like a step forward but no the final step, for me the final step is having my code in C# obviously sometimes I can't do that but even when you have a easy access to framework classes in general you get involved in Marshaling parameters, and writing "^" is annoying ;)
I known that even working with C# in some cases we have to deal with marshaling, and interop stuff, but the MPF is fighting with these cases and I consider it is the way to simplify the VS integration
Best Regards
alamandra - MCP
Do consider yourself more productive working in C# versus just native C++ or both native C++ and C++/CLI (new with VS 2005, not the same as the Managed C++ extensions available in VS.Net and VS 2003)