22 November 2007

ReSharper and Visual Studio 2008

Since there is a lot of buzz about Visual Studio 2008 release, I thought I would stand and say about ReSharper in relation to this fact.

Released version

ReSharper 3 can be installed with Visual Studio 2008 and works fine, unless you are using C# 3.0 new features, like lambdas, LINQ, extension methods and such. This constructs are not parsed by ReSharper 3, which was developed to support C# 2.0 only. It is not only highlighting which doesn't support C# 3.0, it is all the core and code intelligence. For example, rename refactoring will not find usages of extension methods and will not update them.
There also could be some glitches, even if you don't use new C# 3.0 constructs. This is due to the fact that C# 3.0 compiler is always used in Visual Studio 2008 C# projects, regardless of target framework. It it is not widely discussed, but changes in language are wider than just several new features. There are differences in type inference in generics and candidates lookup for binding, to name few. If you happen to hit this special cases, ReSharper could behave incorrectly.

If you are really-really going to immediately jump C# 3.0 wagon, you can disable highlighting (Options / Code Inspection / Settings) and switch to Visual Studio native intellisense (Options / Environment / IntelliSense / General). This will help a bit, but still you cannot trust find usages results, refactorings and many other features.

There was also reported weird problem with Visual Studio 2008 and ReSharper installed on x64 computers - opening Visual Studio's Find dialog crashes. We are currently trying to reproduce this problem. If you experience this problem, please tell us!

Some people tend to ask for quick-and-dirty hack for ReSharper 3 so that it just parses the code and don't do anything intelligent with C# 3.0 code. It is not possible. Details are not important here and are pure technical.

Next version
ReSharper 4 is in very active development. Its main purpose is to support C# 3.0 in all of its beauty. This means not only parsing and code intelligence, but also new analysis, refactorings, context actions and quick fixes. We are concentrated on making your development experience with C# 3.0 as smooth and pleasant as possible.

Currently, we have support for implicity typed variables and arrays, extension methods, object and collection initializers and automatic properties. As soon as we complete support for lambdas, queries and anonymous types, we will open Early Access Program. We plan to achieve this goal in January, 2008.
From this point you will be able to download EAP or even nightly builds and try full power of ReSharper 4 with your new C# 3.0 code.

In regards of upgrade policy, we are currently in the process of deciding upgrade cost, who qualifies for free upgrade, or if we want to do something special about this release. I will post about it as soon as I can.

As for release plans, we are aiming at 2008'Q1, hopefully sometime soon after Visual Studio 2008 launch event in February. ReSharper 4 will be available to general public via Early Access Program at least for 2 months before release.

If you have any questions, do not hesitate to ask in comments.

46 comments:

Alex said...

Awesome, thanks for the update. VS2008 in November took all of us by surprise. Missing ReSharper is primary reason my place has not yet committed to switching to C# 3.0 so far. Bring on the EAP!

Anonymous said...

Er... WHY is there a download for VS2008 (which, btw, was in Beta for a long time) given that ReSharper is completely unusable on it?

Anonymous said...

Hey Ilya,

Any chance there's a macro we could attach in the mean-while to disable Resharper intellisense and switch to Visual studio 2008 intellisense? (and switch back)

Using LINQ we need VS intellisense and the rest of the time I'd like to use Resharper's Intellisense.
It's also necessary for demos for us that do demos.

Thanks
--
Justin-Josef Angel [MVP]
J@JustinAngel.Net

Anonymous said...

Wow, I read this a day late. I just uninstalled VS2005 and installed VS2008 but would have waited if I'd known that ReSharper wasn't ready. I've been using the nightly builds of 3.03 and having seen the VS9 installs for 3.03 I also assumed that meant it was at least close to finished. This is very disturbing. I had to do some seriously fast talking to get my company to buy the 2.5 to 3.0 upgrade. I hope you will take into consideration that many of us thought we were getting a VS9 compatible upgrade when we purchased ReSharper 3.0....foolish assumption as it was.

Ilya Ryzhenkov said...

I don't think there could be a macro, but I think it is possible via a plugin. We will check on monday, if it is possible.

SBearman said...

"Re# 3 with VS 2008 developing C# 2 'works fine,' except for some relatively unusual special cases."

