Rider 2017.2 EAP brings .NET Core 2.0, MSTest, and more

Posted on by Maarten Balliauw

Rider 2017.2 Early Access Program

We’ve just opened the Rider 2017.2 Early Access Program (EAP) for you to download.

It comes with full support for .NET Core 2.0, adds MSTest, various NuGet improvements, a new debugger tool window for visualizing Parallel Stacks and marking of instances, new refactorings and more. And with ReSharper 2017.2 now released, we’ve updated the ReSharper version powering Rider, too. Which brings improved support for C# 7.0, initial support for C# 7.1, new code inspections, navigation improvements, and so on. Let’s look at a few highlights!

.NET Core 2.0 support

This first Rider 2017.2 EAP build adds support for .NET Core 2.0. All of the code inspections, navigation actions, quick-fixes and refactorings are now available for developing .NET Core 2.0 projects. The new ASP.NET Core Razor Pages projects are supported as well.
.NET Core 2.0 support in Rider

Rider can manage NuGet packages for .NET Core 2.0 projects, supports unit testing with xUnit, NUnit or MSTest, and supports running and debugging your .NET Core 2.0 projects.

Have a .NET Core 1.x project that no longer works after installing .NET Core 2.0 on your machine? No worries: Rider respects the .NET Core SDK version specified in a solution’s global.json file and uses the correct .NET Core version for your application. There’s even a .NET Core SDK selector plugin available.

Unit testing and MSTest

Rider’s unit test runner already supported xUnit and NUnit. With Rider 2017.2, we are bringing MSTest to the table! Running and debugging MSTest now works for the full .NET Framework (Windows-only for now) as well as .NET Core (on Windows, macOS and Linux).
Run xUnit, NUnit and MSTest unit tests in Rider

MSTest V2 will work out of the box, for MSTest V1 some additional setup is needed: Visual Studio will have to be installed (it’s a dependency of the framework…) and the path to the IDE will have to configured in the settings (Ctrl+Alt+S) under Build, Execution, Deployment | Unit Testing | MSTest.
Configure path to Visual Studio to enable MSTest V1 support

(if you want to copy the path for Visual Studio 2017 Community: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE)

NUnit tests are now supported for full .NET Framework, .NET Core 2.0, and .NET Core 1.1. We don’t have a project template for .NET Core NUnit projects at the moment (we use dotnet new under the hood as the source for templates), so you will have to create a .NET Core Console Application and install these three packages to get started: NUnit, NUnit3TestAdapter and Microsoft.NET.Test.Sdk.

The unit test providers now have their own settings pages where framework-specific settings can be tweaked. In addition, it’s possible to disable frameworks that are not in use or you don’t want to be visible in the Unit Test Explorer.
Unit test providers can be configured separately in Rider

We’ve also made various performance improvements for solutions with a large number of tests, as well as tests that produce a lot of output (including word wrap). A few minor changes went in the UI as well.

NuGet updates

A number of updates went into Rider’s NuGet client. We’re now using NuGet 4.3 under the hood, which brings full support for SemVer2 and .NET Core 2.0. Rider adds support for wildcard versions in package references, too.

When referencing packages that are not targeting .NET Core 2.0 (but are known to work with it), the AssetTargetFallback property can be used to define “fallback” target frameworks for our project’s dependencies. By default, .NET Core 2.0 projects will have this property set to net461 – meaning that any NuGet package that is compatible with .NET Framework 4.6.1 or higher can be used without additional configuration. Rider now also includes (initial) support for this.

Want to install a CLI tools package? No more need to manually edit the .csproj file and add a DotNetCliToolReference. We can now install any tools package right from within the NuGet client, for example the Entity Framework Core’s database migration commands from Microsoft.EntityFrameworkCore.Tools.DotNet.
Install .NET Core tools package

We made some UI changes as well, for example the ability to switch the position of the package details pane (as we can see in the above screenshot). And when possible, package icons will be rendered in high DPI making everything look more crisp.

Debugger updates

As with almost everything in this first Rider 2017.2 EAP build: the debugger now supports .NET Core 2.0. Next to that, we added a new tool window for visualizing Parallel Stacks, made it easier to add watches and added the ability to mark a specific object in the debugger.

The Debug tool window now has a new tab available: Parallel Stacks. When debugging multithreaded applications, it lets us visualize the various threads that are active while debugging, as well as their call stack.
Visualize parallel stacks while debugging

Similar threads are grouped together, but we can use the toolbar buttons to re-order the diagram if needed. We can hover over a thread to see their child threads. From the toolbar, we can jump to the active frame (or Ctrl+Space in the Visual Studio keymap). Double-clicking an entry in the call stack will jump to source. And when stepping through code, the diagram will be updated depending on threads that are being started/joined:
Parallel Stacks debugging in action

