30 Nov

VS 2008: First Impressions

OK, I finally upgraded to VS 2008 and am giving it a whirl.  And this is Visual Studio Team Systems Development Edition.  So some things may not apply.

But before I really begin, I should note a few things: I’m not using any C# 3.0 features yet.  That means no LINQ, no Lambda, no Anonymous Classes, no Anonymous Types; none of it.

Why would I do this to myself?  I’m waiting on ReSharper.  I’m still using ReSharper in VS 2008, just none of the new C# goodies.  Until ReSharper releases a version that works with the C# 3.0 syntax I’ll just wait.  Eagerly…shaking slightly…maybe I should drink less coffee.

Anyway, first impressions:

  1. Faster load time.  Much faster.  Let me say to all involved at Microsoft: thank you, thank you, thank you, thank you.
  2. Most of my add-ins moved in with no issues.  A few disappeared, but none that I care about.
  3. If you right-click on a project, there is a new menu item: Open Folder in Windows Explorer.   I can’t believe this did not exist before.
  4. All of my nant build scripts still work.  But I’m sure this will not stay true, but so far everything still builds.  Remember, I’m not using any of the cool new namespaces yet — so everything should be able to compile with the old .Net 2.0 compiler.  But as soon as I throw in an extension method the entire thing should blow up on me.  Great fun, I can hardly wait.
  5. Faster load time.  Thank you, thank you, thank you, thank you.

About .Net 3.5

Actually, a quick note about .Net 3.5 that often gets missed.  If you upgrade to .Net 3.5 you are still using the .Net 2.0 Framework.  In the last release of .Net (.Net 3.0), it was essentially an add-on to .Net 2.0.  The compiler didn’t change, the run-time  didn’t change, we just got some lovely new classes.

With .Net 3.5, it is similar, but not  the same.  We got some lovely new classes (look in System.Linq, System.Data.Linq, and System.Xml.Linq), and we got a new compiler (for all the lovely new C# syntax goodies) — but the underlying framework has not changed.

Read that again: the underlying framework has not changed since .Net 2.0 (outside of a service pack or two).  So all of the new C# features (like Linq, Lambda and extension methods) really are just syntax sugar.  Kind of cool.

Anyway, I’m sure more comments will follow.