Friday, November 7, 2014

Resharper on the fly code analysis from Jetbrains

What is Resharper?

ReSharper is a popular developer productivity extension for Microsoft Visual Studio. It automates most of what can be automated in your coding routines. It finds compiler errors, runtime errors, redundancies, code smells, and possible improvements right as you type, suggesting intelligent corrections for them. ReSharper helps explore code by visualizing the structure of files, type and style hierarchies, call and value chains, project dependencies. It allows instantly traversing your entire solution and jumping right to the exact file and line that we are looking for, decompiling library code if necessary. Dozens of solution-wide refactoring’s are available to help safely change code base. Code formatting and cleanup features allow to get rid of unused code and help your entire team to ensure compliance to coding standards.

Why Resharper?

With unparalleled support for C#, VB.NET, XAML, JavaScript, XML, HTML, CSS, ASP.NET, ASP.NET MVC, NAnt and MSBuild scripts including comprehensive cross-language functionality, ReSharper will help any Visual Studio user write better code, easily examine and refactor existing code bases.We can spend less time on routine, repetitive manual work and instead focus on the task at hand. A robust set of features for automatic error-checking and code correction cuts development time and increases your efficiency. We'll find that ReSharper quickly pays back its cost in increased developer productivity and improved code quality. With ReSharper, .NET developers can truly experience what we mean when we say "Develop with pleasure!"

Resharper Advantages

  1. No need to In-depth Analysis of C# Code.
  2. Advanced Coding Assistance.
  3. Numerous Code Refactoring’s.
  4. Navigation and Search.
  5. Code Cleanup.
  6. Cross-Language Functionality.
  7. ASP.NET page intelligence Support.
  8. XML Support.
  9. XAML Support.
  10. Integrated Unit Testing.
  11. NAnt and MS Build Scripts Editing.
  12. Find unused members of a class like Methods, Properties and Variables.
  13. Suggestions like converting a LINQ expression into a Lambda expression.
  14. While using String.Format method, Resharper can validate that the placeholders match the supplied values.
  15. While using logical constructs like If Else it can suggest better options.
  16. When using multiple if statements it can refactor into a Switch case loop.
  17. With methods which return values, and if we are using If Else construct to return two different values based on certain conditions then Resharper can suggest changes to redundant else conditions.
  18. Based on the usage of methods, Reshaper can suggest changing the methods to static methods or even the variables to read-only variable.

Comparison among Resharper, FxCop and Stylecop

S. No.
Feature
Resharper
FxCop
StyleCop
1
Analyzes managed code assemblies
No
Yes
No
2
Localization
Yes
Yes
Yes
3
Detecting performance issues
Yes
Yes
Yes
4
Security improvements
Yes
No
No
5
Design rules set
Yes
Yes
Yes
4
Design Guidelines for Class Library
Yes
Yes
Yes
5
Execute on
Windows and command line both
Windows and command line both
Windows and command line both
6
Work with
C#/VB.Net/Linq/Asp.net/ EJB/ JSP/ JSF/CSS/JavaScript
Complied DLL
Only C# File
7
Works With Assemblies
No
Yes
No
8
Handel Exception
Yes
Yes
No
9
Unit Testing
Yes
No
No
10
Checks Code on fly
Yes
No
No
11
Create Class File
Yes
No
No
12
Licensee
Required
Free
Free
14
Code Analysis format
XML
XML
XML
15
Locating the “Dead” Code
Yes
No
No
16
Analyzing Code Dependencies
Yes
No
No
17
Suppressing inspections for the code
Yes
No
No
18
Value Tracking

Yes
No
No
19
Call Tracking

 

Yes
No
No
20
Navigating Between Highlighted Code

 

Yes
No
No
21
Quick-Fixes errors

 

Yes
No
No
22
Code Refactoring
Yes
No
No
23
MVC Support
Yes
No
No
24
Dynamic Language support
Yes
No
No
25
Code Cleanup
Yes
No
No
26
Cross-language functionality
Yes
No
No

FxCop:

FxCop is an application that analyzes managed code assemblies (code that targets the .NET Framework common language runtime) and reports information about the assemblies, such as possible design, localization, performance, and security improvements. Many of the issues concern violations of the programming and design rules set forth in the Design Guidelines for Class Library Developers, which are the Microsoft guidelines for writing robust and easily maintainable code by using the .NET Framework.
FxCop is very similar to Visual Studio Code Analysis. FxCop can be run as either a Windows application or at the command line.

StyleCop:
StyleCop is similar to FxCop, but it provides a different function and is, in fact, complementary to either FxCop or Code Analysis. (Note that it only works on C# source files.) It is mostly concerned with coding style and formatting. As such, it is run against source files, not assemblies like the other two analysis tools.

Conclusion:

ReSharper provides continuous code quality analysis in C#, VB.NET, XAML, XML, ASP.NET, ASP.NET MVC, JavaScript, HTML, and CSS, detecting errors and problems before you even compile. 
I’ve been using Resharper since last 3 years in .NET/C#. It’s a tool with a lot of features which aids you in the average day development and after comparing all others code analysis tool recommended to use Resharper,since it gives you on the fly code analysis and instant code refactoring.