Sunday, November 9, 2008

Playing around with Visual Studio 2010 CTP

I read the news about VS2010 CTP and couldn't resist downloading it. So here are some impressions:

  • The use of WPF not only makes it "prettier", it opens up a lot of possibilities like the ones shown here. I'm more text-oriented than visual-oriented, though, so I won't be using that much. Highlighting looks really cool, check it out:



  • ASP.NET MVC is not included... well, it's just a CTP, I'm sure it's gonna be included in the next preview...
  • The sample app, DinnerNow, looks very messy and incomplete right now. There are lots of directories and many solutions and projects. Many projects look like they're duplicate. The installer seemed to work just fine, but then I went on to browse it and got some errors like this one:

    An error ocurred while parsing EntityName 

    But it's obviously still work in progress and it seems they're integrating a lot of technologies (including CardSpace!), I'm looking forward to it.
  • As you can see at the bottom of the previous stack trace, it's a whole new CLR. This means no more people wondering about the framework version on IIS like it happens with v3.0 and v3.5 :-)
  • Parallel Extensions is built right in the core of the new framework, just like announced. Apparently it's a September CTP that we never got for v3.5, I hope the June CTP is not the last we're getting for v3.5 :-(
    I've been using ParallelFX for the last few months and it really simplifies the development of multi-threaded code, its API is so simple and clean that you almost forget you're doing it parallel, until you get burned :-) You still have to know the principles of multi-threading and be aware of what runs in parallel and what doesn't, but this is a topic for another post...
  • I opened a VS2008 solution with a couple of v2.0 and v3.5 projects. The conversion wizard showed up, just like the one in VS2008, but with a difference: it converted all of the projects to v4.0 without asking. Ok, so I open any file to try the new dynamic feature that's causing so much controversy in the last few days (apparently it's a love-it-or-hate-it kind of thing), write a quick dynamic instantiation, and I get this error:

    One or more types required to compile a dynamic expression cannot be located

    Luckily it turned out to be an easy fix: it was a v2.0 project converted to v4.0, but it was missing a reference to System.Core (the one from v4.0)
  • It was also my first time using SQL Server 2008. Finally there's intellisense in Management Studio! Maybe it's not as complete as the latest version of Red Gate's SQL Prompt, but at least it's something.

Some other features I'll be checking out:

  • The new System.Web.DataVisualization
  • Classic ASP.NET can now define static, predictable IDs (i.e. no more "ListView1_ctrl0_ProductIDLabel"). Great for javascript integration.
  • Playing around with IDynamicObject to implement method_missing (Chris Burrows' series of posts about this look great). On the surface, it looks quite complicated compared to Ruby's method_missing or Boo's IQuackFu. It would be pretty cool to use it to implement finders on top of ActiveRecord alla RoR or DSLs, although it looks like it still won't be as malleable as Boo for DSL creation.