Any developer can benefit from being faster and writing more code with less keystrokes. And, you can get up and running on CodeRush™ and Refactor!™ Pro in a matter of minutes and be immediately productive. I did, with my latest project. And, it is my experienced view that even if you utilize just a portion of the features, it will save you enough time to be well worth the investment.„
Erik Mlincek, System Architect
Architect's Challenge: Limited Time To Code
I am a system architect for a Fortune 500 company. A typical day involves defining system context, system interaction, data architecture and application architecture for various solutions, with an enterprise focus. In a large organization, with many teams, this can mean a lot of time spent communicating, whether in meetings or via diagrams and documentation. Because of this, I seldom get to code as much as I'd like!
However, I do like to keep my development skills sharp by coding up proofs-of-concept for work or experimenting with fun and inspiring coding endeavors.
Solution: DevExpress CodeRush and Refactor! Pro
Recently, while starting a new evening programming project, I took some time to research what other professional developers are using in addition to the core Microsoft products and tools. It was at this time I came across CodeRush™ and Refactor!™ Pro, from DevExpress. What a wonderful discovery! I quickly downloaded and installed the fully-functional trial version and was immediately productive with it. I was amazed at what it could do.
Results: Time-Saving Features == More Time To Code
First, let me tell you what it means for me as an architect and professional developer. As mentioned, my coding time is at a premium. So, when I do get a chance to sit down and work on a project, I want to move fast. Really fast. CodeRush™ and Refactor!™ Pro allow me to do just that. Specifically, the code expansion templates included with CodeRush™ and Refactor!™ Pro are awesome. You get many more than what is available with core Visual Studio and I was impressed by the quality of the templates. While I could, I wouldn't even think about cooking up my own code snippets using Visual Studio. To do so and match what I get with CodeRush™ and Refactor!™ Pro would be a waste of [a long period of] time!
Next, let me tell you about the CodeRush™ tool window. This window really helps me in that it serves not only as a reminder about what CodeRush™ code expansions are available to me, but also it provides a constant reminder as to the language constructs and semantics available. This helps me by allowing me to focus on the task at hand and not on various syntax forms and options. I firmly believe this helps the overall quality of development through the ability to focus on low level design decisions.
Refactor!™ Pro makes the perfect cousin to CodeRush™. It is a tool available from Devexpress that works in conjunction with CodeRush™, and provides various refactorings, most of which are not available in Visual Studio. So, you can imagine that as you're cranking out code at a greater speed, you may eventually decide to reorganize the code base. I know I do. As most professional developers are, I am a stickler for quality and maintainability. I want my code to be clean and self-documenting. And if it can be done more efficiently (and it makes sense to invest the time), I want to do it.
This is where Refactor!™ Pro shines. When I decide I need to make a change over something I've written, I want to do it fast and effortlessly. I might make such refactorings as renaming methods or types, or changing the structure of a method, including literal or expression references (and factoring them out to assignments), or even changing a method's signature. So, even if I craft or cobble some code that isn't what I want, and I decide to reorganize the code base later, Refactor!™ Pro with its various refactorings help me do so with ease. The renaming (which includes all references) functionality has to be one of my favorites. All of this is done with visual cues and options that make the experience fast and near-seamless.
I also want to mention CodeRush™ and Refactor!™ Pro's extensibility. As it turns out, because CodeRush™ and Refactor!™ Pro are respected and used by many professional developers, there are many plug-in's available. While I haven't had time to write one of my own yet, be sure to search the web for DXCore plug-in's (DXCore is the underlying engine behind CodeRush™ and Refactor!™ Pro), once you get a hold of your own copy CodeRush™ and Refactor!™ Pro. My favorite to date is CRClassCleaner available on codeplex.com.
Besides extensibility, I also want to tell you how amazed I am at the level of configurability in CodeRush™ and Refactor!™ Pro. Every conceivable option seems to be available to be configured / optimized at your whim. In particular, it was helpful to me to review the key assignments available in the CodeRush™ Options dialog, shown here:
In this dialog you can see where I've installed the CRClassCleaner plug-in and configured the keys that I wish to use with it. One of the best things you can do after installing is to browse the various options available in CodeRush™ and Refactor!™ Pro. Make sure to get to know your Refactor!™ Pro key (default: Ctrl+~)
One note, at first glance CodeRush™ can seem like a tool packed with tons of features. It certainly is. One might question whether you need or will use all of these features? Do you need CodeRush™ and Refactor!™ Pro? You do. Any developer can benefit from being faster and writing more code with less keystrokes. And, you can get up and running on CodeRush™ and Refactor!™ Pro in a matter of minutes and be immediately productive. I did, with my latest project. And, it is my experienced view that even if you utilize just a portion of the features, it will save you enough time to be well worth the investment.
Conclusion: Essential Development Tool
In closing, I am hooked on CodeRush™ and Refactor!™ Pro. I can't imagine coding without it, given the time I've already saved. In addition to making me faster and more productive, it allows me time to focus on the development challenge and design at hand, quite a good thing.
About the Author
Erik Mlincek is system architect at a Fortune 500 company by day and professional developer at night. Check out his blog and profile at http://www.mlincek.com.