Tuesday, November 20, 2007

ReSharper in VS 2008

UPDATE 11/26/2007

Jeffrey Palermo notes that you can use R# in VS 2008 by turning off a couple of features.

Ilya Ryzhenkov, product manager at JetBrains, gives detailed information on R# support in VS 2008 and talks about R# 4.0.

After installing VS 2008 Team Suite yesterday, I thought I'd try the ReSharper 3.0 for VS 2008 download.  The verdict?  Works great unless you use any C# 3.0 feature.  Here's one example of it blowing up (but not crashing):

I'm using:

  • var keyword
  • anonymous types
  • LINQ

That was a simple LINQ query to count the number of types in the .NET Framework that implement IDisposable and end in the word "Context" (to settle a bet).  Here's another example:

That's an experimental API for pre- and post-conditions (for pseudo-design-by-contract) that uses:

  • extension methods
  • lambda expressions

From JetBrains' website, they clearly state in the download page:

ReSharper 3.0 for Visual Studio 2008 (Codename "Orcas") only supports C# 2.0 and Visual Basic .NET 8 language features. C# 3.0 will be supported in the next major release of ReSharper.

Now I have a dilemma.  Using Visual Studio without ReSharper is like taking a trip in a horse and buggy instead of a car.  Sure, it'll get you there, but you'll have to deal with a lot of crap along the way.  Until R# v.Next comes out, I'll just have to deal with it.  If you're using VS 2008, don't install R# 3.0 if you plan on using C# 3.0.  Hopefully it'll come out soon, but I haven't seen any roadmaps yet, so I'll just wait.

4 comments:

David Tchepak said...

Hi Jimmy,
According to Ilya at JetBrains, you should have something to work with (EAP release) in January:

http://tech.groups.yahoo.com/group/altnetconf/message/4226

Jimmy Bogard said...

That's good news, although I'd rather have an actual release and not EAP...oh well...

Anonymous said...

Hi, I really like the look of your design-by-contract-style pre- and post- conditions stuff using Linq. It would be a great example to help learn extension methods. Is there any chance you plan to do a post on it or make it available? Cheers

Jimmy Bogard said...

@Sam

Check out this:

http://eltonomicon.blogspot.com/2007/10/static-class-extensibility-via.html

He fleshed the idea out a little more.