views:

1186

answers:

14

I see a lot of people has .net 2.0 or even 1.1 as a requirement for their projects. In my own workplace there is also lots of skepticism for upgrading to the latest and greatest .net framework.

As a programmer I feel it is very frustration working with the older frameworks when you know that you could have done this so much easier with the newer frameworks. I usually install beta versions and play with them so I quickly get familiar with them and in the process forget the old way of doing things so its a pain to relearn what you have tried to forget when you have the constraint of working with older versions.

What are the reasons for hanging on to the old versions when they should be compatible and how can you convince people to upgrade?

A: 

The major problem is that your application will require a certain version of the .net framework; not that fun for your end users who might have to download a 100+ mb installer.

I think .net 3.5 is pushed out by windows update so most users should already have a pretty upgraded framework
TT
Last time I checked, it was not a critical update so most users will not get it.
StingyJack
Did you know that most applications that use the .NET Framework 3.5 could get away with using the Client Profile that's a whopping 277KB in size? http://www.hanselman.com/blog/SmallestDotNetOnTheSizeOfTheNETFramework.aspx
OwenP
OwenP: That's just the bootstrapper. The entire Client profile is ~28mb.
TraumaPony
I still fail to see how ~28mb can be called 100+mb.
recursive
I... Never said it was? I'm just calling him out on the 277kb claim.
TraumaPony
it can only be called "100+mb" if you try to download the entire redistributable that includes x86, x64 and IA64. For people who do not like 200 KB Downloaders that require an internet connection when installing, that is the only alternative I am aware of.
Michael Stum
And that IS a problem - some people do not like or cannot use installers that "require" an Internet connection during installation. (Some people still get software primarily by CD because they have NO Internet connection - shocking, I know!)
Keithius
+1  A: 

Because they "Should" be compatible does not mean they are. There are always breaking changes between versions.

Also most QA procedures dictate that a change in code requires a retest of that code. Changing frameworks will require an entire test run on the code, and involve much more man hours.

Latest != Greatest. Just ask anyone who has had to deal with Vista.

EDIT: RE Vista... Relax, its an example! How many things didnt work with Vista that were fine with XP. I had a hard time converting to XP after using Windows 2000 - remember how bad 98 was? I didnt want to leave my "safety blanket" after that. Its not a bash, really.

StingyJack
I've had to deal with Vista, and I think it is Greatest. :P
Vilx-
Oh, Vista-bashing, how fucking original.
TraumaPony
I've had no problems with Vista.
Zack Peterson
It doesn't matter if they're compatible, because all versions of the framework can be installed simultaneously, and run side by side.
recursive
People bashing Vista should try out the Pre-SP1 XP, and they'll know why people stayed at Win2000 :-) Also, Operating System != Application Framework.
Michael Stum
My wife's laptop is still waiting for that graphics driver patch that will let her apply SP1
StingyJack
+2  A: 

It's possible that the people asking for the software don't necessarily know what the latest version of the framework is out there.

Most of the clients I see aren't technical and just ask for the functionality that they want.

Some ask specifically for .NET 1.1/2.0 and we're able to tell them that development costs will be reduced if we use 3.5 since it's easier to work with and it's easy to get them to switch.

Some people maybe concerned about integration with what they already have. If what they already have is built in .NET 1.1, they may want to stick with it in order to keep everything consistent.

As for your own workplace, I'd say take charge and have demonstrations where you show how different it is, how easy it is once you learn how to use it. There was a great screen cast of how to use the new dynamic data stuff in .NET 3.5 & VS2008. Quite a few people in my company got the latest version of VS installed after seeing it. I'll try to see if I can find a link to it.

http://blogs.msdn.com/davidebb/archive/2007/12/12/dynamic-data-screencast-is-now-available.aspx

RexM
+2  A: 

Scott Hanselman had an article about 3.5 SP1 incompatibilities:

http://www.hanselman.com/blog/UpdateOnNETFramework35SP1AndWindowsUpdate.aspx

Even though that only applies to a small list of bugs, the bottom line is: A new Framework requires a very thorough test and is no 5-minute task, because while it is 99.99% compatible, the 0.01% incompatibilities are the really obscure and hard to find ones.

Michael Stum
+4  A: 

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.

harpo
+10  A: 

A reason not mentioned is that on older os's pre XP the 3.5 framework can't be installed.

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

