tags:

views:

450

answers:

10

I have been sold on the fun of using linq in areas other than pure database interaction. (See http://stackoverflow.com/questions/365352/calling-fellow-code-nerds-alternatives-to-nested-loops).

We are stuck on 2.0. I have told the powers that be about the ease of updating to 3.5 (we have already migrated to VS2008) but they are wanting a list of "benefits" for upgrading.

Can those that have experience in 3.5 help provide some talking points for the benefits of updating an existing app to 3.5?

UPDATE: Found an additional reason: Microsoft's inclusion of Charting tools for Asp.Net as a patch on top of 3.5! They get their business value, I get the fun...

+6  A: 

Maybe you should talk to some Java developers who are probably still forced to develop using 1.3 or 1.4 despite 1.5 being out for over 3 years and 1.6 for a couple... it appears platform consistency across the business is often of greater importance than the benefits of using the latest and greatest.

JeeBee
Is this really apples-to-apples? With Java, can't you run multiple versions of the jvm at the same time on a per-app basis?
Chris Farmer
You can. The reality of it is that this decision isn't up to the developer but to management who won't listen to logical arguments, especially if there is a separate IT department who will whine about supporting another configuration - even if they won't be supporting it.
JeeBee
Oh how I feel this pain, we're firmly stuck on 1.4.2, even with a significant performance improvement in 1.6 likely. The trouble is, it is a very large step to have to regression test the whole application, especially when we don't own/control 70% of it.
Scott Bennett-McLeish
A: 

In my experience, the addition of LINQ and Extension methods alone have made many previously arduous and/or time consuming tasks much easier and faster. The increased developer productivity from that alone is worth the upgrade effort IMHO.

Daniel Schaffer
A: 

Asp.net eh? I think you want to go to this link and watch some videos.

http://www.asp.net/Downloads/vs2008/

David B
A: 

Lambda expressions are awesome. There is no end to the places where I find that lambda expressions help me out in a very concise and readable way.

Automatic properties, while being a simple concept, really help making the code base smaller and clearer.

Also, I sencond the extension methods.

Morten Christiansen
+2  A: 

You don't need .NET 3.5 to get LINQ or C# 3.0 features. You can implement your own LINQ for .NET 2.0. I am using C# 3.0 all over the place in my .NET 2.0 application. I don't know the full details on how to start the conversion process because I didn't set it up myself. This might be a good link for you: http://www.danielmoth.com/Blog/2007/05/using-c-30-from-net-20.html.

phi
+6  A: 

Also remember that 3.5 is just additional BCL libraries. You are still running on CLR 2.0. Same is true for 3.0. Usually when people find out that the underlying framework is the same and that you are just adding in new libraries they are more likely to go along with it.

Cory Foy
+11  A: 

Can YOU make a case for it? Sounds like you want it because LINQ is fun. Other people are mentioning features that are fun. I've always had a problem selling fun features to management because they aren't very compelling reasons to potentially disrupt an environment.

Honestly, it really depends on what you are using C# for. Are you a web developer, system admin, something else? Taking a general approach, I would use the following selling points (you will need to do some work to prove these things):

  1. Zero-disruption for end-users when upgrading. Upgrading to the new version will be seamless and we will have a thoroughly reviewed test plan for updating all clients to this version. All of our old applications that require .NET 1.x or .NET 2.0 will still work perfectly.
  2. Programmer Efficiency. You could mention how more of the Windows API is wrapped by .NET classes, thus making programmer more efficient because they don't have to P/Invoke as much. LINQ makes your more productive because of x, y, and z. Lambda expressions make you more productive because of x, y, and z.
  3. Ease pains of future OS migration. Moving to WPF now will prepare us for Vista/Windows 7. We won't have to migrate applications using the now deprecated "Windows Forms" to WPF, because we will already be using it.
  4. More applications purchased from 3rd parties will require it, so we will have to upgrade sooner or later.

In the end, you need to prove that at the very least, this move will not cost you money in terms of increased support or testing costs. If you can show it will make you be more productive and it will be a rather painless switch, then you will get your wish.

Mick
Regarding point #1, if I was to move my desktop app to 3.5 from 2.0, and then released that to my customers, Windows would go and grab 3.5 invisibly in the background? And if a customer is on a box where they don't have admin rights (ie. an internet cafe), my app will still work correctly?
Robert Gowland
+2  A: 

Transitioning onto 3.5 would help you reap the benefits/ features of:

  1. LINQ to (Entities/ XML / Objects / Datasets etc ).
  2. WCF, WF and WPF.
  3. ASP.net MVC where MVC is kind of a de facto standard in other platforms like Ruby/Python which allow you pure HTML/ Javacript based development.
  4. ORM options with ADO.net Entity Framework/ Linq to Sql 4.
  5. With a few addons you can have support for dynamic languages like IronPython/IronRuby.

Oh ya I almost forgot ADO.net Data Services..one of my fav.

These are the few benefits that immediately come to my mind.

Perpetualcoder
A: 

Before I even opened this question I had my answer: LINQ - it's one of the greatest extensions ever in .NET - I love it. It took me a few days to figure out, but now I've got it, I use it all over the place. The ability to query collections and arrays is worth the upgrade alone in my mind.

  • Decreased development time (and therefore increased ROI)
  • Less time wasted finding workarounds for .NET bugs that've been fixed in newer releases.
  • Extension methods for native types (in a similar fashion to JavaScript prototyping)
  • LINQ extensions - they take a couple of days to get your head around, but it's awesome!
  • LINQ to XML makes working with XML so much simpler
  • LINQ to objects/collections
  • A nice new 3.5 poster from Microsoft that you can pin up in your cubicle.

As a manager if I have a happier more productive team that is producing more in less time, then its a no brainer.

Ask yourself this: Will the developers be more effective and will their increased productivity actually increase benefit to the company or reduce corporate costs once you've considered the upgrade/transition/installation on the servers/additional testing etc? If the answer is truly yes, then do the upgrade and quit arguing about it.

BenAlabaster