There are more updates to the debugger! For nested items (e.g. properties of a property of an object, or elements in a collection), we can now easily add a watch to inspect a specific variable or expression that interests us. In the below example, Rider will add a watch for results[1].Author.
Add nested object to watches

When debugging applications that have lots of variables, we may want to “mark” those that interest us. This can now be done using the context menu (or Ctrl+K, K in the Visual Studio keymap). We can even select the color we want to mark our variable with! Marking variables makes it really easy to discover where the variable is used, for example in fields of other objects.
Mark an object in the debugger

Do check our series on debugging to learn more about debugging in Rider!

Refactoring

A couple of new refactorings were introduced in Rider 2017.2 EAP. One of them is Transform Parameters. It lets us create a new class or struct and converts parameters of the selected method into encapsulated fields of the newly created type. Let’s use Refactor This (Ctrl+Shift+R in Visual Studio keymap) to invoke the refactoring:
Transform parameters refactoring

After applying the refactoring, usages of parameters are converted into usages of properties of the type being created. Note that this refactoring also allows getting rid of out parameters by introducing a tuple object return type.

Another refactoring that was added is Invert Boolean. This refactoring lets us automatically invert a boolean member and transform true to false and rewrite all usages to invert the boolean logic.
Invert Boolean refactoring

C# 7.0, 7.1, and more from latest ReSharper

Rider 2017.2 comes with ReSharper 2017.2 as its engine for providing .NET support. This means a number of features announced with ReSharper 2017.2 are now available in Rider. Examples include improved support for C# 7.0 (including pattern matching and out variables), and initial support for C#7.1. Rider now supports the default literal, tuple projection initializers, async main and pattern matching with generics. Simply reference the latest compiler package and make sure to set the language level in your project file.
C# 7.1 support in Rider

Rider also adds some new code inspections around IEnumerable, and will check XML documentation inheritance to make sure it is valid. This ensures documentation in the IDE as well as generated API documentation is correct.

Other improvements

In terms of Unity support, We have updated the debugger and added support for debugging different Unity processes. This change allows us to debug standalone games by remote debugging, such as running on the Mac or Windows desktop. The IDE and debugger now also support working with modularized UnityEngine dll’s.

The navigation bar received an update as well. In Rider 2017.1, it displayed contextual actions based on the file system. This allowed, for example, invoking a simple rename refactoring. Rider 2017.2 makes the navigation bar smarter, by relying on the same project model as the Solution Explorer. The Refactor This… context menu will have more information available, and also provide options like Adjust Namespaces and Move Types Into Matching Files.

Download Rider 2017.2 EAP and give it a try! We would love to hear your feedback on new and improved functionality.

Comments below can no longer be edited.

