I've been using Visual Studio 2010 for about 2 weeks now, and i've upgraded several of our projects to .NET 4 as well. I've noticed that i've hardly used any of the new features of C# or any of the new classes in the .NET framework. Granted, i don't have a very thorough knowledge of everything that's been added in C# 4 and i don't know all of the new classes in the .NET framework. But i do know something about the new stuff, and so far, i haven't really noticed anything compelling. Nothing that made me think "this is awesome!".
I looked at the new WCF 4 features so i could see how Agatha could benefit from it, but apart from the improved REST support (which Andrew Rea is working on), there's nothing that Agatha could really benefit from. Perhaps maybe the fact that you can reduce XML configuration for your WCF services but then again, the amount of XML config that you need for Agatha is already very limited compared to typical WCF services and the parts that you do need are things that i actually prefer to see explicitly in a configuration file instead of hidden away in some infrastructure assembly that your project is using.
As for the new language features... i like the whole dynamic thing, though i haven't found a need to use it yet. The next time i see some old reflection code i'll probably modify it to use dynamic, but i don't really need to use tricks like that very often. Optional parameters are something that i can't really get excited about, perhaps because i hardly ever use interop and more likely because i still believe in meaningful method overloads. In fact, it sometimes makes me think that C# 4 is moving closer to Dysfunctional Programming as opposed to at least being influenced by Functional Programming in C# 3. Named Parameters is something that i can see myself using to increase readability when it comes to using multiple overloads with confusing method parameters but that as well is something that i don't frequently run into.
The greatly improved support for parallelism looks very nice, though i haven't really needed that either. The new thread-safe collections look nice too, though every time i want to modify some code to make use of it, i notice that i typically need my locking to be just a bit more coarse-grained than what i can get from the new collections. Unless i haven't looked hard enough of course, which is certainly possible.
As for Visual Studio 2010... from a performance point of view it is somewhat better than i expected but i really can't say it's an improvement over Visual Studio 2008 (again, from a performance point of view). I occasionally notice about 25% CPU usage (on a quad core system, so that's pretty bad IMO) coming from devenv.exe while it isn't actually doing anything. I can't really say that i'm happy about that. The default color theme looks butt ugly IMHO, but at least there's a plugin to change that. Which i haven't actually done yet though ![]()
Now the thing is... maybe it's just because i haven't looked hard enough, or that i'm missing some cool new stuff, but isn't this very different from when .NET 3.5 came out? The Linq extension methods and the ability to use Expressions was highly welcome and i guess a lot of us kinda went overboard with it (and some probably still do). But at least that showed that those new features were not only highly welcome, but very popular and in general just great new additions to the C# language. But with .NET 4 i really find it pretty hard to find anything to get really excited about. And just to be clear on this: that's not to be critical of Microsoft or anything like that. But i'm just wondering: "is it just me or is this really not that special?"
So what do you think? Are there great new additions to C#/.NET that i'm probably missing and that you are enjoying a lot? What are your favorite additions to the platform? Or are you, like me, not really all that excited about the new stuff?