I have read on Stack Overflow some people that have converting to C#2.0 to C#3, but is it really worth it?
I have a project that is done at 75% before going in maintenance phase. I am asking to myself if it is worth it to switch to C#3.0?
Update:
The project will have a web interface now so before entering the maintenance phase we have to develop the web part (all was done for internal purposes with Windows Forms). Most parts will be resused (back-end). Most people have said that it wasn't worth it in the past because it was already at 75%... but now do you still think it's not worth it?
What have been done finally
Finally since we are continuing the project with the web interface we will update to 3.5 for the new year. Thank you everybody for all your input.
Clarification
C# 3.5 doesn't exist. There is C#1.0, C#2.0 and C#3.0.
Then there is .NET 1.0, .NET 1.1, .NET 2.0, .NET 3.0, and .NET 3.5.
We should not confuse the two.
C# 3.0 vs C#2.0
Now, is C#3.0 worth the move? I would say that with the existence of Extension methods and Lambda expressions, the answer is yes. These two features alone make for easier to read and quicker to write code. Add that to auto-implemented properties, LINQ, and partial methods, and C#3.0 shows itself to be an advantageous move.
However, it is not necessarily beneficial to move an existing project. You have to weigh the pros and the cons, especially with regards to introducing new bugs and instability, before deciding to migrate existing work. For new projects, I'd say start with C#3.0.
You have to weigh cost versus benefit. You don't provide enough information about your project to allow us to advice you here, but consider:
I wouldn't change anything unless you have a good reason to do so; i.e. there is a bug that you can't work-around in 2.0.
Upgrading the framework at such a late point in the project is likely to cause some problems which you really don't need at the moment.
I've made the conversion many times. Mostly because the clear syntax from lambda expressions makes the code easier to follow (for me anyway).
I do use ReSharper which makes using new 3.5 features a snap as quite a few show up as refactoring suggestions by ReSharper. Using a tool like that makes this transition so much easier.
It really depends on what you need to do. If your project requires Lambda Expressions where you're query objects with a clear syntax, you should look at 3.0.
I am currently reading C# In Depth by Jon Skeet, and he takes the approach of laying out a solution in C# 1.15, then evolves the solution to depict the new and useful functionality that you get in 2.0 and 3.0. This type of progression would be a perfect means to answer your questions. The book reads well too so I am finding I am getting through it quickly.
Is there any C# 3.5 feature you want badly at this stage? :)
If it is LINQ, you can give LINQBridge a try.. With Studio's multi-targeting and LINQBridge, you'll be able to write local (LINQ to Objects) queries using the full power of the C# 3.0 compiler—and yet your programs will require only Framework 2.0.