In my department, we are currently using ReSharper 4.0 and deciding whether to upgrade to 4.5 upon its release next week. I personally am a huge fan of ReSharper however a number of my colleagues have pointed out that they have been using a plug in from DevExpress called Refactor Pro that performs similar functionality.
http://www.devexpress.com/Refactor
http://www.jetbrains.com/resharper/beta.html
Has anyone previously compared these tools and hold any strong views on which tool would give us the greatest increase in productivity and why?
In my department, we also use ReSharper. Today, I installed 4.5, but had already used 3.something, 4.0 and 4.1 before. It really offers many great refactoring and code-writing supporting functions, renaming methods and functions, reordering parameters...
What I really like is that according to your corporate code style, you can configure ReSharper to give you hints on style violations in different severity levels (and quickly apply according changes, like MS StyleCop, but much easier to configure and more subtle).
My absolute favorite feature is Class-Searching by entering only the CamelCases, i.e. you type TSHWLOV and ReSharper will know that you mean the class from some referenced library named 'TerrificSearchHelperWithLotsOfVoodoo'.
Last year I have tried the DevExPress CodeRush/RefactorThis-Alternative, after I was quite impressed by the things that Oliver Sturm did with it on BASTA Spring 08.
The interface catchier and more impressive than Resharper, there are huge arrows flipping around your IDE and things like that, though the core functionality is rather similar.
I had the feeling that CodeRush is more focussed on code creation than on refactoring, i.e. more shortcuts for tasks like creating variables etc.
My favorite feature there was a sidebar, which always shows you all keyboard-shortcuts available in your current context. This makes you learn those commands quickly, where in ReSharper you have to look up most of them in nested submenus.
Both suites are really powerful and it after months of using them you will probably still discover new functions, which you have always needed without knowing it.
However, I decided in favor of ReSharper mostly because of I was more familiar with it and DevExpress was using much resources on my notebook and occasionally even slowed it down. By now, I use a much more powerful machine again, maybe I will give it another try soon.
I personally prefer CodeRush.
I find R#'s interface drives my (admittedly minor) OCD tendencies crazy. The little lightbulb insists on appearing on the far left of the screen, even if it's advice pertains to something in the middle or on the right. I find it garish and distracting.
By contrast, CodeRush's equivalent smart tag is lower contrast and smaller. It is therefore capable of locating itself within the code without distracting from said code. I find I can ignore this SmartTag when I need to, and it is always right in front of me when I decided I need it.
It is mainly this, that has prevented me from wanting to explore R# any further.
As far as CodeRush's feature set: Code Analysis, Refactorings, CodeProviders, Templates, TabToNextReference, QuickNavigation and many more.
I especially like CodeRush's extensibility which has allowed myself and several others to create many plugins for use within it. (http://code.google.com/p/dxcorecommunityplugins/)
CodeRush also has some top quality support and a very active community of users.
Certainly neither R# or CodeRush will suit all users. Every one has their own preferences. However, if you've not tried both, you should certainly do so.
If you come from the R# side of the equation and are looking to test out CodeRush, then you may find the compatibility plugin useful (http://code.google.com/p/dxcorecommunityplugins/wiki/CR_ReSharperCompatibility)
In addition CodeRush has a Free edition 'CodeRush Xpress' which Microsoft commissioned DevExpress to create, and which they have licensed on behalf of every user of Visual Studio 2008. This partnership will continue into VS2010 upon it's release.
If you have any questions regarding CodeRush you can find details for contacting me at the bottom of my community wiki page.
I should say that I do not work for DevExpress. I am what you might call a DevExpress MVP. To maintain this position, I answer questions in the DevExpress forums (and nothing else).
Everything I say is my own honest opinion.
If you have any questions, feel free to contact me :)
I'm using DevExpress which has a lot of "hidden" functionality, so you need to read the manuals to know how to activate some of the functionality. I find it very passive and subtle.
I used ReSharper and found it buggy and very invasive in my coding style. Bracket-closing drove me nuts, it ignored my preferences and couldn't cope with how I write my lines of code - which may not be most efficient but it's one of those things that ain't gonna change!
I've tried both, and really didn't get along with ReSharper. I found it to be just too intrusive for my coding style. When I switched to CodeRush / Refactor! it was like I'd found the perfect aid to my productivity. The refactorings are, for the most part, exactly what I wanted to see from this kind of product.
It is, however, horses for courses and you may well find that you prefer ReSharper. The best advice I can give is to try the other products and see which you prefer.
The only correct answer is to use both, of course! I do. You need a beefy laptop though. If I had to choose only one, I'd choose ReSharper... I think the static code analysis is a lot better.
ReSharper has a lot of great features, and DevExpress has a lot of great features.
When you put the two together, you end up w/ whole lot of AWESOME.
You need to jump through a few hoops to make them play nicely together: http://frazzleddad.blogspot.com/2010/01/making-devexpress-resharper-play-nicely.html
R# 4.5 is a free upgrade if you have a 4.0 license. So I'd suggest to get and use it - changing the "productivity tool" is always a pain because you'll have to get used to different ways, keyboard shortcuts etc. of doing things - no matter how good the tool actually is.
I have a personal copy of Refactor Pro but I use R# 4.1 at work with the StyleCop add-in as that is the team standard tool. I like RfP's arrows and code positioning stuff which is better than R#. Otherwise the tools are very similar.
However, at this time, its the StyeCop add-in that swings it in favor of R# for me.
Cheers
Benjy
Related
I've been using CodeRush with Refactor! Pro for a while, but I'm considering moving to ReSharper.
Once I uninstalled CodeRush, I immediately began to miss some key features, including:
navigating references using the Tab key,
renaming variables, methods, etc. with the F2 key,
basic refactorings such as Extract Method, etc.
I'm sure corresponding features exist in ReSharper. But, aside from having to look through the ReSharper online documentation each and every time I find myself missing something, has anybody built a correspondence table of keyboard shortcuts, etc., to key features in common to each? Or, if you've used both products yourself, could you share some basic equivalents you're aware of?
Note: this question is not being asked to debate which is better. I like CodeRush, but I'd like to know first hand if I'd like ReSharper more. Getting up to speed with ReSharper quickly will help me assess it fairly. For the which-is-better debate, please refer to the question ReSharper vs. CodeRush.
This community plugin is typically useful for R#r users transitioning to CodeRush -> http://code.google.com/p/dxcorecommunityplugins/wiki/CR_ReSharperCompatibility
I have recently upgraded to VS2010, and overall I must say that I'm very impressed. I used to use ReSharper when working with VS2008, but I have found that many of it's features have been incorporated into VS2010.
One of the features I like the most is the CTRL+, command which lets you navigate to a class or method by writing part of its name.
However, I have not had the time to explore all the new features, so I'd be really greatful if some of you would share the ones you like most.
I really like Call Hierarchies
With Control+K and Control+T you can navigate the code likes reflector does but with the source code
(source: dotnetslackers.com)
Also a great feature is T-SQL IntelliSense
A long requested feature that will become really :)
Things I like:
Several .NET 4 features, especially including:
New "characteristics" of the reflection API that made one of my projects possible
Concurrent collections and the parallel extensions
More powerful expression trees
System.ComponentModel.Composition (home of the Managed Extensibility Framework)
Windows 7 Shell APIs
Editing improvements:
Improved IntelliSense selection algorithm (substring and CamelCase matching)
Column editing
C++ improvements 1000X
Other:
The entire environment can be colored. It's not trivial, but I imagine someone will make a nice extension that makes it easy.
MEF extensibility and VSIX packaging for extensions
The profiler keeps getting better
I just saw this post on Microsoft Connect(while browsing on /.) about combining tab and indent option into one in VS2010.
They say they did ask here. But I don't see 8 comments being enough.
I usually use the default setting but sometime(in fact rarely) I do use customs settings.
They provide code and say it's our job now to manage these settings.
Final response, for now, from Microsoft;
Thanks again to everyone who has voiced an opinion on this issue. I unfortunately have to reiterate what I posted earlier: we cannot revert the UI for this before RTM. It's too late in the product cycle and too close to the VS 2010 ship date. Had the team heard this feedback a few months ago, the discussion about what to do for VS 2010 RTM could potentially have been reopened; again, we did phase in this change gradually and poll a wide variety of internal and external users to make sure all points of view could be considered before making a final decision. We'll be revisiting this issue for future versions and possibly for a VS 2010 service pack if/when one is to be released, but for RTM we're simply out of time.
Why are they doing this? Anyone know?
Well, the answer appears to be in the thread for your first link:
It's unfortunately not as simple as finding someone who wants a feature to be a certain way. Merging these two options into one eliminated a class of bugs that originated from setting them differently; we didn't consider changing this simply because we felt one fewer text box would constitute a significant improvement. In the absence of a critical mass of users who voiced negative feedback, we made the decision to update the options.
And those 8 comments weren't the only feedback they got, apparently. Quoting yet again:
Regarding user feedback on the decision to merge these two options, we asked a wide variety of people and phased in the changes gradually. We blogged publicly about the potential change on the VS Editor blog (admittedly not the most widely-read VS blog, but readership was significant enough to generate discussion): http://blogs.msdn.com/vseditor/archive/2009/03/19/how-do-you-use-tab-size-and-indent-size.aspx. We solicited feedback from members of Microsoft's MVP program, who spend a lot of time in Visual Studio, and from many internal teams and developers who use Visual Studio. We also phased in the change gradually: for Beta 1, Indent Size was disabled/grayed out and always set to the same value as tab size. In the absence of negative customer feedback on this, we merged the Tab Size and Indent Size options into a single “Tab and indent size” option for Beta 2.
I'm not saying it's a good idea, just that Microsoft appears not to have just inflicted this on their users without at least some consultation. I'm no Microsoft fan-boy in case you think I'm an apologist, other than XP at work, I pretty much use al free software. It just seems to me they may not be totally in the wrong here. And I have had experiences with customers trying to get changes made to software late in the cycle - it's a royal PITA :-)
More worrying to me would be the comment from your second link:
Visual Studio 2010 can support multiple font faces and multiple font heights
Colour and italicise my code all you want, but you'll have to prise my beloved fixed width font from my cold dead hands!
And I've just noticed that MS went out of their way to actually give a workaround to those people who vehemently want the setting kept separate. The comment on the second link, dated Dec 16 2009, gives an editor extension that allows different values to be set for tabs and indents. This is pretty darn good service if you ask me.
EDIT: As you can now see on the Connect bug, we've split the settings back out and I went through and fixed up all the behavior issues with the split options (minus 3 or so bugs that were in the VS2008 implementation, mostly around un-indenting). It won't be patched into the RC, but it'll be there when VS2010 ships.
(I'm a developer on the Visual Studio editor team)
To be accurate, we didn't precisely remove the feature; one of the tradeoffs we made while writing this piece of the new editor was that the cost of reimplementing it, relative to the numerous other things we had to write and what we thought the benefit was, was going to be fairly high. However, we weren't convinced that we had an accurate idea of what the benefit was, so Brittany did all of the things she listed to try and get a better idea of the impact, and again and again we were met with people who really didn't care (the vast majority of people seem to use 4/4). So we disabled it in Beta 1, and didn't get much negative feedback. We removed the option completely in Beta 2, and still didn't get very much negative feedback until the last 2 weeks, at which point it has become too late for us to put it back in (for RTM, at least).
Also, it isn't just a matter of re-enabling the option in the dialog (though that is basically what Brittany's extension does), as the editor itself still doesn't consider indentation/tab size to be different settings (internally, there is just TabSizeOptionId). Though the language services, which generally are the clients that care most about these settings, should handle them correctly, the editor doesn't distinguish between the two, and will end up using the tab size setting in cases where the indent size setting should probably be used.
I mention that i am designing a language. The plan was always to not implement it but to design it but i am considering implementing it if i think i could do it in a reasonable amount of time.
How would i have my language use intellisense in visual studios? BooLangStudio has it http://www.codinginstinct.com/2008/05/boo-in-visual-studio.html, http://www.codeplex.com/BooLangStudio
It all depends on how much time you want to spend on it. I have about 2,000 hours of work in my Visual Studio IntelliSense projects resulting in exactly one mostly-complete language service. That said, it's not your "average" IntelliSense extension to Visual Studio - see the feature set for more info.
Here are some good resources to look at. I have a tendency to write with an assumption that users are already familiar with both the Visual Studio Extensibility basics and parsing with ANTLR. If you aren't, you should probably start at www.antlr.org and with my "ANTLR port" of one of the simple Visual Studio language service tutorials.
Here are some posts showing how serious I am about the subject. :D
How does code completion work?
Smart code-completion original and revisited. Clearly I take the latter more seriously than other people (voted down and voted to close?!), but I believe doing so just gives my users a better product. :)
High-speed incremental lexing for syntax highlighting original (under IScanner-friendly lexers), cleaned up (significantly - vastly preferable to the original), and made yet again 6x faster in 1/4 the memory.
Little things like sane commenting/uncommenting and brace matching do make a difference. On a side note, once you use one that's well-behaved, the others (including the ones for some Microsoft languages in Visual Studio) are rather annoying.
If you can, read all the IntelliSense-related posts on my blog.
Smart indent is a PITA (I mean really smart, e.g. the C# language service in VS2008). I have a love/hate relationship with it. I'm annoyed now because writing this bullet made me think about it. Argh. My insight here makes me a bit forgiving of them breaking it for VS2010 Beta 1, but it doesn't keep me from missing its awesomeness.
PS: I can now build a syntax highlighter for a new language commenting/uncommenting in 1 day. In the same day I'm ofter able to get the type & member bars in as well.
This is a good place to look for Visual Studio Extensibility.
Also, here. But, the first link has a video specific to adding Intellisense to your language service.
As of 4-4-2017: This article seems to give all of the basics for creating a language extension, which includes highlighting words and providing intellisense (code completion).
https://code.visualstudio.com/docs/extensions/example-language-server
I'm a bit in IDE trouble, and I'm not alone I have noticed, still I haven't found an answer on many of my questions.
I would very much stop using different editors and become very good at one (on windows), adhering the pragmatic adage : "Learn one editor (ide) well". I' m willing to put in a lot of effort, to gain on the long term.
I have programmed (java) with Intellij and Eclipse, and am progamming c# now. (VS08 was at first very disappoing for me, till so at SOF mentioned Resharper and now I'm very happy with it, especially since I started writing macros for further adjustments)
For all purpose editors, VIM and EMACS come to mind, but I'm afraid they just cannot compete against VS08/Resharper when it comes to C#, which I'm using a lot on this moment. Further, it isn't clear to me if they support refactoring (after installing packages for the language in question?)
But since VS08/Resharper is so powerfull for c#, I would like to give VS a serious chance. But for that it should have support for langauges that don't compile to CIL.
hence my question : Is Visual Studio a good tool for non .NET languages?
(and like asked on the side : how about refactoring in VIM/EMACS?)
VS is IMO, better then average editor but not something you can't live without.
If you like your editor to open as fast as Notepad with bunch of features, try EditPlus (on the down side it uses older RegExp implementation but on the plus side it can be made to be portable.
If you would like total extensibility, fast startup, inovative fatures, integrated reposity etc.. try E-Editor, windows port of Mac TextMate.
VIM is ofc superb, but ... long learning curve may be a problem and some people can't find themselves in 2 mode editors.
About Resharper... mhm... almost all of its non-code analytic features may be integrated in mentioned editors. For its suggestive features I doubt there is alternative. I disabled it for the moment because I tend to let Resharper fill in my holes so it can be a double bladed sword - sonner or latter I will totally stop thinking about some things like, can this variable be null or can I move its declaration. I run resharper once I finished some working procedure or at the very end to polish the code.
I personaly use EditPlus for all of the NON MS languages, but E-Editor got my attention recently.
I tend to avoid using IDEs outside of the languages they are designed. A dedicated IDE can include class libraries, function references, code completion utilities, etc. out of the box.
Once you step outside that, however, you have a clunky and resource hungry text-editor. You might as well use a text editor in that case just to keep your workstation nimble.
It might be better not to learn one IDE well, but rather a text editor. I've used jEdit for years for several reasons: It's multiplatform, includes syntax highlighting for lots of languages, and can be feature-extended with plugins. It's become one of my standard tools, but it's only one in the box.
How about VI mode for VS? I think Eclipse has one too.
You'll just have to learn vi-related commands, but will be able to work in, C# (with VS), Java (with Eclipse), C++ (with VS or Eclipse), scripting languages (with vi), ...
"I would very much stop using different editors and become very good at one (on windows),"
Why?
"adhering the pragmatic adage : "Learn one editor (ide) well". " Really? How is this pragmatic?
After 30 years in this business, my lesson learned is "tools come and go."
Once upon a time we had big fights over vi vs emacs. Not vim with syntax coloring, but plain-text-vi on black-and-white monitors.
Why narrow your world to one tool? How will you cope with innovation if your tool is not the new state-of-the-art?
As far as C/C++ goes, Visual Studio is considered the gold standard (well, Visual Studio + VAX if you really want to get specific). It's not perfect, and it's certainly not as good as the C# tools it has, but it's still a damn sight better than anything else out there, on any platform. (Assuming you didn't want C99 support.)
Of course it doesn't really do non-.NET other than those two.
I think that there is good specialization at the moment. VS is the clear candidate for .Net, with Resharper and DevExpress as great augmentation for increased productivity.
Currently we use Aptana for the "Web 2.0" stuff - CSS/jQuery/MooTools, and that has been a great environment as well. I have avoided the Intellisense in VS 08 for jQuery and do prototyping in HTML/CSS/JS in Apatana, then do all the Domain design in VS. Works for us pretty well.
It is good for C/C++ but it is not comparable with what you get for C# or VB.Net ( i don't think it support other languages )
for javascript intelisense is still limited