The size of the .NET Framework redistributable exploded with versions 3.0 and and 3.5. This creates some difficult choices for vendors of rich-client applications, as a lengthy or unwieldy installation experience can easily discourage non-technical users from using your product. The Paint.NET folks have recently put a huge amount of effort into streamlining their installation process for this very reason.
It's easy to find the total download sizes of the various .NET framework distributions. But the actual time to download and install each one can be difficult to estimate. To get a better idea of the actual bootstrap install times, I ran a number of test installations on a VPC with the following configuration:
VPC OS | Windows XP Pro SP2 + virtual machine additions |
VPC Host | 1.7GHz P4 running Windows XP Pro SP3 |
Internet Connection | 4.0+ mbps cable modem |
Notes on the Test Configuration and Methodology
- The test VPC is likely slower than a typical Windows XP machine. Spot checks with a significantly faster VPC host seemed to reduce installation times by about 15 percent across the board. Considering the performance-dampening cruft that accumulates on the average consumer PC, the processing power available here probably isn't that atypical.
- My Internet connection is faster than a "typical" 1.5mbps broadband connection. But this seemed a non-factor, as the download speeds reported by the .NET installers never exceeded 600 kbps.
- Installation times varied by as much as 40-50 percent between identical runs. For example, the fresh 3.5 Client Profile install ranged from 11 to 16 minutes. It wasn't always clear what caused the performance variations, but the main culprit seemed to be dropped or slow connections between the installers and the download server. The test results below show the shortest time for each install, not the average time.
- I ran each installation documented below at least 3-6 times. Generally, I ran more fresh installs and fewer upgrades.
Here are the resulting installation times:
Previously Installed .NET Version | New .NET Version Installed | Reboot Requested? | Bootstrap Download + Install Time | Time Saved by Upgrade |
None | .NET 2.0 SP1 | No | 10 minutes | NA |
None | .NET 3.0 | No | 25 minutes | NA |
None | .NET 3.5 SP1 | No | 17 minutes | NA |
None | .NET 3.5 SP1 Client Profile | No | 11 minutes | NA |
.NET 2.0 | .NET 3.0 | No | 17 minutes | 8 minutes |
.NET 2.0 | .NET 3.5 SP1 | No | 21 minutes | -4 minutes |
.NET 2.0 | .NET 3.5 SP1 Client Profile | Yes | 18 minutes | -7 minutes |
.NET 3.0 | .NET 3.5 SP1 | Yes | 17 minutes | 0 minutes |
.NET 3.0 | .NET 3.5 SP1 Client Profile | Yes | 18 minutes | -7 minutes |
Notes on the Test Results
- In most cases, an existing .NET installation actually makes the installation significantly longer, with the exception being the 2.0 to 3.0 upgrade.
- 3.5 performance is considerably improved over 3.0, even for the full 3.5 distribution.
- A fresh install of the 3.5 Client Profile runs nearly as fast as a fresh 2.0 install.
- The 2.0 to 3.5 upgrade request a reboot for the Client Profile installer, but not when installing the full 3.5 distribution. Weird. And unfortunate.
- The 3.5 Client Profile installer is much nicer for non-technical users than any of the other installers.
Conclusions
If you're deciding whether to target .NET 3.0 or .NET 3.5, then 3.5 is a no-brainer--even if you need the full 3.5 distribution. If you can get away with the 3.5 client profile, then going with 3.5 is really a no-brainer.
The choice between 2.0 and 3.5 is more difficult, especially if most potential users are already on .NET 2.0. In this scenario, there would be no .NET install for users on 2.0 and a short (10 min) .NET install for users with no previous .NET installation. Upgrading to 3.5, on the other hand, would result in a much longer (18 min) install plus a reboot for users on .NET 2.0 (client profile install only). There are two mitigating factors that might lead you to consider going with 3.5 over 2.0 regardless of these drawbacks:
- As I mentioned above, the .NET 3.5 Client Profile installer is much nicer for end-users than any of the other installers, with minimal user-interaction required.
- Apparently Windows Update will soon push .NET 3.5 SP1 out to machines with .NET 2.0 already installed, so many users currently on 2.0 will not experience the long install plus reboot required for the 2.0 to 3.5 Client Profile upgrade. (I read this on one of the Microsoft blogs, but can't find the link at the moment.)
UPDATE: As one reader pointed out, the full .NET 3.5 SP1 framework is quietly installed any time you perform an upgrade, rather than the client profile. That explains why the upgrade installations took about the same time whether running the client profile or full framework installer. Here's a reference document that explains what happens with various OS's and upgrades. From that document:
NOTE: The .NET Framework Client Profile is targeted for Windows XP computers with no .NET Framework components installed. If the .NET Framework Client Profile installation process detects any other operating system version or any version of .NET Framework installed, the Client Profile installer will install .NET Framework 3.5 Service Pack 1.