We’ve had some fantastic feedback during the private EAP, and Rider is now well on the way to release. While we’re not quite feature complete, and there are still a couple of rough edges, we know of many people, inside and outside of JetBrains, who are already using Rider for day-to-day development. We’d love you to try it for yourself and let us know what you think, good as well as bad – log an issue, leave us a comment or ping us on Twitter (@JetBrainsRider).
And here’s the Rider home page, the issue tracker and please read the survival guide for various known issues and workarounds. There is also a webinar on November 23rd which will demonstrate Rider in action.
But let’s back up for a moment.
Rider is a full featured, cross platform .NET IDE based on ReSharper and IntelliJ. The front end and user interface is built on the proven IntelliJ platform, just like WebStorm or IntelliJ IDEA, and can run on Windows, Linux and Mac. But the engine that drives all of your favourite JetBrains IDE features is ReSharper, running as an out of process language server.
This is a great mixture. Both IntelliJ and ReSharper provide industry leading IDE functionality, and running ReSharper out of process frees us from sharing resources and memory with Visual Studio.
So what’s in the Rider public EAP?
Rider is using ReSharper to provide language features, and our main goal has been to expose as much of this ReSharper functionality as we can for 1.0. And we’ve been building ReSharper for over 12 years, so that’s a lot.
Fortunately, the way Rider works means that a huge amount of functionality can be brought over very quickly. Rider already supports ReSharper’s rich navigation and find usages; automatic, smart and import completion; the vast majority of ReSharper’s over 2,200 inspections and over 1,000 context actions and quick fixes; as well as unit testing, solution wide analysis and more.
But of course, Rider is an IDE, and needs to implement full IDE functionality, including features that ReSharper doesn’t provide, so we also build and debug as well as handle project management – solutions, references, NuGet, and so on.
In fact, there are almost too many features to easily list, so instead, let’s take a look at a couple of different scenarios we’re targeting – .NET Framework, .NET Core, and Xamarin and Unity.
Rider will load standard .NET Framework or Mono projects. It understands Visual Studio .sln files, and will load any MSBuild based project (e.g. .csproj).
And because we now own the solution load process, you’ll find that it’s fast. Even better, if you edit a project file externally, Rider will quickly and automatically reload, almost without you noticing.
References are of course supported by right-clicking on the project in the Solution Explorer. Or you can use our new NuGet window to search, install and update your NuGet packages. Traditionally, this functionality is provided by Visual Studio, so it’s nice to be able to provide a typically JetBrains implementation – we cache results and update in the background, and we think you’ll be very pleased with the speed of it.
And of course Rider supports build, run and debug. Projects are built with MSBuild or XBuild if you’re running cross platform with Mono, while run and debug make use of a powerful feature of IntelliJ – Run/Debug Configurations (ReSharper has a similar feature).
Run configurations allow specifying as many different ways of launching your project as you need, and Rider offers a number of .NET specific templates for launching projects, running arbitrary executables, .NET Core and so on.
Furthermore, Rider supports debugging run configurations. This includes .NET Framework, Mono and .NET Core. Rider uses IntelliJ’s existing debugger UI, offering a familiar call stack view, as well as locals and watch variables. Rider also supports break on exception and setting the next instruction.
No IDE is complete without support for unit testing, and Rider supports running and debugging xUnit.net and NUnit tests, with a familiar user interface – icons displayed in the editor, run or debug from the Alt+Enter menu, and a tree view of running tests. Double click a test to navigate to the code, and of course, the stack traces are clickable, too.
And if you’re worried about switching to a new IDE, don’t be! Our getting started wizard will walk you through setting up Rider, including choosing keymaps that are familiar to Visual Studio and ReSharper users, and suggesting plugins to work better with your code.
.NET Core developer
Rider also supports .NET Core projects. It can open existing projects from the project.json file, or create new ones based on templates from the new project wizard.
And of course, this is all cross platform. If you want to target .NET Core on Mac, or Linux, you obviously want your tooling to be there, too. Rider will give you a full IDE on Windows, Mac and Linux.
When you open a .NET Core project, Rider will automatically restore all NuGet packages, and shows packages as a dependency tree, rather than a flat list. Once loaded, Rider provides the same rich IDE functionality as you get with a traditional .NET Framework project – code completion, navigation, refactorings, inspections and so on.
Adding a reference is as simple as editing the project.json file (with code completion, naturally) and saving; Rider will restore the packages automatically. You can swap between multiple target frameworks with a chooser in the status bar.
It also includes specific functionality for ASP.NET Core, such as Tag Helpers in .cshtml files, with code completion, find usages, and refactoring all supported.
And of course, Rider will build, run and debug your .NET Core projects, all cross platform. But please read the survival guide for known issues with adding references, debugging and unit testing.
And finally, Rider has inherited ReSharper’s ability to run and debug .NET Core unit tests. Well, mostly. This feature is not quite finished, and doesn’t work in all cases – for example, non-Windows projects that also target the .NET Framework. But it currently supports xUnit.net and NUnit, and will also support projects that target multiple frameworks. Again, please check out the survival guide.
Unity and Xamarin developers
While we’ve mostly been focused on exposing existing ReSharper functionality, and adding new, essential IDE level features such as debugging, we also want to make Rider a great IDE for developing Unity3D and Xamarin solutions.
We haven’t really got started on Xamarin support right now, although Rider already includes ReSharper’s existing Xamarin.Forms XAML editing features, with more planned.
But we’re a bit further along with Unity support. Firstly, the Unity editor can be made to open projects, C# files and error messages in Rider by adding the Unity3dRider plugin to your Unity project (this will hopefully be built into Unity in the future). See the readme in the repo for instructions on getting this set up. We’ll blog more about this very soon.
Then, once a project is open in Rider, you’ll find that there is specific Unity functionality, too. We’re bundling the ReSharper Unity plugin (yes, Rider supports plugins!), which adds a number of useful features, such as automatically setting the supported C# language level (no more C# 6 suggestions in your C# 4 code!) and inserting and auto completion of Unity message methods. See the plugin’s readme on GitHub for more details.
Furthermore, Rider will also debug your Unity project. The Run → Attach to local process menu item will show a list of available processes to debug, including available Unity instances.
We’ll write more about Unity support in a future blog post.
As if all this wasn’t enough, Rider inherits a number of very cool features from IntelliJ, too. Features such as the REST test client, rich version control support, and the often life saving local history.
Rider also includes DataGrip’s rich database tooling. This means you can open a .sql file and get smart code completion, on-the-fly analysis and quick-fixes across a huge range of databases – MySQL, PostgreSQL, SQL Server, Oracle, and loads more. You can run queries, examine results and even refactor your database.
And that’s not mentioning access to IntelliJ’s rich plugin ecosystem. While the plugin SDK is still under development, Rider already supports both IntelliJ and ReSharper plugins, so Rider can take advantage of existing IntelliJ plugins such as VIM editing mode. Check out the currently available plugins for Rider on our plugin repository site.
Check out Hadi’s Rider Tips and Tricks video from NDC Sydney for more examples of how the IntelliJ platform will help you using Rider.
Why should you use Rider?
Hopefully, you can see that we’ve made Rider a fully fledged IDE, utilising the years of experience and functionality we’ve built into IntelliJ and ReSharper. For a pre-1.0 product, it’s already got an enormous amount of functionality.
We’re aiming to build the best IDE experience for .NET development. We want Rider to be feature rich, and we want it to be fast. And by owning the entire IDE stack, we can deliver on this, and innovate in areas that we haven’t looked at before, such as significantly improving the experience of searching in NuGet.
But the simplest answer is to download it, and try it for yourself – see how well it works for your own solutions and projects.
And remember, Rider is built from the ReSharper codebase – Rider IS ReSharper. New features and fixes in one product will flow into the other. Above all, we’re offering you a choice – if Rider works well for you, cross platform or on Windows, then great! But if you prefer Visual Studio, then rest assured, ReSharper will always be there to help you.
Oh, and one last thing. You might have noticed that we started this journey with the codename “Project Rider”, and were planning on an official name later. Well, it’s now later, and honestly, we like the name Rider. So that’s what it’s going to be – welcome to JetBrains Rider.