<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: ReSharper vs CodeRush + Refactor Pro</title>
	<atom:link href="http://www.tewari.info/2009/02/21/resharper-vs-coderush-refactor-pro/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.tewari.info/2009/02/21/resharper-vs-coderush-refactor-pro/</link>
	<description>Professional Software Development by Ash Tewari</description>
	<lastBuildDate>Thu, 14 Jan 2010 18:40:05 +0000</lastBuildDate>
	
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: BhaaL</title>
		<link>http://www.tewari.info/2009/02/21/resharper-vs-coderush-refactor-pro/comment-page-1/#comment-285</link>
		<dc:creator>BhaaL</dc:creator>
		<pubDate>Mon, 05 Oct 2009 13:55:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.tewari.info/2009/02/21/resharper-vs-coderush-refactor-pro/#comment-285</guid>
		<description>Hi, I just came across this post and feel like I have to &quot;protect&quot; CodeRush (or better: CodeRushX in particular which I use) a bit there:

&quot;Create a new WinForms project in Visual Studio. Make sure it compiles. Press F7 to open the code window of the main screen. Highlight the namespace “WindowsApplication1″ and press [Ctrl+`] and select “Rename”. Change the name to “MyCompany.CoolApp”. Try to compile again. It will not compile.&quot;
This calls the default refactoring from Visual Studio (Right-click, Refactor &gt; Rename...) - and yes, this one is broken as soon as you try to include multiple levels of Namespaces with your refactoring.
The same applies to &quot;Extract Interface&quot; which only calls the VS built-in refactoring (which also allows for public members to be selected).

From practise (and a few colleagues) I know that R# is a powerful tool, but IMO it is a bit too overloaded. Having a hotkey for each refactoring can be neat, but this can also be overcomplicating things. CRX has a single hotkey that shows only applicable refactorings to the current content. 
My colleagues also rant that it slows down their VS, which might be partly true, but that might aswell be a result of their general resource-wasting way of using their PCs.
My Tool of choice is still CodeRushX.

- BhaaL</description>
		<content:encoded><![CDATA[<p>Hi, I just came across this post and feel like I have to &#8220;protect&#8221; CodeRush (or better: CodeRushX in particular which I use) a bit there:</p>
<p>&#8220;Create a new WinForms project in Visual Studio. Make sure it compiles. Press F7 to open the code window of the main screen. Highlight the namespace “WindowsApplication1″ and press [Ctrl+`] and select “Rename”. Change the name to “MyCompany.CoolApp”. Try to compile again. It will not compile.&#8221;<br />
This calls the default refactoring from Visual Studio (Right-click, Refactor &gt; Rename&#8230;) &#8211; and yes, this one is broken as soon as you try to include multiple levels of Namespaces with your refactoring.<br />
The same applies to &#8220;Extract Interface&#8221; which only calls the VS built-in refactoring (which also allows for public members to be selected).</p>
<p>From practise (and a few colleagues) I know that R# is a powerful tool, but IMO it is a bit too overloaded. Having a hotkey for each refactoring can be neat, but this can also be overcomplicating things. CRX has a single hotkey that shows only applicable refactorings to the current content.<br />
My colleagues also rant that it slows down their VS, which might be partly true, but that might aswell be a result of their general resource-wasting way of using their PCs.<br />
My Tool of choice is still CodeRushX.</p>
<p>- BhaaL</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David Ridgway</title>
		<link>http://www.tewari.info/2009/02/21/resharper-vs-coderush-refactor-pro/comment-page-1/#comment-268</link>
		<dc:creator>David Ridgway</dc:creator>
		<pubDate>Fri, 18 Sep 2009 17:49:57 +0000</pubDate>
		<guid isPermaLink="false">http://www.tewari.info/2009/02/21/resharper-vs-coderush-refactor-pro/#comment-268</guid>
		<description>I think that on a different level R# also shines through, if you get into the ability to template code cleanups it makes it really easy for a lead dev to keep the code base nicely formatted and streamlined. I have taken to running a code cleanup before doing a major build. This means I can spend less time being a format Nazi and more time on the design of the application.

Also when coding I would hate to have to go back to using the built in VS Intellisense, that for me is the deal maker, I think R# is well worth the money just for that. 

I still have some 10% discount coupons and extended trials for ReSharper 4.5  for anyone that is interested see here for details:

http://web2asp.net/2009/09/resharper-discount-and-extended-trial.html&lt;/a&gt;</description>
		<content:encoded><![CDATA[<p>I think that on a different level R# also shines through, if you get into the ability to template code cleanups it makes it really easy for a lead dev to keep the code base nicely formatted and streamlined. I have taken to running a code cleanup before doing a major build. This means I can spend less time being a format Nazi and more time on the design of the application.</p>
<p>Also when coding I would hate to have to go back to using the built in VS Intellisense, that for me is the deal maker, I think R# is well worth the money just for that. </p>
<p>I still have some 10% discount coupons and extended trials for ReSharper 4.5  for anyone that is interested see here for details:</p>
<p><a href="http://web2asp.net/2009/09/resharper-discount-and-extended-trial.html" rel="nofollow">http://web2asp.net/2009/09/resharper-discount-and-extended-trial.html</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: tewari</title>
		<link>http://www.tewari.info/2009/02/21/resharper-vs-coderush-refactor-pro/comment-page-1/#comment-36</link>
		<dc:creator>tewari</dc:creator>
		<pubDate>Sun, 01 Mar 2009 19:37:52 +0000</pubDate>
		<guid isPermaLink="false">http://www.tewari.info/2009/02/21/resharper-vs-coderush-refactor-pro/#comment-36</guid>
		<description>@Rory :

1. I am not referring to the one or two letter variable names that get expanded and get in my way. CodeRush seems to want to &quot;help&quot; me when I don&#039;t want/need it. Everytime it happens, I get distracted and loose my place. I will try to post some screen captures to substantiate my comment.

2. If I change the primary expansion key from [Space] to, say, [Ctrl+Space], the only way to expand the templates is to remember each one of them, because CodeRush does not give me any other way to &quot;lookup&quot; what is available to me as I write code. Well, actually I can also keep the training window open and keep referring to it, but that is not efficient at all.</description>
		<content:encoded><![CDATA[<p>@Rory :</p>
<p>1. I am not referring to the one or two letter variable names that get expanded and get in my way. CodeRush seems to want to &#8220;help&#8221; me when I don&#8217;t want/need it. Everytime it happens, I get distracted and loose my place. I will try to post some screen captures to substantiate my comment.</p>
<p>2. If I change the primary expansion key from [Space] to, say, [Ctrl+Space], the only way to expand the templates is to remember each one of them, because CodeRush does not give me any other way to &#8220;lookup&#8221; what is available to me as I write code. Well, actually I can also keep the training window open and keep referring to it, but that is not efficient at all.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: tewari</title>
		<link>http://www.tewari.info/2009/02/21/resharper-vs-coderush-refactor-pro/comment-page-1/#comment-35</link>
		<dc:creator>tewari</dc:creator>
		<pubDate>Sun, 01 Mar 2009 19:22:50 +0000</pubDate>
		<guid isPermaLink="false">http://www.tewari.info/2009/02/21/resharper-vs-coderush-refactor-pro/#comment-35</guid>
		<description>@Mark: Here is another CodeRush bug. Or may be it is a &quot;feature&quot;, which I can disable or customize from an options dialog ;) -

Create a new WinForms project in Visual Studio. Make sure it compiles. Press F7 to open the code window of the main screen. Highlight the namespace &quot;WindowsApplication1&quot; and press [Ctrl+`] and select &quot;Rename&quot;. Change the name to &quot;MyCompany.CoolApp&quot;. Try to compile again. It will not compile.

So much for not going deep enough :D !

1. Here is a video of my attempt to create an overload of a constructor - http://screencast.com/t/40ThV3xP4Bx . Your suggestion didn&#039;t work.

2. CodeRush does not add references to &quot;My&quot; projects and namespaces, even if I use templates. Try it for yourself - create two projects in an empty solution - name the first one app.controller and the other one app.service. Declare a class in one project (app.service) and try to use it from the other one. ... How did it go ? ... Now try it with Resharper.

3. CodeRush does have a lot of very useful and interesting features, including many that helps in TDD. The difference is that it all &quot;flows&quot; much better in Resharper.

4. The point is not about how many I can remember. Visual Studio itself has hundreds of keyboard shortcuts. There are over 400 listed here : http://www.dev102.com/vs-cheatsheet/. The point is that for those who use them, they are much more fluent and unobstructive. And Resharper seems to have very well thought out keyboard shortcuts.

5. When I extract an interface, ReSharper gives me these options : 
http://www.jetbrains.com/resharper/documentation/help20/Refactoring/extractinterface.html.
 It allows me to choose the members to be included in the extracted interface. CodeRush does not give me any options. It includes all (public) members of the class.</description>
		<content:encoded><![CDATA[<p>@Mark: Here is another CodeRush bug. Or may be it is a &#8220;feature&#8221;, which I can disable or customize from an options dialog <img src='http://www.tewari.info/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  -</p>
<p>Create a new WinForms project in Visual Studio. Make sure it compiles. Press F7 to open the code window of the main screen. Highlight the namespace &#8220;WindowsApplication1&#8243; and press [Ctrl+`] and select &#8220;Rename&#8221;. Change the name to &#8220;MyCompany.CoolApp&#8221;. Try to compile again. It will not compile.</p>
<p>So much for not going deep enough <img src='http://www.tewari.info/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  !</p>
<p>1. Here is a video of my attempt to create an overload of a constructor &#8211; <a href="http://screencast.com/t/40ThV3xP4Bx" rel="nofollow">http://screencast.com/t/40ThV3xP4Bx</a> . Your suggestion didn&#8217;t work.</p>
<p>2. CodeRush does not add references to &#8220;My&#8221; projects and namespaces, even if I use templates. Try it for yourself &#8211; create two projects in an empty solution &#8211; name the first one app.controller and the other one app.service. Declare a class in one project (app.service) and try to use it from the other one. &#8230; How did it go ? &#8230; Now try it with Resharper.</p>
<p>3. CodeRush does have a lot of very useful and interesting features, including many that helps in TDD. The difference is that it all &#8220;flows&#8221; much better in Resharper.</p>
<p>4. The point is not about how many I can remember. Visual Studio itself has hundreds of keyboard shortcuts. There are over 400 listed here : <a href="http://www.dev102.com/vs-cheatsheet/" rel="nofollow">http://www.dev102.com/vs-cheatsheet/</a>. The point is that for those who use them, they are much more fluent and unobstructive. And Resharper seems to have very well thought out keyboard shortcuts.</p>
<p>5. When I extract an interface, ReSharper gives me these options :<br />
<a href="http://www.jetbrains.com/resharper/documentation/help20/Refactoring/extractinterface.html" rel="nofollow">http://www.jetbrains.com/resharper/documentation/help20/Refactoring/extractinterface.html</a>.<br />
 It allows me to choose the members to be included in the extracted interface. CodeRush does not give me any options. It includes all (public) members of the class.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Miller</title>
		<link>http://www.tewari.info/2009/02/21/resharper-vs-coderush-refactor-pro/comment-page-1/#comment-32</link>
		<dc:creator>Mark Miller</dc:creator>
		<pubDate>Wed, 25 Feb 2009 18:49:52 +0000</pubDate>
		<guid isPermaLink="false">http://www.tewari.info/2009/02/21/resharper-vs-coderush-refactor-pro/#comment-32</guid>
		<description>Hi Tewari,

It sounds like you didn&#039;t go very deep into CodeRush. A few points, in addition to those Rory mentioned...

1. You *can* create overloads of constructors in CodeRush. Just by place the caret on the constructor and press the CodeRush/Refactor! key (Ctrl-`) and then choose &quot;Create Overload&quot;. These are the same steps you perform when you want to overload methods (or use any other refactoring or TDD create from usage feature).

2. CodeRush *does* add namespace imports automatically when you use templates to declare members, types, and variables, which you should be doing if you want to really maximize your efficiency. You can see what templates are available at any time as you work by bringing up the CodeRush training window (DevExpress &#124; Tool windows &#124; CodeRush).

3. CodeRush includes smart/powerful create from usage TDD features, including many that are more intelligent than those shipping with ReSharper. Just place the caret on the undeclared code reference and press the CodeRush/Refactor! key (Ctrl-`) and then choose the declaration you want. Some examples are here:

http://community.devexpress.com/blogs/markmiller/archive/2008/10/27/announcing-coderush-express-for-c.aspx

BTW, that link above is to an announcement of CodeRush Xpress, a free product that contains a number of hand-picked features from CodeRush, including many powerful Declaration From Usage features. Did I mention that product is free?

4. Refactor! Pro ships a few disabled shortcuts for refactorings, namely F2 for Rename. You can enable this or set up a shortcut for any refactoring you want using the IDE\Shortcuts options page. However I think you&#039;ll find it much easier to remember one shortcut as opposed to 30.

And finally, I don&#039;t understand this:

&quot;R# allows me to specify exactly what to include when doing ExtractXXX refactorings. CodeRush doesn’t. &quot;

I don&#039;t think you&#039;re talking about what code to include, because Refactor! Pro certainly allows you to do this. And based on what I&#039;ve seen, CodeRush&#039;s extract method is as intelligent and capable as ReSharper&#039;s if not more so, so the discrepancy you&#039;re mention doesn&#039;t appear to make sense. If you want to reach me directly to elaborate, it&#039;s markm at the devexpress domain.</description>
		<content:encoded><![CDATA[<p>Hi Tewari,</p>
<p>It sounds like you didn&#8217;t go very deep into CodeRush. A few points, in addition to those Rory mentioned&#8230;</p>
<p>1. You *can* create overloads of constructors in CodeRush. Just by place the caret on the constructor and press the CodeRush/Refactor! key (Ctrl-`) and then choose &#8220;Create Overload&#8221;. These are the same steps you perform when you want to overload methods (or use any other refactoring or TDD create from usage feature).</p>
<p>2. CodeRush *does* add namespace imports automatically when you use templates to declare members, types, and variables, which you should be doing if you want to really maximize your efficiency. You can see what templates are available at any time as you work by bringing up the CodeRush training window (DevExpress | Tool windows | CodeRush).</p>
<p>3. CodeRush includes smart/powerful create from usage TDD features, including many that are more intelligent than those shipping with ReSharper. Just place the caret on the undeclared code reference and press the CodeRush/Refactor! key (Ctrl-`) and then choose the declaration you want. Some examples are here:</p>
<p><a href="http://community.devexpress.com/blogs/markmiller/archive/2008/10/27/announcing-coderush-express-for-c.aspx" rel="nofollow">http://community.devexpress.com/blogs/markmiller/archive/2008/10/27/announcing-coderush-express-for-c.aspx</a></p>
<p>BTW, that link above is to an announcement of CodeRush Xpress, a free product that contains a number of hand-picked features from CodeRush, including many powerful Declaration From Usage features. Did I mention that product is free?</p>
<p>4. Refactor! Pro ships a few disabled shortcuts for refactorings, namely F2 for Rename. You can enable this or set up a shortcut for any refactoring you want using the IDE\Shortcuts options page. However I think you&#8217;ll find it much easier to remember one shortcut as opposed to 30.</p>
<p>And finally, I don&#8217;t understand this:</p>
<p>&#8220;R# allows me to specify exactly what to include when doing ExtractXXX refactorings. CodeRush doesn’t. &#8221;</p>
<p>I don&#8217;t think you&#8217;re talking about what code to include, because Refactor! Pro certainly allows you to do this. And based on what I&#8217;ve seen, CodeRush&#8217;s extract method is as intelligent and capable as ReSharper&#8217;s if not more so, so the discrepancy you&#8217;re mention doesn&#8217;t appear to make sense. If you want to reach me directly to elaborate, it&#8217;s markm at the devexpress domain.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rory Becker</title>
		<link>http://www.tewari.info/2009/02/21/resharper-vs-coderush-refactor-pro/comment-page-1/#comment-30</link>
		<dc:creator>Rory Becker</dc:creator>
		<pubDate>Sun, 22 Feb 2009 16:31:05 +0000</pubDate>
		<guid isPermaLink="false">http://www.tewari.info/2009/02/21/resharper-vs-coderush-refactor-pro/#comment-30</guid>
		<description>Which version of Coderush/RefactorPro were you using? (Latest is 3.2.3)

RefactorPro doesn&#039;t have different keys for each refactoring... but it does have only a single key for al refactorings using context sensitivity to determine which might apply to a given situation. Thus all refactorings are available form a single keystroke.

I have not used &quot;Create From usage&quot; but from your description it sounds like &quot;Declare method&quot;

templates in Coderush expand based on particular combinations of characters followed by the primary activation key(defaults to space). What combinations are getting in your way... I&#039;ll bet many are problems with variable naming like &#039;dr&#039; and &#039;ds&#039;. coderush will effectively penalise you for choosing poor variable names as it reuses those combinations to imply the expansion of typically much more useful code.

You CAN of course disable any Template that you find gets in your way. In fact If you navigate to DevExpress\Options... Editor\Templates... you will find that coderush has located and Highlighted the last template you used. sO it will be a simple matter to disable the right one :)

But you don&#039;t have to go that far... you could simply change the associated expansion key to the alternate (Defaults to Alt-Space)</description>
		<content:encoded><![CDATA[<p>Which version of Coderush/RefactorPro were you using? (Latest is 3.2.3)</p>
<p>RefactorPro doesn&#8217;t have different keys for each refactoring&#8230; but it does have only a single key for al refactorings using context sensitivity to determine which might apply to a given situation. Thus all refactorings are available form a single keystroke.</p>
<p>I have not used &#8220;Create From usage&#8221; but from your description it sounds like &#8220;Declare method&#8221;</p>
<p>templates in Coderush expand based on particular combinations of characters followed by the primary activation key(defaults to space). What combinations are getting in your way&#8230; I&#8217;ll bet many are problems with variable naming like &#8216;dr&#8217; and &#8216;ds&#8217;. coderush will effectively penalise you for choosing poor variable names as it reuses those combinations to imply the expansion of typically much more useful code.</p>
<p>You CAN of course disable any Template that you find gets in your way. In fact If you navigate to DevExpress\Options&#8230; Editor\Templates&#8230; you will find that coderush has located and Highlighted the last template you used. sO it will be a simple matter to disable the right one <img src='http://www.tewari.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>But you don&#8217;t have to go that far&#8230; you could simply change the associated expansion key to the alternate (Defaults to Alt-Space)</p>
]]></content:encoded>
	</item>
</channel>
</rss>