1) If we encounter these, can we turn R# off for those files that have the problems and have Re# work normally elsewhere?

VS 2008 and VS 2005 are said to be able to coexist.

2) Many of us now have VS 2005 and Re# 3.0.3 working well--and enjoying it.

2A) Can we install VS 2008 in addition, without disturbing VS2005 /Re# 3?

2B) How can we install Re# 3.0.3 into our newly-installed VS 2008 without corrupting the VS 2005/Re# combination?

Develop with Pleasure!

Ilya Ryzhenkov said...

SBearman,

1. If you mean just turn off error highlighting which is incompatible C# 3.0, you can do it by pressing Ctrl-8 (not F8, but digit key). This will disable highlighting for the current file for the current session.

2a. Yes, provided you have ReSharper of the same version number for VS2008 and VS2005. We will fix this limitation in the ReSharper 4.

2b. Just install same version of ReSharper you are using in VS2005 into VS2008, by downloading VS9 flavor of MSI package.

Shrike said...

Hello, Ilya .
I've experienced Find dialog crash.
It's awful bug.
I have Windows Server 2003 x64 EE SP2, VS2008 Team Suite.
Visual Studio steady crashes at the moment I press Ctrl+F.

Сделайте что-нибудь пожалуйста, жить так невозможно!

Ilya Ryzhenkov said...

Shrike,

We don't yet know what's going on. We can't reproduce it on any x64 machine we have here. We are going to recreate your setup and see if we can reproduce it.

Если б знали что, давно бы починили :)

Shrike said...

from bad to worse.
After installign Resharper for VS2008 the one for VS2005 stops working at all.
It says:

The Add-in 'ReSharper 3.0' failed to load or caused an exception.
Would you like to remove this Add-in?
If you choose yes, the file it was loaded from, 'C:\Program Files (x86)\JetBrains\ReSharper\v3.0\vs8.0\\Bin\ReSharper.8.0.AddIn', will be renamed.

Error Message: The system cannot find the file specified.


Error number: 80070002

Ilya Ryzhenkov said...

Shrike, this may be caused by different versions of ReSharper installed for VS2005 and VS2008. This is a known problem and we are trying to solve it. To workaround it, install same version of ReSharper (with appropriate suffix, though) into both Visual Studios

Shrike said...

Thnx. It helps.

Anonymous said...

Nice. :) I am looking forward to the upcoming R# version and would be *VERY* pleased if JetBrains offered fair upgrades. Even more, free upgrade should be obligatory for customers who bought a R# v3.0 quite recently, especially for your long-lasting customers. I'm afraid we couldn't convince our boss paying much again when we spent a pile of money already a handful of months before that.

Ian Vink said...

Until ReSharper supports VS 2008 we can't move to it either.

ryancammer said...

after 4.0 is released, i'm wondering whether jetbrains will ever work on other languages, such as python, javascript, and ruby....

Marcin said...

Ilya,

Thanks for the info about R#4, really looking forward to using it.

Any information on the pricing/upgrading policy for R#4? I've just postponed buying R#3 after reading this post and I'll have to cancel it and wait for R#4 if the upgrade from R#3 will involve additional payments. I'll have a hard time explaining it to my work buddies that they have to wait few months :)

Thanks,
Marcin.

Ilya Ryzhenkov said...

Marcin,

It is not yet determined, how upgrade policy will go, but most likely ReSharper 4 for Visual Studio 2008 will be paid upgrade.

Theodor said...

