Configuring The Stack

A standard part of my development kit is Microsoft's Visual Studio. Here's what I have to install to get a current, complete version of Visual Studio 2005 on a new PC:


This is a companion discussion topic for the original blog entry at: http://www.codinghorror.com/blog/2007/08/configuring-the-stack.html

A common thing in developing software or product is having an automated build executed from a single batch file or command. Why don’t we have automated installation for common development tools on the Microsoft stack?

I can understand that some people like to configure what they install and where it goes, but these things should be configured in a script. Then you can kick off the installation using the script and let it do it’s thing while you can get on with something else. It could be called NInstall!!

Isn’t it possible to slipstream service packs and addons into the base installer ? That’s such a wonderful feature of the Windows installer, they should support it on other softwares…

Hi Jeff

As I started reading your blog post (which always appears in the past in my reader, what’s up with that?), I thought I knew where you were going and then you took a wrong turn :wink:

Where I thought you were going (and my suggested answer to your position) is that Visual Studio 2008 solves that (for now!). I wrote about this in April here:
http://www.danielmoth.com/Blog/2007/04/repaving-and-how-vs-orcas-saves-me-time.html

Cheers
Daniel

No, it is not “devolving into complexity”, it has always been that way:

http://support.microsoft.com/kb/223258

That comment on Linux is ridiculous. How many hours of people’s time has Microsoft wasted collectively? A 64 bit number might not be big enough. I do strictly open source develop, my “stack” consists of Textpad and pgAdmin, Firefox w/Firebug, not much time wasted there.

The fact that VSExpress is so limited and VS5 isn’t free is astounding to me. I thought MS was all about “developers! developers!” so why do they screw over developers?

I’m stuck using PellesC for Windows Mobile programming (the SDKs don’t work on Express), and for Windows apps MS actually forced me to go multi-platform with wxWidgets because VSExpress doesn’t support any GUI.

It’s ironic. I wouldn’t have gone with wxWidgets if I had a choice, but since I didn’t have a choice, my apps are ported to linux for free.

To build my operating system (and its user programs and libraries) I use a cross-compiler built from source (GCC 4.2). To get the compiler configured and installed is faster than to attempt to install one of Microsoft’s products.

GCC took about an hour to configure and compile, and I was performing CPU-intensive tasks in the background (I’ll have better timings when I compile the version of the compiler to run natively on my OS).

As far as that Linux quote is concerned, jwz is a well known Apple troll. I wouldn’t take anything he said at face value.

I still use VSS6. Hahaha… i works for me… well its just me and one other fella… but as part of my stack it is old faithful.

Matt Wigdahl on August 8, 2007 05:43 AM said:

“All these OSS folks talking about how simple and easy their stacks are need to try comparing apples to apples. The Team System includes a powerful, integrated source code control system, as well as the productivity-enhancing IDE and debugger that come with VS 2005. Standalone emacs, standalone gcc, or standalone catalyst/wxPerl on FreeBSD don’t even approach this level of functionality. It’s like comparing a car to a tricycle and complaining the car is too complex.”

One thing no one mentions is that any company you work for is going to have a mish-mash of proprietary and OSS technologies if the code-base has been around for a long-time with a lot of developers.

Right now, I don’t want to build my system from scratch because it contains a ton of tools needed to build our embedded SW:

  • Watcom make makefiles
  • Borland CBuilderX
  • Microsoft Visual Studio
  • Nant
  • .NET 2.0 framework
  • ActivePerl
  • SmartSVN and other SVN tools
  • Araxis Merge
  • Cygwin and all the dev packages (gcc, binutils, gdb, etc)
  • Custom in-house build tools
  • Write my own automation scripts
  • Other proprietary/commercial packages needed to bootstrap software

I would go nuts if my dev machine broke down, because I don’t want to spend a week trying to rebuild my box. Heck, I wish my company could standardize on GNU tools since they work across multiple platforms and only need GCC and Make to build the damn SW and GDB to debug.

Editors don’t matter since every developer has a different taste. I use Eclipse with a handful of plugins (slickedit, CDT) to write C/C++ code.

Hi Jeff,

Why team system ?
Is that a work requirement or a personal choice ?

From what I’ve seen of Team System, even in the Visual Studio 2005 release show kinda felt like an exercise in teeth-pulling without Analgesia :slight_smile:

If you have another experience of it though, I’d love to hear about it.
I work in C# and Visual Studio 2005, but we’re ardent SVN users here.

Sandeep K:
“Visual Studio 2005 (professional) is really bad. I’ve been bitten by LNK1104 error real bad. The linker cannot update the executable since its locked - by Visual Studio”

In my experience, this problem is caused by Norton Anti-Virus, the ‘file system auto-protect’. Turn it off! This would explain your problem installing the service pack.

Norton AV loads and checks every file you access on your system. It really affects your build time!!

Can someone explain why Visual Studio Orcas is Gigs to download? It seems it’s just gotten so massively large and I’m not sure why. To write code, we 1) type text into a file 2) compile link 3) repeat. Even using third-party apps for unit testing, database access, app server management, I’m not sure why we gotta download gigs of stuff.

I’m chiming in with the Linux trolls here. Linux’s saving grace is that it’s set up wonderfully for development right out of the box. It pretty much is the stack.

Try using it for something non-software-engineering related, though, and you’re in for some pain.

A good rule is if you find yourself doing something tedious for the second time, write a script to do it. Chances are that if you’ve done it twice, you’ll have to do it a third time or show someone else how to do it. That script will come in handy.

Personally, I don’t see how this is a problem. The required downloads are in a logical order and the entire process would be extremely easy to complete if you had a list of direct links to each download. To make it even easier, why not write a PowerShell script to automate the downloads?

Compared to what I had to do on Linux to get my development system up and running, getting all of my Visual Studio tools installed is a piece of cake. To start off, I had to run a system-wide update that was normally in the 500MB to 1GB range. Next, I had to download each tool plus search for the correct version of any dependencies, then the dependency’s dependencies, and finally install them all. Overall, that was about 8 to 10 hours of staring at a progress bar in a BASH shell or following links to find the correct version of a dependency on some FTP site.

Downloading and installing 7 applications that all have graphical installers and don’t require any third-party applications to run is nothing to complain about.

My stack consists of Python, Vim, Mercurial, WinMerge, and Cygwin for misc. tools. That will change when I start to do more .NET stuff.

After a recent scare with my dev server nearly dying I decided to draw up a document describing the exact steps to setup my “stack”. That eventually turned into a shell script. So I can go from blank machine with ubuntu cd, shell script and backup to working machine in a very short amount of time. I did all the testing and tweaking on a VM; maybe writing some kind of script to automate all of that, windows or linux, is the way out of this situation ?

Well if you had the latest CD’s you’d be installing 3-4 things. I don’t see the problem really. If you need to install something then do so. Don’t insist MS install it by default if all the options are going to take up gigs of space on my PC that I’m never going to use. MS used to take a lot of flack for using too much space so they let you choose what you need and people complain. They can’t win. Besides you only ever do this once per PC. IT departments should automate it either through scripts, slipstreaming or restoring a mirror etc.

I would think that the installation procedures are probably easier and at least as easy as on linux, but any time wasted installing it will be made up in 30 mins of using the software because visual studio tends to be a great environment to use.