Why not upgrade to the latest .NET framework?

First, understand the reasons why businesses are slow to upgrade.

Computer systems are not a strategic advantage for most of the companies out there. They are a necessary service function.

Since they are necessary, breaking them can be extremely expensive. Since they are not a strategic advantage, being able to develop slightly faster is not a large advantage.

You are proposing that a company spend resources to keep upgrading to the latest version for likely but not certain and not major gains, with the possibility of a lot of breakage. For most companies, this is not a win. It's safer to adopt things after they have been out there for a while. They miss some upside but avoid a chance of a disastrous downside.

Go ahead and propose upgrading to the latest and greatest if you like, but you'll be much more effective putting it in a business (as opposed to technical) manner. Try to find out quantitatively how much more effective it will make you, and therefore what the company can save. (They won't pay attention to a figure you make up, might possibly pay attention to one somebody well known makes up, and are more likely to believe something supported by a study.) Acknowledge the downsides, and show what the likely costs are going to be, and find ways to limit the downside. Be very wary about fudging anything, as the decision-makers have a lot more experience rejecting this sort of thing than you have of proposing it.

Don't make any mention of developers liking the latest stuff, or you'll come off as somebody wanting the company to pay for new toys, and lose a lot of credibility.

You can sometimes get what you want, but it helps to know how to ask for it.


A reason not mentioned is that the 3.5 framework can't be installed on versions of Windows prior to Windows XP.

Supported Operating Systems: Windows Server 2003; Windows Server 2008; Windows Vista; Windows XP

link text


It's easier to jump into a new framework on a new project.

On existing projects, it takes a certain amount of work to take advantage of the new features. In many cases, these are only beneficial to the programmer. When you're working on a maintenance-only project, you sometimes just have to shrug and say, This would have been so much less code in version x.