Thursday, August 28, 2008 2:29 PM
Visual Studio Shell 2008: Bringing More .NET Languages into the Visual Studio Fold
Visual Studio Shell was released in January of 2007 without much fanfare. Even though it's free to download, at the time it was not very useful for most developers as few packages had yet been written for it. Now eight months have gone by and quite a few projects are sporting free Visual Studio interfaces. In this article I discuss Visual Studio Shell itself as well as several of the languages which are currently developing shells.
About Visual Studio Shell
When Microsoft released Visual Studio Shell many non-Microsoft based .NET languages had, or were working on, their own IDEs. This was a big problem as even though there are a very large number of .NET languages, integrating them required juggling different IDEs and moving around assemblies manually. The core promise of Visual Studio Shell is simple: every .NET language can easily have a Visual Studio 2008 environment.
This means a familiar, easy to use environment for those used to working with .NET as well as access to all of the tools we are used to. And so, by building a Visual Studio Shell implementation, a language project is much more likely to see existing .NET users try it out and maybe even stick around if they like the language. At the same time Microsoft gains much more here than encouraging .NET language projects and in so doing growing the .NET platform. When a language project builds a Visual Studio shell package it automatically gains integration with all of the pay versions of Visual Studio as well. It's a big win for everyone involved.
Visual Studio Shell does much more than helping new .NET languages to integrate. It takes the whole Visual Studio environment and turns it into a platform which is easy to extend and develop tools for. With this ideal in mind Microsoft created two versions of Visual Studio Shell: Integrated mode and Isolated Mode. Integrated mode is designed to integrate new languages while Isolated mode was designed around creating external tools. The technical difference between the two versions is that integrated mode integrates with existing Visual Studio 2008 while isolated runs in it's own separate instance.
Visual Studio Shell Implementations
Although only sparse documentation exists, the current F# install package has built in support for Visual Studio Shell. It includes IntelliSense, debugging and interactive mode, all for free. Even better, you can install the VSLab project on top of that and get a full interactive Matlab-like F# development environment. Tutorials and documentation are available on the VSLab CodePlex page.
IronPython Studio is the first and generally the most well known Visual Studio Shell implementation. Version 1.0 was released in March and from all accounts is quite stable and usable. One of the coolest things about it is that it lets you use the WPF editor to build interfaces right inside your IronPython project. Being able to leverage already existing features like that is what makes Visual Studio Shell much better than custom IDE implementations.
A company by the name of SapphireSteel has created a visual Ruby on Rails .NET workbench called Ruby In Steel. Recently added to the Text Edition was support for Visual Studio Shell allowing it to be sold to those without Visual Studio. It is interesting to note the commercial implications here: Huw Collingbourne of SapphireSteel was quoted as saying Visual Studio Shell will finally allow them to compete with Eclipsed-based Ruby on Rails IDEs.
The Nemerle installer comes with Visual Studio 2005 and 2008 integration as well as a free Visual Studio 2008 Shell implementation called NemerleStudio. The only documentation on Nemerle's Visual Studio integration I could find was for Visual Studio 2005 and seems to suggest broad-ranging support for many features, including code completion and the WinForms designer. If you speak Russian and have a few extra minutes I would love to see a translation of a more recent feature list.
Boo has been traditionally known to have tight integration with SharpDevelop and so SharpDevelop is what most of the Boo developers are currently using. However, BooLangStudio Alpha 1 offers integration with Visual Studio 2008 Standard Edition (and better) via a VSIP package and is still under very active development. Hopefully BooLangStudio will soon move to Visual Studio Shell and open the door to a free Boo Visual Studio edition. If this were to happen it is likely that Boo would see a large influx of users as language oriented programming is all the rage with the academic types.
World of Warcraft?!
Over a CodePlex there is a "AddOn Studio for World of Warcraft" project. It's a Visual Studio Shell package designed for writing World of Warcraft Addons in lua. I must say, even though I don't play WoW, this looks really impressive.
Microsoft Visual Studio 2008 Shell (Integrated Mode) Download
Microsoft Visual Studio 2008 Shell (Isolated Mode) Download
Microsoft Visual Studio 2008 Shell Landing Page
CoDe Magazine: Introduction to the Visual Studio 2008 Shell
MSDN: Visual Studio Integration SDK Documentation