views:

118

answers:

3

I'm a desktop C# developer (that is not ASP) and am wondering about version targeting for small personal projects. These are, of course, trying to reach as wide an audience as possible, and so I've been targeting .NET 3.0 (which is the latest version on a Windows Vista system without any service packs) and 2.0 (which is simply the most compatible version compatible with VS2008).

Unfortunately, this precludes me from learning any technologies such as LINQ introduced post 3.0, and, with an upcoming switch to VS2010, I'm wondering if I should target the new 4.0 platform at the expense of uses without the latest and greatest, or should I just stick to trying to reach as wide a userbase as possible?

+2  A: 

I would recommend moving to the .Net 4.0 Client Profile.

Although it doesn't have a large install base yet, it's a small download that your users can easily install.

If you don't want your users to need to download the framework, you should target 3.5, which most people already have.

SLaks
Exactly, its not a huge hassle anymore.
ChaosPandion
As sort of a follow-up to this, I recently tried to deploy an application written to target .NET 4.0 on a friend's system running Win7 Ultimate, but not the latest .NET. His responses summarized: "Okay, it's a small install, I can handle it." "Oh, I have to restart? Meh, I'll look at it later." I still haven't heard back from him about it.
MiffTheFox
+3  A: 

I would just use 3.5 or 4.0(if it where me I would go for 4.0). It's not like it will cost anything for them to update to the latest framework and probably will be included in the auto updates.

I would not just strictly do 2.0 anymore since in my opinion it's like rewarding bad behavior like programming these days for IE 6. If no developers say where going to move onto the newer and better versions of the software then what incentive do the people who have the older stuff to upgrade?

Once lots of their favorite stuff stops working they will upgrade fast.

chobo2
A: 

I usually use .NET 2.0. The reason being many people (at least in my case) are running at least Windows Vista or Windows 7, which comes with .NET 2.0 (I believe). If they have XP, many have already have .NET 2.0 as well.

Believe it or not, many people still have slower connections, so downloading a newer framework (e.g. 3.5 or 4.0) might be a bit much and turn them away from your product.

In the end it depends on your clients and how much you know about them. If you're not sure, either go with 2.0 or 3.5. I wouldn't go to 4.0 just yet as it's relatively new and not many people have adopted it yet.

Nate Shoffner
Completely disagree.. .NET 4 is a LOT smaller.. Full installation is only 46 mb, and if you take the client subset - it's smaller.
Artiom Chilaru
46mb on a dial-up connection takes a while. Trust me. It can easily turn people away, I've seen it happen.
Nate Shoffner
I once tried to run a application written for .NET 3.5 on a fresh install of Vista. It ran fine, up until it hit a LINQ method and crashed because System.Core wasn't available, so I estimate Vista to come with 3.0 baseline.
MiffTheFox