Rishi's profileCoffee ..Technology.. an...BlogListsNetwork Tools Help

Blog


    Visual Studio Extensibility

    There are various ways of extending VS.

    • Scripting [Dev 10]
    • Macros
    • Add - ins
    • Visualizers
    • VSPackages
    • Code snippets
    • Project templates
    • MSBuild
    • Visual Studio Shell
    • Domain - specific languages tools

    Macros, Add-ins, Visualizers and Code snippets support extensibility in limited way. They are more suitable to be used by the developers directly rather than providing IDE environment. Scripting which is introduced in dev10 also falls under this category.

    Both visual studio shell and VS Packages are coupled with power of MS Build and Project Templates is great way to build extensible IDE.

    image

    Visual Studio Shell:

    The Visual Studio Shell is for developers who wish to build their own development tools inside the Visual Studio IDE. Its target users are not the typical developers who would use the other editions of Visual Studio. The Shell’s target users are ISVs and other developers who wish to build their own tools IDEs, and in turn ship to their users and customers.

    Visual Studio Shell has two modes: VS Shell (isolated mode) and VS Shell (integrated mode). Both these shells are separate binary downloads. In order to develop using VS Shell one would need following software.

     

    Download Name

    Description

    Visual Studio 2008 SDK

    Use this SDK to develop and test all your Visual Studio extensions. You can use the SDK to create Visual Studio packages that target Visual Studio, Visual Studio Shell (integrated mode) as well as Visual Studio Shell (isolated mode). You also use the SDK to create your own instance of the Visual Studio Shell (isolated mode). Visual Studio 2008 Standard and above is a pre-requisite for the SDK.

    Visual Studio 2008 Shell (isolated mode) Redistributable Package

    Include this package in your Setup program if you are building your own tools environment on the isolated Shell. This package is about 300 MB in size; it includes the .NET Framework 3.5 and the components of the Visual Studio Shell. In order to redistribute your isolated Shell, you will need to obtain a Shell Load Key from Microsoft.

    Visual Studio 2008 Shell (integrated mode) Redistributable Package

    Include this package in your Setup program if you are building your own tools environment on the integrated Shell. This package is about 300 MB in size; it includes the .NET Framework 3.5 and the components of the Visual Studio Shell.

    Visual Studio Shell in the integrated mode is used to building on top of the same Visual Studio instance as the other Visual Studio editions (Standard, Pro, Team Architect, etc.). This means that developed tools will merge into the same environment as the other editions of Visual Studio if they are also installed on the user’s machine. Most project systems such as Silverlight, ASP.NET, c#, VB, Visual c++ falls under integrated mode. As below picture indicates Integrated mode provides access to all the features of shell+project systems which are part of particular editions.

    image

    Visual Studio Shell in the isolated mode, is used to build a brand new IDE which has a new application identity. The tools environment will be isolated with other Visual Studio AppIds as well as other environments that are built on the Visual Studio Shell .The new IDE will have its own stub .exe, custom branding, and registry isolation. Express SKUs as mentioned in below picture falls under isolated mode.

     

    image

    Each mode offers its own benefits. Typically, if one is leveraging existing language tools, one will benefit from the integrated mode because user has other editions of Visual Studio (Standard and above) installed, they will benefit from mixed language development as well as the extra features offered by Visual Studio such as unit testing, code profiling, and static analysis. On the other hand, if there is a need for custom branding in tools IDE and have it run in complete isolation with Visual Studio, the isolated mode would be the right fit.

    One can use regpkg.exe tools to edit, .pkgdef file to add and .pkgundef file to remove packages from VS Shell instances. In order to deploy VS Shell-based IDE on to the end user’s machine, one will need to obtain both a shell load key (SLK) and package load keys (PLKs).

    VSPackages are used to extend VS Shell. Irrespective of which mode developers choose, VSPackage provide standard way to extend IDE and will be the subject of next blog.