Why not include the Visual Studio 2005 Express Editions in Windows Vista?

An interesting “philosophical” question was posed recently that I just noticed over this past weekend – why not include Visual Studio 2005 (such as the already free Express Editions) as a part of Windows Vista?  The idea was first suggested in this blog post at the end of June.  Then, last week, Dan Fernandez (the lead product manager for the Visual Studio Express product line) posted a response to the original suggestion on his blog.  Then, this blog exchange got picked up and published as an eWeek article.

I wanted to talk a bit more about one of the bullet points that Dan posted in his blog response.  His 2nd bullet point reads as follows:

Setup: Dropping bits on a CD is an easy task, but creating a way to service those bits (and every piece of the Windows OS is serviceable) is not straightforward. Without getting into the weeds of why this is, the short answer is that Windows have a wholly different setup (and therefore servicing model) than Visual Studio does. Servicing would basically be *way* too much work for the benefit. If, however, the setup/installer technologies were unified, this would be much easier.

This is something that has proven challenging ever since we included the .NET Framework 1.1 as a part of the OS in Windows Server 2003.  As Dan stated in his post, the underlying installation engine for OS setup is not the same as the engine used to install applications.  Applications such as Visual Studio are packaged as MSIs and installed by Windows Installer.  As a result, MSP patches must be produced to patch those MSI setup packages and install hotfixes and service packs.  OS components are installed by the OS installation engine (sysocmgr and the OCM infrastructure in pre-Windows Vista system and a series of new technologies in Windows Vista).  They have their own requirements for creating hotfix and service pack packages that are different from the Windows Installer MSP format.

Because of these differences, each time a product is released that packaged as both an MSI and an OS component, the teams have to create, test and release 2 separate patch packages.  In the case of the .NET Framework 1.1, there was significant work to create an additional hotfix package to target Windows Server 2003 in addition to the MSP that targets other operating systems.

However, in the case of the Visual Studio Express Editions, that requires an even larger investment because there are 5 different Express Editions (Visual Basic, Visual C++, Visual C#, Visual J# and Visual Web Developer) and 9 different language versions.  That means that if the Express Editions were to be repackaged and included in Windows Vista OS setup, there would need to be 45 additional patch packages produced each time there is a hotfix or service pack that targets this product line.  Even with build and test automation and other economies of scale, that is an expensive proposition.

In the future, I hope to see the OS installation engine and application installation engine converge so that a setup package can be authored once and installed and serviced the same way no matter what the installation vehicle is.  However, until something like that happens, this sort of complication makes it more difficult for setup developers and people who deploy software to architect agile solutions.


Comments (5)

  1. steven says:

    Wouldn’t there be legal issues, too? After all, you got sued and fined hundreds of millions of dollars for bundling a free web browser and media player.

    Also, it might be a waste of space. The target audience for development tools is a very small subset of that for an operating system (no matter what Linux zealots might say).

    I think the current model of having the Express editions freely downloadable is great. Anyone who wants them can find them easily. The only suggestion I have for improvement is making it easier to integrate the platform SDK with the Express editions (a comparatively simple installer change, methinks).

    Use the extra space on the Vista DVD to include more drivers! I found beta 2 pretty much unusable because it didn’t handle my wireless network card nor the on-board wired ethernet controller, and neither the Sound Blaster Live nor the on-board sound card.

  2. scotthellewell says:

    The key is to not make it a system component, but an optional install from the DVD.  This way you only need the MSI to install.

  3. astebner says:

    Hi Steven and Scotthellewell – There are several potential issues aside from setup logistics for this type of scenario.  Dan Fernandez did a thorough job of outlining them in his post at http://blogs.msdn.com/danielfe/archive/2006/08/10/694832.aspx.  I wasn’t intending to rehash that list with this blog post, but wanted to discuss the setup ramifications in a little more detail.

    The OEM scenario that Dan described in his post is essentially the equivalent of making it an optional install from the DVD and using the MSI to install.