Maybe the following link will help in resolving the Ctrl+F issue (if it hasn't already been fixed):
http://realtimesoft.com/multimon/forum/messages.asp?Topic=8178&tmpl=UltraMon

Ilya Ryzhenkov said...

Theodor, thank you very much! We will definitly check this.

Matthew said...

I can understand the likelihood that R# 4 will be a paid upgrade, but I do think that it'd be fair for recent licenses to be upgraded for free. I just got my license 3 weeks ago, and I don't think I'd be able to justify a substantive upgrade fee to finance so quickly :)

John said...

Hi,
xp64 vs 2005 with resharper
installed vs2008 (without resharper)
find crashes every time.
:(
Let me know what information you'd like.
John.

Anonymous said...

Speaking as a developer who just got the bosses to agree to installing resharper on *all* the divisions developers machines in the last month I don't think it's very fair not to do the 'free upgrade within' type deal. Quite disappointed atm...

kiko said...

Hi Ilya,

I hope you could help me on this one. Ever since I installed ReSharper 3 on top of VS 2008, Intellisense no longer works on web services. It compiles okay, yet it "cannot resolve symbol".

What could be the cause?

Ilya Ryzhenkov said...

kiko, I suggest you contact our support at jetbrains.com. There can be several reasons for unresolved symbols, and support team will help you determine what's wrong.

Ilya Ryzhenkov said...

John, sorry, I didn't notice your comment about crash on x64. It seems like this crash is actually a bug in VS2008, exploited by some specific hooks installed by various software (not just ReSharper). We are trying to resolve this on our end, so ReSharper will not cause VS to crash.

Chris said...

I experience the Find Dialog crash as well.

I have ReSharper 3.02 installed in Visual Studio 2005. I then later installed Visual Studio 2008 and experienced the error.

I do not have UltraMon, but I do have 3 monitors. I don't like having to choose between Visual Studio 2008 and ReSharper so I hope this gets fixed soon.

Anonymous said...

Will Resharper 4 have any support for VB.Net? You only mentioned C# in your post.

Ilya Ryzhenkov said...

Chris, we are trying to fix it, but to the moment we are not successful. However, it looks like you have to select between ReSharper and Find Dialog :) You could try ReSharper PowerToys and its textual find plugin, which is like VS's find in files, but displayed in ReSharper's Find Usages style. Also, instead of find in current document, you could use incremental search.

I understand, those are just workaround, but to date we was not able fix the problem :(

Ilya Ryzhenkov said...

ReSharper 4 will have the same support for VB.NET language as ReSharper 3, i.e. VB8. This means no new VB language features support in this version. ReSharper version 4.next will support VB9.

Justin B said...

Like a few others here I just got my company to buy ReSharper 3 as it had (apparently) VS.NET08 support. Upon installing the release VS.NET08 intellisense is not working for ReSharper and functioning very very slowly for VS.NET08.

I hope the fully compatible version will be out asap...

Valentin said...

Intellisense setting gets randomly reset in the VS options.
I have to manally restore the setting once in a while - after that both kinds of intellisense work fine.
This might be the VS bug, not R#.

Anonymous said...

I don't have resharper installed but i enjoy the ctrl-f bug as well :-(

WinXP x64 SP2, VS 2008

If you have questions about my config in detail feel free to contact me [headcrash99 at gmx dot net]

Ilya Ryzhenkov said...

This is bug in Wow64, known to Microsoft. Check here: http://resharper.blogspot.com/2007/12/resharper-and-visual-studio-crash-on.html

Vlad said...

Hello, i was just wondering whether will R#4 support the testing environment of VS2008 (test edition). We're currently using nunit, but there's a strong drive to move onto M$'s native testing functionality, since we have it as a part of the TFS licence. Thanks.

Brett said...

You state that "ReSharper 4 is in very active development. Its main purpose is to support C# 3.0 in all of its beauty."

What about VB.NET 9.0? Will ReSharper 4 support that as well? If so, will it also be supported in the EAP?

Thanks,
Brett R.

Ilya Ryzhenkov said...

Brett, VB9 is not part of 4.0 release. We will devote special effort to VB9 after ReSharper 4 is out and critical bugfixes (if any) are released. On the other hand, VB9 will be minor update, something like ReSharper 4.2 (ultimate answer, yeah), so it will be free upgrade for owners of 4.0 license.

Lyle said...

R#3 not working under Virtual PC 2007, Windows Server 2003 R2 SP1, Visual Studio 2008 Developer Edition.

The VS Add-In Manager does NOT have R# listed.

R# is confirmed installed under an Admin account, and is visible under Add / Remove Programs.

Seems the add-in was not correctly registered in the release version of VS2008.

Any ideas / Help?

Ilya Ryzhenkov said...

Lyle, could you please contact support@jetbrains.com with more information about your problem? We were not able to reproduce this issue on Virtual PC 2007 + Win 2003 Server Enterprise R2 SP2, VS 2008 Professional Edition. Thanks.

Josh said...

We love your product here at Industrial Logic. However, we've been waiting for an "Inline Method" refactoring since version 1.o of Resharper! Any plans for it?

Also, your Pull Up Members refactoring really ought to give us the chance to pull up the same fields/properties from multiple subclasses (Eclipse can do that).

Fedya said...

There was also reported weird problem with Visual Studio 2008 and ReSharper installed on x64 computers - opening Visual Studio's Find dialog crashes. We are currently trying to reproduce this problem. If you experience this problem, please tell us!

Yup! I have this problem - and it is extremely annoying...

My configuration is Windows Server 2003 Enterprise x64 Edition SP2,
Intel Xeon CPU @ 2GHz, 4GB RAM.

We use Resharper 2.5.

Anonymous said...

When!?
I just cant wait!!!

Anonymous said...

First... I love Resharper! I just now moved to VS2008. Now when i try to write LINQ - Resharper complains and no intellisense.

I was searching around for EAP version of c# ReSharper 4.0 - can you tell where i may find it?

If EAP 4.0 is not available, can you indicate how i can disable Resharper temporarily - and use VS2008 native - intellisense? After i disable Resharper as an addon, VS2008 intellesense does not seem to work. I cant seem to set VS2008 to disable Resharper addon during startup.

Anonymous said...

ReSharper is not mentioned in AddIn Manager.

Anonymous said...

I am experiencing the Find/Replace Dialog Crash, I'm on Windows XP X64
here is the information in the event viewer. Please let us know what we can do to help you, this makes Resharper unusable to me, I am using the trial and will not buy until this is resolved or understood with workarounds or some sort of fix. Here is the error in the event viewer:

Faulting application devenv.exe, version 9.0.21022.8, stamp 47317b3d, faulting module unknown, version 0.0.0.0, stamp 00000000, debug? 0, fault address 0x009a0444.

And the bytes!
0000: 41 00 70 00 70 00 6c 00 A.p.p.l.
0008: 69 00 63 00 61 00 74 00 i.c.a.t.
0010: 69 00 6f 00 6e 00 20 00 i.o.n. .
0018: 46 00 61 00 69 00 6c 00 F.a.i.l.
0020: 75 00 72 00 65 00 20 00 u.r.e. .
0028: 20 00 64 00 65 00 76 00 .d.e.v.
0030: 65 00 6e 00 76 00 2e 00 e.n.v...
0038: 65 00 78 00 65 00 20 00 e.x.e. .
0040: 39 00 2e 00 30 00 2e 00 9...0...
0048: 32 00 31 00 30 00 32 00 2.1.0.2.
0050: 32 00 2e 00 38 00 20 00 2...8. .
0058: 34 00 37 00 33 00 31 00 4.7.3.1.
0060: 37 00 62 00 33 00 64 00 7.b.3.d.
0068: 20 00 69 00 6e 00 20 00 .i.n. .
0070: 75 00 6e 00 6b 00 6e 00 u.n.k.n.
0078: 6f 00 77 00 6e 00 20 00 o.w.n. .
0080: 30 00 2e 00 30 00 2e 00 0...0...
0088: 30 00 2e 00 30 00 20 00 0...0. .
0090: 30 00 30 00 30 00 30 00 0.0.0.0.
0098: 30 00 30 00 30 00 30 00 0.0.0.0.
00a0: 20 00 66 00 44 00 65 00 .f.D.e.
00a8: 62 00 75 00 67 00 20 00 b.u.g. .
00b0: 30 00 20 00 61 00 74 00 0. .a.t.
00b8: 20 00 6f 00 66 00 66 00 .o.f.f.
00c0: 73 00 65 00 74 00 20 00 s.e.t. .
00c8: 30 00 30 00 39 00 61 00 0.0.9.a.
00d0: 30 00 34 00 34 00 34 00 0.4.4.4.
00d8: 0d 00 0a 00 ....

Ilya Ryzhenkov said...

x64 with Find Dialog is the problem in Windows, see http://resharper.blogspot.com/2007/12/resharper-and-visual-studio-crash-on.html

Vaccano said...

ReSharper Beta 4 now supports the cool new stuff in Visual Studio 2008