Why Resharper is Awesome?

Posted: March 10, 2014 in Miscellaneous
Tags: , , ,

Recently I had an opportunity to demonstrate about a tool to my colleagues which is by far recognized as one of the most intelligent productivity tool for Microsoft Visual Studio IDE called ReSharper .

For those of you not familiar with ReSharper, It is a visual studio Add-in by Jet brains which greatly extends and enhances the features already present in visual studio. Jet brains happens to be the world’s leading vendor of smart developer tools.

As you all know that pair programming is an agile software development technique in which two programmers work together at one workstation. One is called the driver and the other one is called observer/pointer or navigator. Driver writes the code and Observer reviews each line of code as it is typed in. He will be observing and discussing the design and implementation details of the system. The two programmers switch roles frequently.

Another instance of pair programming involves both people writing code simultaneously – one person is writing the implemented functionality and the other is actively developing and writing test code at the unit and integration level, again discussing the design and implementation details of the system.

Regardless of the type of pair programming, it effectively serves as a continuous code review. You have two people’s eyes on the code, watching for errors before they escape into a later system/acceptance testing phase. You also have two people who understand a particular part of the system very well. Both catching defects early and spreading system knowledge around the team reduces the cost of building a system.

Pair programming is a painless way of spreading that knowledge

  • Easy to mentor junior programmers
  • People are more reluctant to interrupt a pair than they are to interrupt someone working alone.

However, Of course there are some challenges as well in pair programming, like Personality clashes or choosing the pairs to properly distribute the knowledge. There’s also consideration of exactly when to rotate pairs.

 Imagine somebody who knows the internals of MS.NET language compilers & .Net language run time very well and who also understand the Microsoft design guidelines sitting next to you, in fact sitting in your visual studio IDE and keeps bugging you with traffic lights until you manage to write a healthy and better code.

 Benefits for Developers
  1. Save time on compilation, locating & fixing errors
    • ReSharper instantly detects and highlights errors in your code, so you don’t even have to compile it first
    • ReSharper provides automatic corrections for most errors, helping to solve problems instantly
  1. Automate routine tasks
    • Quickly create methods, properties, variables or classes from their usages
    • Easily generate constructors, properties, delegating and equality members; implement and override members
    • Use smart templates to quickly insert frequently used code constructs
  1. Get useful hints right when you need them
    • IntelliSense, including completion and parameter information, is several times better with ReSharper
    • Filter suggestions based on the expected type of expression
    • Import required namespaces instantly, right as you type
    • Get quick, comprehensive information on any class or method in a pop-up window, with clickable links to external resources
  1. Navigate to any corner of your solution
    • With dozens of smart navigation and search features, your whole solution is always at your fingertips
    • Find usages, browse the type hierarchy, and much more
    • Reach any part of your code within seconds
  1. Handle multi-language solutions with ease
    • Re-factoring, navigation, search and coding assistance work across C#, VB.NET, XAML and ASP.NET
ReSharper Core Capabilities

Navigation and Search

-Allows you to quickly and efficiently move around within your solution

Code Cleanup

-Allow you to remove dead code or re-organizing the existing code

Refactoring

– Allow you to refactor the code above and beyond those provided by Visual studio

Coding Assistance

Micro code generation and templating capabilities which allow you to quickly generate new code

Code Generation/Coding Templates

Unit Testing

Creation, running and debugging of unit test cases

If you are planning to explore the tool, below are the list of some key commands that you dont want to miss:

Code Browsing
  1. NavigateTo : CTRL-SHIFT-G
  2. Go to Type : CTRL-N
  3. Go to File : CTRL-SHIFT-N
  4. Recent Files : CTRL-E
  5. Related Files : CTRL-ALT-SHIFT-G
  6. Next/Previous Member : ALT-Up/Down
  7. Go to File Member : CTRL-F12
  8. Go to Containing Declaration:CTRL-[
  9. Go to Derived : CTRL-ALT-B
  10. Go to Implementation : CTRL-ALT-SHIFT-B
  11. Go to Base : CTRL-U
  12. View Type Hierarchy : CTRL-ALT-H
  13. Go to Declaration : CTRL-B
  14. Go to Type of Symbol : CTRL-SHIFT-T
  15. Find Usages : ALT-F7
  16. Highlight Usages(Current file): CTRL-SHIFT-F7
  17. Next/Previous Usage : CTRL-ALT-Up/Down
  18. Set/Remove Book Mark : CTRL-SHIFT-[0-9]
  19. Go to Book Mark : CTRL-[0-9]
  20. View Book Marks : CTRL-‘
  21. Inspect this : CTRL-ALT-SHIFT-A
Code Clean-up
  1. QuickFix : ALT-Enter
  2. Next Highlight : F12
  3. Previous Highlight :SHIFT-F12
  4. Move Code up/down : CTRL-ALT-SHIFT-Up/Down
  5. View File Strucutre : CTRL-F11
  6. Code Cleanup : CTRL-ALT-F
  7. Silent Code Cleanup : CTRL-ALT-SHIFT-F
Code Refactoring
  1. Extract Super Class : CTRL-SHIFT-R
  2. Extract Interface : CTRL-SHIFT-R
  3. Interface/Abstract Class: CTRL-SHIFT-R
  4. Use Base Type Where Possible: CTRL-SHIFT-R
  5. Pull Member up : CTRL-SHIFT-R
  6. Push Member down : CTRL-SHIFT-R
  7. Copy Type : CTRL-SHIFT-R
  8. Constructor to Factory Method:CTRL-SHIFT-R
  9. Anonymous to Named Type:CTRL-SHIFT-R
  10. Move to Another File : F6
  11. Move to Folder : F6
  12. Move type to another namespace : F6
Code Generation
  1. Generate Code : ALT-Insert
  2. Generate from File Template: CTRL-ALT-Insert
  3. Insert Live Template : CTRL-J
  4. Create Live Template : ALT-R,T,R
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s