I promised to write about Visual Studio Shell which is one major new additions to Visual Studio and the biggest addition to its SDK in Visual Studio 2008.

Visual Studio is nothing but a new extensibility point for Visual Studio to let you create integrated extensions for Visual Studio or use its common elements to build your own IDE for different purposes.

I can explain this by pointing that Visual Studio Shell consists of two main modes: integrated and isolated.

The integrated mode is very similar to the nature of VSPackages and actually has similar development process as them. Integrated mode lets you create integrated elements for Visual Studio IDE using its underlying APIs. An instance of this is Visual Studio 2008 Team Explorer which is actually implemented as a VS Shell integrated mode application.

The isolated mode is the new thing. It lets you use Visual Studio IDE elements to build a new IDE for your own. For example, you can use Visual Studio IDE elements to build a UML diagramming tool with same look and feel. You may be surprised and ask that this was possible before thing and yes, you’re absolutely right! But the point is you could install Visual Studio IDE (well, actually the core APIs needed to do this) on a machine then use some complicated development techniques to use its elements to build your own IDE like SQL Server Management Studio. But in Visual Studio Shell isolated mode you no longer need to install those core APIs because Microsoft has provided an stand-alone package that you can add to your setup projects and use it to run your own IDEs.

Moreover, Visual Studio Shell isolated mode has simplified the development process for such an IDE and made it much simpler than the past and has organized Visual Studio elements to different groups to let you use them easily in your own IDEs.

In fact what is now amazing developers about Visual Studio Shell is this isolated mode which is completely new because you already know how to work integrated mode via VSPackages. I want to write more about about isolated mode on this blog in the future.

The next post would be about technical differences between integrated mode and isolated mode.