we have a number of winforms apps that are written in dotnet 2.0. are there any performance upgrades that we would expect when moving to 3.5 runtime. Any particular benefits besides the language features
There are probably a few minor performance improvements and bug fixes but the biggest benefit would be the improvements you can gain from the new language features. You can also take advantage of the .NET Client Profile install for your client applications, which is essentially a subset of the .NET Framework that includes the bits that are most relevant to client client applications, which means a smaller download/install size.
There are performance enhancements with appdomain startup time (assembly loading), networking, drawing and presentation, and threading to name a few.
As far as I understand, the changes from .NET 2.0 to 3.5 are mostly focused on additions to the .NET 2.0 library, somewhat of an addon pack rather than a new framework version (not to diminish the many additional features you receive). As such, I would assume that you would only see minimal at best speed increases, perhaps from minor updates to the framework. This all assumes that you stick with winforms and your current code base. As always, changing code results in an entirely different ballgame!
Good luck!
The 3.0 and 3.5 language features run on the core .NET 2.0 runtime. They are essentially library upgrades. You should notice no difference in performance.
I get about a 10x performance increase on a simple app I wrote that makes heavy use of GetPixel() on drawing surfaces. I can't be sure it was the framework, because the comparison was across two machines, but they were similar.
The actual 3.5 framework won't make much of a performance difference. In many respects, it's just another library.
What will make a difference though is that the 3.5 framework requires CLR 2.0 SP1. SP1 has a number of performance improvements that will impact your application. Or 2.0 SP2 if you choose to use 3.5 SP1.
Here is a blog entry on some of the performance impromevents in CLR 2.0 SP2: http://blogs.msdn.com/clrcodegeneration/archive/2007/11/02/how-are-value-types-implemented-in-the-32-bit-clr-what-has-been-done-to-improve-their-performance.aspx