Auxiliary
Auxiliary

Reputation: 2757

why use .net framework 3.5 when 2 works?

I've seen questions and answers about why .Net framework 3 or 3.5 or 4 are good. But I've got an app that compiles well in all of these versions including 2. I was curious to know whether there would be a problem if I compile my app with .Net 2 and distribute it. (Version 2 is natively suuported by many versions of windows.)

Is there a performance or speed issue with the older versions or something that I should know of?

Many Thanks

Upvotes: 1

Views: 911

Answers (5)

Michael Kennedy
Michael Kennedy

Reputation: 3380

I think it really depends on your use-case.

Is this app:

  1. A client you deploy to all sorts of windows clients (e.g. consumer-type win app)
  2. A client you deploy to your enterprise (and they'll manage .net versions)
  3. A server-side app on your data center
  4. A server-side app you sell and others install
  5. etc.

If it's #1, then you want to target .NET 2 if that suites your needs. You probably want the least amount of frictions for your users in terms of not updating .NET. Windows 7 comes with .NET 3.5, Vista with .NET 3 (similarly for the server OSes).

If you know you're targeting Win7 users and above then .NET 3.5 is fine. As the other posters mentioned, the main benefits of .NET 3.5 vs 2.0 is really

  • LINQ
  • WPF
  • WCF

If you are a #2 scenario above, then by all means, use .NET 4. There are many improvements including LINQ, but also in the runtime and if you control the systems then it's definitely worthwhile to be 6 years in the future from a software perspective. Even more so for #3.

For #4, you'll have to decide whether that's an issue for your clients. Most the time it's not, but it can be.

Of course, you can use VS 2010's Multi-Targeting feature to use modern tools regardless.

Not too long ago I wrote the client part of http://chatpast.com which has to be installed. As painful as it was, I wrote that in Windows Forms and .NET 2.0 because that was the least likely to cause problems for users and require a .NET install / upgrade. But the server-side code is all .NET 4.0.

So I guess you can even say that it's not purely and either/or choice. Think about what makes sense for each part of your deployment.

Upvotes: 1

duffymo
duffymo

Reputation: 308733

How far back does the argument hold? If the original question had asked why go with 3.5 or 4.0 if 1.0 works would the answers be different?

At some point there's risk in clinging too long to an out of date platform. You might still be okay with 2.0, but 2 versions behind might be as far as I'd push it.

Upvotes: 1

Zebi
Zebi

Reputation: 8882

If you get along with 2.0 then compile for 2.0 there is no reason to artificially raise the requirements.

However if you are not using any 3.0+ features I would recommend you to learn about all the new features. It will speed up your development and improve your code.

Upvotes: 1

well,not really.

If your app runs on 2.0 then it can also run on 3,3.5 and 4.0 since they are backward compatible.

Upvotes: 1

Jon Skeet
Jon Skeet

Reputation: 1499790

No, there's no problem continuing to use .NET 2 if you want to.

To my mind the principle benefit of using .NET 3.5 would be that you could use LINQ (without extra libraries such as LINQBridge) which may well make your code simpler.

.NET 3 and .NET 3.5 were additions to .NET 2, so there shouldn't be any performance difference - with the caveat that .NET 3.5 came with .NET 2.0 SP1, so there were a few modifications... but if you run a .NET 2.0 application on a machine that has .NET 3.5 installed, it'll be running the SP1 code anyway, so it makes no difference whether you've actually targeted .NET 2.0 or 3.5.

Upvotes: 12

Related Questions