views:

223

answers:

5

Possible Duplicate:
Why should I upgrade to c# 4.0?

Our projects are currently all C# 3. If we dont have a specific requirement for features that C# 4 provides, would there be any other reasons for us to upgrade? Thanks.

Edit

There seems to be more of an advantage with using the new CLR and not just the new language features.

+1  A: 

If your software is fairly static and business critical then an upgrade may present a risk to the production uptime of the business. However, if you plan to continue development of the business' software well into the future then at least planning to upgrade is a step in the right direction. There's no reason to limit one's development to older versions if the company wants its code to keep moving forward. Future problems may have easier and more expressive solutions using newer language capabilities.

There's also certainly something to be said about keeping one's development staff current on technologies. If the business wants its technologies to remain static, it's going to have an increasingly difficult time finding talent over the years.

David
+1  A: 

If upgrading to C# 4 is not a vey large pain for your system, then it's worth it just to have you projects on the new runtime, if .NET 4 were running on .NET 2 like .NET 3.5 is I would say don't bother, but the benefits of being on the newer runtime are futuresafety in this case since there will be future .NET releases based on the .NET 4 runtime, and the upgrade may be more difficult come that time.

I am making the assumption that you're asking if it's worth it when you don't need it because it wouldn't be extremely difficult for you to upgrade, if it would present particular risk and difficulty in your project then it would not be advisable without a sufficient business need for the functionality in .NET 4

Jimmy Hoffa
+4  A: 

I personally don't feel that there are great language enhancements between C#3 and C#4 if you're targeting the same framework (2.0-3.5).

However, if you move to .NET 4 CLR as well, I think there are all sorts of benefits in the runtime you can take advantage of. My favorite feature is the parallel task library.

Jesse C. Slicer
PTL is awesome... but it is available to the 3.5 framework as well(back-ported)
Brian Rudolph
+2  A: 

It depends on what you want to do. I don't there are killer language features that 2.0 (Generics) and 3.0 (LINQ and Lambdas) had. C# 4 is more scenario based (see list below for some). If you want to:

  • take advantage of the new features in WCF (default endpoints, improved WCF REST support, etc.);
  • work with Entity Framework 4 and it's new features along with WCF Data Services to expose your EF model as a data service;
  • take advantage of some of the multi-threaded enhancements (e.g. Tasks instead of using Threads);
  • CodedUI tests (more of an IDE thing, not a language thing);
  • etc.

...then maybe I would. (Most of my projects utilize WCF in some way, so I'm in the process of upgrading.)

I wouldn't upgrade just to upgrade. Upgrade if you have a business/technical reason to do so. You have to weigh the costs (less time coding while you upgrade your environment) with the benefits (latest language, and as one commenter said, happier developers).

Plus, the IDE is nice (although I've found it a little unstable at times). And as w69rdy's comment said, it's backwards compatible. You may want to give the IDE a try and still stay on .NET 3.5 just to try some of its features (like the extension manager and schema comparer).

David Hoerster
A: 

If you are using ASP.NET WebForms it might be worth. Take a look at this blog entry.

Web.config files are much cleaner now and css support was enhanced a lot. WebForms Routing is also a core feature under 4.0. Best of all, you finally get full control over your control id's!

In my opinion, WebForms still isn't as nice as ASP.NET MVC, but it got much required love in 4.0.

Cubicle