Accelerate Your Coding Experience
By Brian Noyes
Let's face it, Visual Studio is probably the most productive integrated development environment in the world. From the code the designers write for you, to color coding, IntelliSense, automatic statement completion, and other features, we're spoiled as developers. I realize that all too well every time I find myself needing to write some code in an impaired environment that doesn't have Visual Studio - or worse yet, working on a project that isn't .NET. However, there is always room for improvement, and CodeRush for Visual Studio.NET from Developer Express steps in and adds to the Visual Studio environment a variety of productivity benefits to which you will quickly become addicted.
CodeRush boasts a long list of features that each add a little extra power to the coding windows in the IDE. Probably the most powerful features of CodeRush focus around its ability to help you write code faster. For example, the Code Template allows you to insert common blocks of code into your editor based on a short sequence of shortcut keystrokes. The product ships with many templates for common coding tasks, such as injecting properties, try..finally blocks, and many other constructs. You can also easily define your own templates.
Trying to show the power of CodeRush with a screen grab does not begin to do this dynamic product justice - but we'll try. Figure 1 shows a property block that was injected simply by typing the character p and hitting the default action keystroke (I have mine mapped to [Alt][SpaceBar]). You can see a couple of things in Figure 1 that hint at some of what CodeRush can do.
Figure 1: Code Template generation with graphical hints and markers.
First, when you activate a code template, the focus immediately shifts to the next thing you're likely to want to modify about the generated code. In the case of the property definition just created, that is the name of the property. The template also contains something called markers (the little blue triangles), which you can use to jump from code element to code element to fill in the blanks of the template simply by hitting [Esc]. The markers are kept on a stack; jumping to one with the [Esc] key results in the cursor jumping to the marker, and a brief graphical arrow (the Collect Marker arrow shown in Figure 1) appears and disappears (with a nice fade effect) to draw your attention to where it needs to be. These are called Action Hints, which you can, of course, toggle on or off.
You can also see in Figure 1 that CodeRush adds graphical adornments to your code to help visualize your code, including little symbols that indicate the visibility of declarations, where return from a statement will occur, and so on. Templates also contain linked identifiers that allow you to change an identifier in one place, and have it updated everywhere else it's used in the template, as you type.
Beyond templates, you get a lot of assistance from CodeRush in the form of Intellassist, which you can think of as IntelliSense on steroids. Intellassist provides additional hints that pop in as you type. These hints help you select code elements you need in the context of what you are working on; you can customize these features, as well. Another feature is Smart Cut and Paste, which allows you to select entire blocks of code for cut/copy/paste operations. This saves you from tediously trying to get the selection just right so you don't end up with weird formatting you must fix after pasting a block of code from one place to another.
It's doubtful that the features that ship with CodeRush won't be enough for you. But if you're a power geek who must always go beyond the built-in capabilities of a tool, you won't be disappointed. CodeRush is built to be extensible, and allows you to add functionality through its extensibility model. There is already a rapidly growing community of users who are contributing plug-ins to CodeRush through the Developer Express Web site.
CodeRush is a little difficult to describe, because it's so dynamic and so much can be accomplished using the interactive code editor. But trust me, it's a fantastic productivity enhancer to which every Visual Studio.NET coder will quickly grow addicted. Here's the bottom line: If you download it and try it, you'll want it.