Visual Studio customization  
Author Message

PostPosted: Visual Studio Extensibility, Visual Studio customization Top


My ultimate goal is to get a limited and simplified IDE in which only a handful of options are available and, hopefully, at a low technical cost. The idea is to take advantage of VS to avoid having to develop an IDE-like application and the language to do something similar.

I am new to Visual Studio Extensibility and, considering the amount of technical posibilities (VSPackages, diferent hives, Automation, Templates, ...), I would appreciate some advice or directions on how to better aproach the customization of Visual Studio 2005 aimed at the following:

1. I am interested in being able to launch VS with only:

  • One of the integrated languages (for instance, VB), with capabilities of editing, compiling and debugging class library projects.
  • The usual panes: Solution Explorer, Output, Tasks, Result, Watch, Debug, ...

Especifically I would like to hide/skip-loading/unload/unregister, ... packages such as

  • Other compilers
  • Most (if not all) designers (Win, Web, Report, Data, Diagrams, XML, ....)

I was wondering whether this could easily be accomplished by means of setting some options (skipLoading ) or deleting some entries in an alternate hive in the Registry, but I don't find any documentation on that.

Perhaps other option could be the use of Automation, but I don't know if it is powerful enough.

2. I would also like to prepare the environment so that when the user launches VS certain necessary elements are already in place.

It seems that a good option for this is to define the necessary templates.

3. Ideally, I would like to restrict the complexity of the logic (for instance, disabling the capability of defining classes/interfaces, ...

I am not sure wheter this is possible or at what cost.

As I said, any suggestion/information will be appreciated.


Visual Studio8  
Carlos J. Quintero

PostPosted: Visual Studio Extensibility, Visual Studio customization Top


Basically it is not possible for 3rd parties to get a limited and simplified IDE. The IDE was designed to be extended adding things, not to reduce it. Only Microsoft can do it for some of its products (like the Report Designer of SQL Server 2005 Reporting Services which is basically a shell of VS 2005).

Removing packages, etc. unregistering them would be risky and unsupported.

I think that some MS people around here will confirm this.

Phil Taylor

PostPosted: Visual Studio Extensibility, Visual Studio customization Top

Carlos is correct. There is no way to unregister packages and trying to do so is unsupported.


PostPosted: Visual Studio Extensibility, Visual Studio customization Top

Many thanks to both, Carlos and Phil.
Paul Harrington MSFT

PostPosted: Visual Studio Extensibility, Visual Studio customization Top

Have you seen the Visual Studio Express products Your description sounds just like one of them.

Carlos J. Quintero

PostPosted: Visual Studio Extensibility, Visual Studio customization Top

The point is that the Visual Studio IDEs can be customized only by Microsoft. I don’t think that you can remove things from the Express editions if you would want to. Since Visual Studio is becoming a kind of universal IDE ranging from the Express editions to the Team Suite edition, it is entering other non-programming fields like database users (with the latest MS announcement), etc. maybe it would be a good idea for MS to allow 3rd parties to customize it. I think that this can be done with the Eclipse IDE for Java, which if I remember correctly it is just an skeleton with lots of plug-ins.

Just an idea for Microsoft to consider it for future versions.


PostPosted: Visual Studio Extensibility, Visual Studio customization Top

One of my initial ideas was to use some Express version, but also limiting its original capabilities.

What I am pursuing is reusing VS (any version) for letting a power user define some logic in certain language. In the end that logic would be compiled into a .Net assembly. Although in relative terms, the logic would be very simple, it could be convenient to have features such as intellisense, a debuger, and so on. To avoid having to define (and develop) a language, ... I was considering using an existing language (VB, JScript, ...) reusing some other funcionalities of the environment.

(At the same time it would be better if the user had some additional helpers which, using VS, could be implemented as Add-ins. If this were to be finally implemented, the Express versions would be discarded, because they are not extensible.)

Additionally, although not a technical issue, but one of a more political nature, it would be almost essential not to give the impression of deploying a real programming tool to the end user. Thus my interest in eliminating any unneeded funtionality (DB, XML, Win/WebForm Designers... , among many others.). Ideally it almost should not look like VS at all!. The goal could be to get something similar to the Business Intelligence Developer Studio, in that this environment is specialized for certain users and uses.

However, it seems that, at least currently, VS does not let itself to "uninstall" official components (i.e. VSPackages). As a suggestion for MS I think it could be useful to be able to reuse VS and many of its components in plug-in-only-what-you-need scenarios, perhaps taking advantage of independent hives in the Registry, similarly to the VS Experimental IDE.

So far it seems that the only (supported) option is to customize the environment using the (amazingly powerful) feature of custom Settings. However, I am afraid that you can't completely hide certain features. I am afraid that, for example, no matter your custom settings don't show the XML designer, the end user may find a reference to it in a context menu you can't customize.

Although probably going beyond the scope of this forum, but as it is related to my previous comments, I would appreciate some directions on information, examples, .. for some simple languages implemented using VS and .Net.

Many thanks to all.

Phil Taylor

PostPosted: Visual Studio Extensibility, Visual Studio customization Top

The PPE SKU exists for similar reasons for commercial use. It requires executing a Premier VSIP partnership ( 10k yearly fee ) plus a PPE redist agreement.

Then you get the right to add your language to PPE and distribute it at a reasonable price per copy.

PPE is essentially a language-less SKU. No languages means nothing associated with a language is installed until you add it. No project system, no code editor associated with an extension, no F5 debug experience, etc - until you plug in a LanguageService and associated interfaces. The LanguageService+other interfaces you provide in PPE plug into the extensibility points in the SKU and "light up" desired features.

By using a LanguageService that carefully lights up features you want and couple that with clever customizations - you could get a lot of what you want. For instance if you dont hook up the designers, they are not enabled.

If you can afford the Premier membership fee.

Looking at what the IronPython integration sample in the SDK and the IronPython language engine download available outside the SDK will give you a good idea of what you would have to implement.

With all that said, I have to admit its hard for me to see what you could Intellisense that doesnt conform to a grammar. So I think you are arbitrarily close to a language at that point. If it looks like a duck, quacks like a duck, walks like a duck...