Which version of .net framework to choose to work on? Let's say if you are creating an application and are familiar with .net 1.1 and all your application's functionality can be built on top of the .net 1.1 but voila there are newer versions as well upto 4.0 so in this case which version you will choose to start with?

When it comes to desktop then you are not sure if the user have .net 3.5 or 4.0 installed but an ASP.NET application is all about generating HTML at the end. After all is it recommended to use the latest version of framework?

+2  A: 

.Net comes as a free update for windows. I think it's good to develop applications on latest .net version.

+2  A: 

As long as you control your server environment, there is no downside to creating new web apps with the latest version.

Not sure about WinForms apps. Just yesterday I installed a new utility on a user's machine (that I had written for in-office use) and had to wait through a huge download/install. But on a non-corporate application that's less worrisome.

+5  A: 

1.1 is definitely out dated and rarely supported. Most of the nuts and bolts of 1.1 can still be found in later releases. If you're starting a new project, I don't see why you shouldn't build on the latest release (providing your copy of VS can handle it). This makes you more relevant in the long run.

Besides the new features in 4 are wonderfully fun to mess around with. Try your hand at MVC for example... it's really great once you get the hang of it.

If .Net Framework 5 was released yesterday, would you start writing big new project X using it today, or start off with smaller projects against the new FW until you're comfortable that everything you'll need for the larger project is stable?
Will A
I would never build a large project on Alpha, Beta or RC releases of the Framework, but once it goes as release, then I feel it is ready. There are too many developers messing around with the Beta and RC releases to let many bugs slip through in the process.
Plus Microsoft has generally been on the ball with regard to not releasing game breaking changes. The biggest issue is worrying about when users will have the latest .NET release.
yup, this is true with web forms and desktop apps. With ASP.NET, as long as you control your own server and can deploy the latest release, then there are no issues.
+4  A: 

I usually encounter three cases:

  • Applications you use in an environment you can influence. For example your own server. Or the hosting solution you can use. In this case, you may choose the latest version of .NET Framework, unless you are really sure you will never use the new features.

  • Desktop applications or applications which target several customers. Here, it is better to be sure that 90% of your users/customers have already installed the required version of .NET Framework. Today, in July 2010, I would probably choose .NET Framework 3.5, since .NET Framework 4.0 is not widespread enough.

  • Applications which target a precise customer which may have outdated infrastructure. Sometimes, large companies still use .NET Framework 1.1 or 2.0 on Windows 2000. Because they are large, they will be unwilling to move thousands of computers to a new version just to use your product, so you must use the version they have.

+2  A: 

The right version is the newest version your company will allow. Each version offers substantial improvements over the previous.

If you can convince your company to upgrade, do it.

@XIII: very true. It's a tradeoff. But usually worth it in the long run; the problem is that the people doing risk management in most companies can't see that.
+1  A: 

My belief is that at the very minimum you should be look at 2.0 and above. Anything after 2.0 is additional functionality to the core and you shouldnt be using anything below this. As a developer I believe that you should use the newest version possible as Microsoft puts a lot of effort (and invests a lot of money) to add new features to the framework.

I understand that from a management point of view it is not always easy to justify moving to the latest and greatest but realistically you're not rewriting your codebase when you update to a newer version - for older (2.0) applications you can just convert your project and voila - you suddenly have access to a lot of features you didnt before.

Organizations must remember that their code is an asset like any other and requires regular maintenance. Updating frameworks is part of the evolution of your applications and is a valuable (and relatively small) investment.

Jason Irwin
+1  A: 

Since I understand you're talking about web application, I won't involve opinions on desktop applications which the conclusions should be then different.

Beyond .NET 2 is truly obsolete.

For 2 and up, consider the application's host costs, because the new frameworks (3.5sp1, 4) might cost more to host.

But there is no doubt that the newer the framework is the less code you have to write.

Especially if you right in VB.NET, than VB10 (.NET 4) is extremely featured regarding its prior version.

+1 for less code. Auto Properties are a wonderful thing `Public Property ThisRocks As Boolean`
implicit line continuations, collection and dictionary initializers, xml literals (3.5 - doesn't exist in C#, extremely hot, omg i love vb), implicit casting, implicit typing by default, type-inferrence and millions of more! VB10 is the best language in the world!