link text

Martijn Laarman
Well, Who is still using Windows 2000/ME?
TraumaPony
Lots of people are still using windows 2000 on servers. It's pretty stable, and unless you want purchase a bunch of new windows licenses, there really isn't much reason to switch.
Kibbee
Sometime you will have to upgrade no matter what and then you'll be sorry you stuck with win 2000 and did not do the upgrades in smaller steps
TT
Both companies I've worked for this year are using windows 2000
John
We still have several 2000 Machines at work, its far more economical to leave them running and install a 2nd vritual server for new projects. Theres too many subtile difference between IIS7 )
Martijn Laarman
There are also computers that run HMI/SCADA-like software, that are used until they break apart.
EricSchaefer
+1  A: 

2.0 is relatively stable, and fairly widespread. 1.1 is older, which means it's likely bugs and their workarounds are well-known. I'd be very surprised to find a Windows machine without 2.0 installed. These factors might have an effect.

Also, consider that people might have started developing their product before an older version of the framework came out. In a lot of cases, if your application is a .NET 2.0 application, you may not need anything in the 3.x framework. VS .NET 2008 can target the 2.0 framework, so there's no real pressing need to "upgrade" these applications. It's not really worth the QA effort to validate that everything works fine when there's no benefit to the change.

Finally, there's myth. People like to believe their friends whether or not they are ignorant. Depending on who you ask, the .NET Framework 3.5 is a 50MB, 100MB, 200MB, or 1.82TB download. It seems like people pick the largest number that seems scary for the situation at hand. Those people are akin to people who preach the dangers of this new invention called "the internet" that could expose us all to criminals and danger. You can download the framework in as little as 28 MB. Sound rough? You can get USB drives that hold that much for practically $1 these days, and I've downloaded PDF files that weighed in heavier.

OwenP
A: 

Many of our clients have highly restrictive policies as regards what software can be installed on their line-of-business desktops. They're aren't even configured to receive MS Automatic Updates as they're published, but will only apply certian updates, as pushed out by their own IT admin staff (most of these desktops will not have internet connectivity).

For clients like these we cannot just release a new version of our software that relies on .Net 3.5. Because of these policies we're on 2.0 for another 18 months (at least), until our existing clients decide that .net 3.5 isn't evil and that it won't break any of their line-of-business software . . . at which point 4.0 will be breaking and I'll have to sit and be happy with this funky "new" linq stuff, while everyone else gets to play with cool new 4.0 functionality sigh

Binary Worrier
+3  A: 

I've migrated 1.1 projects to 2.0 and to 3.5 and also from 2.0 to 3.5.

What i can tell from my experience is that I had absolutely no problem migrating from 2.0 to 3.5, however I faced some errors projects from 1.1 to either 2.0 or 3.5 so I have advice people to be extra careful while migrating a 1.1 project.

If you are working in 2.0, I say go for it, You will find the projects a little faster on the run and you get to play with linq :)

Sergio
+2  A: 

For me here, it's purely about the money - 2.0 is working for the company so they see no motivation for an upgrade.

I imagine this is not uncommon.

annakata
+2  A: 

I already posted something very similar here : c# 2.0 to c# 3.0 worth it? and the majority say that it's compatible but not worth it to switch because of how the project is already in progress.

The switch is justifiable if you really want new stuff on the framework, otherwise you will need to update all your license for VS for nothing and may have to change few little thing in your project.

Daok
A: 

I think many people forget that there are actually many costs for not having upgraded frameworks.

  1. Sometime you have to upgrade. Your OS or other programs will become unsupported. So it is more a question of taking small upgrades every now and then or a big upgrade later.

  2. Most programmers (I think) would like to play with the latest toys and learn new technology in order to stay motivated.

  3. You will be able to create programs faster which will of course again lower the price of your products and projects, so to stay ahead of the competition you would like to be on the edge.

TT
A: 

If you are still in development and have not released your software it is fine to switch to a newer fx version (same for java runtime). But if you have already released deploying updates is much harder. In this case it is much easier to stay with the old fx.

EricSchaefer
+9  A: 

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.

David Thornley
+1 for many good points. The risk is of course very dependant on the projects and business you run. In my job we have 2.0 as a guideline now and it should be a minor risk going to 3.5 sp1. I think lot of the fear for upgrading is a lack of understanding the differences.
TT