CHAPTER 1
I still remember the days when I got my hands on my first copy of Visual Studio. Back then, it was sold together with a pair of books, one of which was a straight printout of MSDN documentation. The technology of choice was, of course, C++ together with Microsoft Foundation Classes (MFC). Feature-wise, Visual Studio back then was nothing more than a combination of a text editor with some syntax highlighting and IntelliSense (Microsoft’s term for what we typically call code completion), together with an integrated compiler and debugger.
Back then, Visual Studio ran perfectly fine on a machine with 16MB (that’s megabytes) of RAM. While it is not my intention to walk down the memory lane of Visual Studio releases, I am currently using Visual Studio 2017 on a laptop with 16 gigabytes of RAM, precisely 1,000 times more than we had back in the days of Visual Studio 1997. Ironically, Visual Studio today feels a lot more sluggish than it did 20 years ago.
How has it come to this? I would argue that this happened due to lack of competition. True, Visual Studio did have competitors of sorts in the .NET space (SharpDevelop and MonoDevelop), but they were always enthusiast-grade and, as with many open-source projects, did not receive enough attention to become viable alternatives. It also didn’t help that, at the time, Microsoft was the ultimate gatekeeper of all things related to both .NET and the C# programming language, not to mention the support for various Microsoft-specific technologies. To an extent, this is still the case: if you want to work with Microsoft-centric tech stack (such as SharePoint, Dynamics or BizTalk), you would still most likely use Visual Studio.
JetBrains Rider, the subject of this book, is the first competitor to Visual Studio that has a chance to displace the hegemony. And as such, it’s worth paying attention to, because the amount of value it brings over what Visual Studio offers—both in terms of coding features as well as the overall platform—is, in my opinion, sufficient for it to become the primary .NET IDE in the near future.
This book covers the core features of Rider, the .NET-centric IDE made by JetBrains. I focus on the IDE’s support for the C# language (I hope you will forgive me for omitting Visual Basic and F#—they are also supported, of course) as well as other languages (XAML, web languages, etc.) and technologies (such as WPF and ASP.NET). In actual fact, since Rider is itself a blend of two distinct technologies (the IntelliJ platform and ReSharper), we are going to discuss both the features offered by the platform (such as source control capabilities) as well as the core editing experiences supported by the editor (including code completion, navigation, and a wealth of other functionality).
To start with, let’s talk about JetBrains, a prominent producer of developer tools. JetBrains makes a lot of different products, but we need to talk about two key ones.
The first is called IntelliJ IDEA, and it is a Java (gasp!) integrated development environment (IDE). Yes, it’s a Java IDE, written in Java (the latest developments use Kotlin, a much more palatable language), but IDEA is built on a foundation called the IntelliJ Platform. It is on this platform that JetBrains builds all of its IDEs, supporting many of today’s programming languages. The IntelliJ platform is open source, so anyone who wants to build an IDE for a particular language can use it as a foundation to build upon. The IntelliJ platform is extensible and customizable—it has a great plug-in API, and there are many open-source plug-ins out on GitHub that one can learn from. Crucially, since the IntelliJ platform is JVM-based, it is, by definition, cross-platform.
But we are not here to discuss the JVM, are we? We are here to talk about .NET and related technologies. And so, a long time ago, JetBrains did, in fact, consider building a standalone C# IDE. Here is proof—this screenshot was not easy to obtain!

Figure 1: Early Prototype of JetBrains .NET IDE
Eventually, they decided against it and made something called ReSharper instead. ReSharper is a Visual Studio plug-in that provides enhanced navigation, refactoring, code analysis, and many more features for Visual Studio users. Essentially, ReSharper included all those features that JetBrains intended to put in their standalone IDE.
And so, over a decade passed, with ReSharper becoming one of the most popular Visual Studio plug-ins on the market. It looked as though this setup would last forever, but then something interesting happened: Microsoft open-sourced Roslyn (the C# and VB.NET compilers) and started making .NET cross-platform. They also adapted the Electron (formerly Atom-shell) framework and began building a brand new, cross-platform IDE called Visual Studio Code. They also acquired Xamarin, a company with a product for making cross-platform mobile apps using C#, and created the .NET Standard, a specification that all .NET Framework implementations have to follow.
All of these events gave JetBrains the idea to finally make a standalone IDE. That IDE ended up being called Rider (an abbreviation, of sorts, for “ReSharper IDE”): a unique technological undertaking, merging the JVM-based platform and .NET-based functionality into a single product.
So, what is Rider? Put simply, it is a standalone, .NET-centric IDE. When I say .NET-centric, I don’t just mean C# and VB, but also the different .NET platforms (such as .NET Core) as well as different .NET-based platforms and frameworks.
Rider uses the ReSharper infrastructure as a backend, and ReSharper supports not just the C# and VB.NET languages, but also the web languages such as JavaScript and TypeScript, and various markup languages. It also comes with technology-specific support for things like WPF and ASP.NET.
In addition, Rider is built on the mature and technologically accomplished IntelliJ platform, which means it gets lots of functionality “for free.” For example, it comes with support for many different version control systems. The IntelliJ platform serves as Rider’s frontend and has the potential to host other languages in addition to the ones supported by Rider’s default installation.
The biggest question of all is why should you even bother using Rider, considering the fact that we’ve got Visual Studio from Microsoft? Okay, let’s try to list all of Rider’s main benefits:
Now, it’s not all roses here; Visual Studio does have a few advantages. Of course, some of them are a result of Rider being a relatively young product.
A list of pros and cons isn’t really enough to figure out if Rider is for you. The only way to know for sure is to download Rider and try it. Speaking of which…
First, it has to be said that Rider, just like (paid editions of) Visual Studio, is a commercial product that costs real money. However, JetBrains is kind enough to offer a 30-day trial for every single one of its products, so you get one month to try and figure out whether the IDE you downloaded is worth the money. They also offer free products for educational needs for anyone working on an open-source project (subject to a few criteria), and to Microsoft MVPs.
There are two ways of getting Rider: the somewhat boring approach of downloading it from the product page, or the classy, sophisticated way. The “cool” way is to use yet another product, called JetBrains Toolbox. It’s effectively a package manager that lets you install, update, and uninstall all of JetBrains’ products. It’s super useful because of its simplicity: you can use it to install or uninstall apps, update all your apps in a single click, and choose whether you want to install Early Access Preview (or even nightly!) product builds.
You can download the Toolbox from here. After you install it, you will get a pop-up window that looks like this:

Figure 2: JetBrains Toolbox
Now go ahead and find Rider, and click Install. After it has installed, click the Rider icon in the Toolbox, and Rider will fire up.
In most cases, you’ll never need to touch the Settings menu item shown in Figure 2, but there are cases when it’s necessary. Here are the options you can control using Rider’s settings:
Tip: One practical use of editing the Java VM options is to enable the so-called Internal Mode. This is done using the -Didea.is.internal=true switch. This enables various diagnostic modes as well as certain utility actions. These are particularly useful for IDE debugging and plug-in developers.
That’s it! We’re ready to start exploring Rider.