ReSharper Interactive Tutorials

Probably, there is no person in the world who knows ReSharper in all its diversity. Even proficient ReSharper users normally only use a limited set of their favorite ReSharper actions in their everyday life. Though this set can be wide enough, there’s always a chance you miss some important ReSharper tricks that can make your development workflow easier. But where and how should you get to know and try them?

We at JetBrains are continuously working on all possible ways of communication, such as blog posts, learning videos and online help. For example, if you want an easy way to try a feature instead of only reading about it, we’ve created two repositories available on GitHub:

With both solutions, the idea is simple: you open a solution and follow the instructions that are given in comments to the code.

Today, we announce a new way to get started (or catch up) with ReSharper: a plugin with a set of interactive ReSharper tutorials. The idea that it is based upon is similar to our tutorial solutions available on GitHub but with one very significant difference: you are guided through a tutorial solution, and the plugin verifies every step you take.

How tutorials work

  • The tutorials are installed into Visual Studio as a ReSharper plugin. Go to ReSharper | Extension Manager, search for “Tutorials”, and install the plugin.
    Install ReSharper Tutorials plugin
  • After you install the plugin, the ReSharper menu will get an additional Tutorials… item.
    ReSharper Tutorials menu
  • Once you run the tutorials, the ReSharper Tutorials window will appear suggesting you to select a tutorial.
    Select a tutorial
  • As soon as you launch a tutorial, a separate tutorial solution is loaded. You’ll be guided through a number of steps, each illustrating a particular feature. The plugin automatically checks whether you have performed the actions described in a step (some steps only show info, so you’ll only need to click Next Step to proceed).
    Tutorials in action

Currently, there are two tutorials available:

  • ReSharper Essentials will get you started with the most important shortcuts and commands.
  • What’s New in ReSharper 2016.3 will guide you through ReSharper 2016.3 features for C#.

This is a preview version and work is still in progress. There’s a lot of more to do: make the UI fancier, add more advanced tutorials, and other enhancements. Nevertheless, it’s already a fully functional product and probably the most convenient way to learn ReSharper.

You’re welcome to give a new plugin a try, learn something new, and provide your feedback.

This entry was posted in How-To's and tagged , , . Bookmark the permalink.

17 Responses to ReSharper Interactive Tutorials

  1. ghostek says:

    I don’t see this extension :(

  2. Steve Dudenhoeffer says:

    I’m trying to install this plug-in and I get this error message:
    12:46:29.741 |E| ExtensionManagerViewModelProvider | The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.

    — EXCEPTION #1/2 [PathTooLongException]
    Message = “The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.”
    ExceptionPath = Root.InnerException
    ClassName = System.IO.PathTooLongException
    HResult = COR_E_PATHTOOLONG=800700CE
    Source = mscorlib
    StackTraceString = “
    at System.IO.PathHelper.GetFullPathName()
    at System.IO.Path.LegacyNormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
    at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
    at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength)
    at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
    at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
    at NuGet.PhysicalPackageFile.GetStream()
    at NuGet.FileSystemExtensions.AddFileWithCheck(IFileSystem fileSystem, String path, Func1 streamFactory)
    at NuGet.FileSystemExtensions.AddFiles(IFileSystem fileSystem, IEnumerable
    1 files, String rootDir, Boolean preserveFilePath)
    at JetBrains.Util.Storage.Packages.JetPathFileSystem.AddFiles(IEnumerable1 files, String rootDir)
    at NuGet.PackageManager.ExpandFiles(IPackage package)
    at NuGet.PackageManager.OnExpandFiles(PackageOperationEventArgs e)
    at NuGet.PackageManager.ExecuteInstall(IPackage package)
    at NuGet.PackageManager.Execute(PackageOperation operation)
    at NuGet.PackageManager.Execute(IPackage package, IPackageOperationResolver resolver)
    at NuGet.PackageManager.InstallPackage(IPackage package, FrameworkName targetFramework, Boolean ignoreDependencies, Boolean allowPrereleaseVersions, Boolean ignoreWalkInfo)
    at NuGet.PackageManager.InstallPackage(IPackage package, Boolean ignoreDependencies, Boolean allowPrereleaseVersions)
    at JetBrains.Application.SinceClr4.Extensions.ExtensionManagerViewModelProvider.c__DisplayClass33.c__DisplayClass3f.b__29()
    at JetBrains.Util.ILoggerEx.Catch(ILogger thіs, Action F, ExceptionOrigin origin, LoggingLevel loggingLevel)

    --- Outer ---

    --- EXCEPTION #2/2 [LoggerException]
    Message = “The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.”
    ExceptionPath = Root
    ClassName = JetBrains.Util.LoggerException
    Data.ManagedThreadName =
    InnerException = “Exception #1 at Root.InnerException”
    HResult = COR_E_APPLICATION=80131600
    StackTraceString = “
    at JetBrains.Util.ILoggerEx.Catch(ILogger thіs, Action F, ExceptionOrigin origin, LoggingLevel loggingLevel)
    at JetBrains.Application.SinceClr4.Extensions.ExtensionManagerViewModelProvider.c__DisplayClass33.c__DisplayClass3f.b__28()
    at JetBrains.UI.ExtensionManager.ViewModels.ExtensionActionViewModel.Do()
    at JetBrains.UI.ExtensionManager.ViewModels.ExtensionManagerViewModel.b__10(ProgressIndicator indicator, Property
    1 description)
    at JetBrains.UI.ExtensionManager.ViewModels.ProgressPage.c__DisplayClass6.b__3()
    at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
    at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
    at System.Threading.ThreadHelper.ThreadStart()

  3. Pingback: Dew Drop - December 23, 2016 (#2390) - Morning Dew

  4. hi-t3ch says:

    The tutorial-solution is really a great idea. I wish I’ve found it earlier. I like R# and I have the Ultimate version and I always wanted to know _everything_ about it but reading the documentation to just get the big-picture was too time-consuming.

  5. boris says:

    This is a great initiative. I hope it will get sufficient attention and funding to grow :)

  6. Diane Loux says:

    It would be nice if I could skip steps. I am stuck on Rearranging Code Elements because Ctrl+Shift+Alt+Right Arrow does not work for me.

    • Alexey Totin says:

      Hi Diane,
      thanks for the feedback!
      “Ctrl+Shift+Alt+Right Arrow does not work for me” – this shortcut might be hooked by Intel Graphics driver (screen rotation).

  7. Ben Walker says:

    Once I have started either Tutorial, when I next try to run it I get an overlay with ‘Loading…’ on it, but nothing actually happens.
    Visual Studio 2015 Enterprise.
    Version 14.0.25431.01 Update 3

    Resharper 2016.3.2

    • Alexey Totin says:

      Hi Ben,
      the plugin waits until the solution is fully loaded (until ReSharper finishes building the PSI model). Normally, this should take from 5 to 30 seconds depending on your PC. Try waiting a little bit longer. If this doesn’t help, try closing all solutions and clearing ReSharper caches (ReSharper | Options… | Environment | General | Clear caches).
      BTW, if you’ve already upgraded to 2017.1, you can try a new plugin version.
      https://resharper-plugins.jetbrains.com/packages/JetBrains.ReSharperTutorials/0.9.8

  8. Ryan says:

    Running the ReSharper Essentials tutorial in VS 2017, stuck on step 6 of 38, renaming a class. I’ve done the action it asked, renamed FindAction to Renamed, but it is not advancing to the next step and there’s no option to make the tutorial go to the next step.

Leave a Reply

Your email address will not be published. Required fields are marked *