38 Responses to Rider 2017.2 EAP brings .NET Core 2.0, MSTest, and more

  1. Jer0enH says:

    September 3, 2012

    No discounts for upgrading users?

  2. Jura Gorohovsky says:

    September 3, 2012

    @Jer0enH Nope, sorry, only new licenses.

  3. tomashiba says:

    September 4, 2012

    I was happy using JustCode, then I got Plurasight training, they use R# in EVERY video (great product placement), I resisted getting R# for 3 months but on 10th August I gave in I got R# licence… 24 days later it’s 1/2 price!!!! Just my luck!
    Great offer get it NOW while it lasts!

  4. Michel says:

    September 4, 2012

    Shame, for my upgrade to R# 7 is pay almost as much as a new licence.

    Same as mortgages in the netherlands: new clients get low intrest rate, existing clients pay ful price.

  5. Will says:

    September 4, 2012

    What’s the difference between the Full & C# versions? Is it just “no VB support?” I couldn’t find this info on your site.

    Thanks.

  6. Jura Gorohovsky says:

    September 4, 2012

    @Will
    Right, C# edition doesn’t provide any support for VB.NET code. Other than that, there are no differences between C# and Full.
    On the other hand, if you take VB.NET Edition, it doesn’t support C# code _and_ it also doesn’t provide decompiling functionality.
    Here’s a table showing differences between editions. It’s referenced from “buy” and “download” sections on the web site.

  7. Alex says:

    September 4, 2012

    Please consider upgrading users 🙁

    I know we’re hooked already, but to non-web developers 6 to 7 difference doesn’t bring the same value as new license would. Yet we gotta shell out almost the same price.

  8. FicklePanther says:

    September 11, 2012

    If you install this remotely on a production server how does it affect performance?

  9. Max says:

    September 2, 2013

    Same this year? 🙂

  10. Jura Gorohovsky says:

    September 3, 2013

    @Max Sorry, nothing planned

  11. Pesoona says:

    September 3, 2014

    I am trying to buy personal license of Resharper full edition right now and at the check-out, it is showing me $199 instead of $149.

    Is there any code I need to put on to get this discounted offer? Please help me.

  12. Joseph Woodward says:

    September 4, 2017

    Great to see .NET Core 2.0 support is there, lots of cool new features making it well worth the wait. Keep up the great work!

  13. AAA says:

    September 4, 2017

    Pretty awesome! Especially the MSTest support was must have and I can finally start using Rider … Good job!jh

  14. Mark says:

    September 5, 2017

    Will 2017.2 include support for Entity Framework 6.0 migrations, i.e. the package manager console? It’s probably the one thing stopping me from using Rider instead of VS.

  15. George Cook says:

    September 5, 2017

    looks good. will this fix problems with the latest 2017.1.1 I just got? It’s totally hosed for me. No refactorings work. Don’t know whether to go to previous version or try the 2017.2 eap

    • Maarten Balliauw says:

      September 5, 2017

      Can you try renaming the .Rider2017.1 folder under your profile (note: this holds all settings etc.) to see if a clean start of Rider fixes things for you?

  16. The Morning Brew - Chris Alcock » The Morning Brew #2419 says:

    September 5, 2017

    […] Rider 2017.2 EAP brings .NET Core 2.0, MSTest, and more – Maarten Balliauw […]

  17. Per Arneng says:

    September 5, 2017

    Thanks for this. What is new in F# in this release?

    • Maarten Balliauw says:

      September 5, 2017

      In this specific build, a couple of bugfixes in C# interop and navigation. More to come.

      • Per Arneng says:

        September 5, 2017

        Thanks Maarten. Looking forward to it 🙂

  18. Rider 2017.2 EAP ab sofort verfügbar says:

    September 5, 2017

    […] Details zu den Neuerungen lassen sich in der offiziellen Ankündigung nachlesen. Rider 2017.2 EAP steht im Early Access Program von Rider zum Download zur […]

  19. Dev says:

    September 5, 2017

    Is it possible to pay less for the Rider licence if I don’t need Unity3D support?

    • Jura Gorohovsky says:

      September 5, 2017

      Sorry, this isn’t possible. Make sure you’re looking at individual pricing, and note that there’s a monthly payment option available.

  20. Jacques Jamieson says:

    September 5, 2017

    Can i develop C# with this on linux based OS?

    • Maarten Balliauw says:

      September 5, 2017

      Absolutely! Rider supports Windows, Linux and macOS. Checkout http://www.jetbrains.com/rider for more info and give it a try!

      • Jacques Jamieson says:

        September 5, 2017

        But what about all the run time environment stuff? From my understanding C# only really runs on windows.

        • Maarten Balliauw says:

          September 5, 2017

          To run on Linux, Mono will be required (or for .NET Core, the .NET Core SDK’s and runtimes).

          • Jacques Jamieson says:

            September 5, 2017

            Cheers! Im looking into it now, mostly interested in using xamarin development tools to develop for both iOS and android.

          • Jacques Jamieson says:

            September 5, 2017

            I cant see any of the xamarin stuff in rider when creating new project?

            • Jura Gorohovsky says:

              September 5, 2017

              Xamarin.Android project templates are not currently exposed on Linux because there’s a problem detecting the path to Xamarin.Android installation. Please see RIDER-5747 for more details if you’re interested.

  21. Paul Reid says:

    September 5, 2017

    Awesome! However I notice that this EAP is still based on the IntelliJ 2017.1 platform, will the final release be built on the 2017.2 release?

    • Maarten Balliauw says:

      September 5, 2017

      Most probably for one of the next builds.

  22. Dew Drop - September 5, 2017 (#2554) - Morning Dew says:

    September 5, 2017

    […] Rider 2017.2 EAP brings .NET Core 2.0, MSTest, and more (Maarten Balliauw) […]

  23. John Doe says:

    September 6, 2017

    Is there a way I can right-click then publish a web project? Don’t see this documented anywhere.

  24. Valentin says:

    October 22, 2017

    Hello,

    How can we add CLI Tools without editing the csproj file ? When i add the EF Core Tools, it’s only adding a package reference.

    Thank you !

    • Maarten Balliauw says:

      October 22, 2017

      Rider 2017.2 should have support for this from the NuGet tool window. Otherwise, editing .csproj is the way to go.

Subscribe

Subscribe to .NET Tools updates