Named tuple inference, leading digit separator, non-trailing named arguments – VB.NET 15.3 and 15.5 language features in ReSharper and Rider

A while ago, we did a blog series about C# 7.0, 7.1, 7.2, and C# 7.3 language features. It’s high time we did something similar for VB.NET!

The latest ReSharper 2018.3 EAP and Rider 2018.3 EAP come with VB.NET 15.3 and 15.5 language support for named tuple inference, the leading digit separator, non-trailing named arguments, and the Private Protected access modifier. Let’s have a look at them, shall we? Continue reading

Posted in How-To's | Tagged , , , | Leave a comment

Using .NET Core launchSettings.json to run/debug apps in Rider

A .NET Core application can have a file called launchSettings.json, which describes how a project can be launched. It describes the command to run, whether the browser should be opened, which environment variables should be set, and so on. This information can then be used by dotnet to run or debug our application.

The latest Rider 2018.3 Early Access Preview (EAP) build adds support for generating Rider run/debug configurations from launchSettings.json. This makes the launch profile portable between the command-line dotnet tools and Rider. Let’s see how this works! Continue reading

Posted in How-To's | Tagged , , , | 3 Comments

Refactor Now or Never – Webinar Recording

The recording of our October 31 webinar with Dino Esposito is now available.

The same popular metaphor of unit-testing – write the test, break it, fix it – can be applied at a higher level of abstraction to improve the average quality of your codebase just as you code.

Continue reading

Posted in How-To's | Tagged , , , , | Leave a comment

SQL inside C# strings, fragment editor, run query in console – Language injection updates in Rider 2018.3

The latest Rider 2018.3 EAP build extends Rider’s language injections functionality quite a bit, with SQL language support in string literals. This gives us highlighting, code completion and code analysis, and a Run in console action for SQL inside of a C# string!

For all existing and newly added language injections, we can edit fragments in a separate editor! And last but not least, we can now configure automatic language injections, so that Rider automatically recognizes language fragments inside strings.

More than enough for a long blog post! Grab a coffee or tea, sit back, and let’s dive in! Continue reading

Posted in How-To's | Tagged , , , , | 20 Comments

Rider 2018.3 assembly explorer and cross-platform .NET decompiler

Rider has had support for decompiling .NET assemblies for a while (including debugging), but it only allows decompiling assemblies referenced in our solution.

The latest Rider 2018.3 Early Access Preview (EAP) changes this, and comes with a built-in assembly explorer, which lets us drill into namespaces, types and type members for any assembly. Essentially, this makes Rider’s assembly explorer a cross-platform .NET decompiler that works on Windows, Mac OS X and Linux, based on dotPeek.

For referenced assemblies, we can use the View in Assembly Explorer context action to open the assembly explorer:

View in Assembly Explorer

Another way to open it, is by changing the view of the Solution Explorer tool window – it’s more than just a Solution Explorer! Continue reading

Posted in How-To's | Tagged , , | 12 Comments

Performance profiling .NET code in Rider with integrated dotTrace

Rider 2018.2 was the first release to host one of our .NET tools, dotCover, together with its unit test coverage features. As we mentioned back then, this was just the beginning. Today, it’s performance profiling’s turn to be taken on board. We are proud of our first Rider release with an integrated performance profiler: JetBrains dotTrace is now part of the latest Rider 2018.3 EAP build!

In this introductory post, let’s take a look at the profiler’s capabilities, supported systems and frameworks, and licensing.
Continue reading

Posted in How-To's | Tagged , , | 7 Comments

Unity-specific code analysis in Rider 2018.2

Perhaps the most powerful feature that Rider has is its code analysis, finding issues and providing quick fixes and context actions to help you improve the quality of your code. Rider’s Unity support is no exception, and in this post, we’ll take a look at what Rider 2018.2 brings in terms of Unity-specific code analysis and refactorings.

Continue reading

Posted in How-To's | Tagged , , | 5 Comments

Deploy web apps, explore resources and more – Introducing the Azure Toolkit for Rider

Today, we are happy to introduce the Azure Toolkit for JetBrains Rider – an open-source plugin that helps .NET developers easily create, develop, configure, test, manage and deploy web apps to Azure directly from within Rider, and work with resources such as storage, Redis cache and virtual machines.

TL;DR: Get the plugin for Rider 2018.2, install it, explore your Azure resources and deploy a Web App!

Microsoft Azure Toolkit for Rider - Manage your Azure Resources and deploy Web Apps

Let’s dive in and look at the Azure Explorer tool window and its functionality, as well as deploying ASP.NET web apps to Azure from within Rider! Continue reading

Posted in How-To's | Tagged , , , , , | 6 Comments

Tuples, deconstruction, string interpolation – improved inspections and quick fixes in ReSharper and Rider 2018.3 EAP

The latest ReSharper 2018.3 EAP and Rider 2018.3 EAP builds come with new and improved inspections, quick fixes and context actions that help us write better C# code, faster.

Before we dive into these, let’s look at how ReSharper and Rider are not only productivity tools, but also learning tools. Their 2300+ inspections help us write better code or learn new language features.

Learning with ReSharper and Rider inspections

Did you know our web help is a treasure trove of background information and learning about potential code quality issues, common practices and code improvements, language usage opportunities and more?

For example, the Specify string culture explicitly inspection’s web help teaches us that string conversion is dependent on the current culture, and that results may be different on machines with a different locale.

When available, inspection help is displayed in the Alt+Enter popup, the solution-wide analysis context menu and in the inspection severity options page (under Code Inspection | Inspection Severity):

Learn more about inspections in ReSharper and Rider

When additional information is available, the Learn more… link will take us to the web help and provide additional background information about why ReSharper and Rider are suggesting certain things, helping us learn why.

Now let’s dive into the new and improved inspections, quick fixes and context actions in ReSharper and Rider  2018.3! Continue reading

Posted in How-To's | Tagged , , , , | 10 Comments

Add missing packages, faster search and more NuGet improvements in Rider 2018.3 EAP

Our latest Rider 2018.3 Early Access Preview (EAP) build adds a bunch of NuGet improvements, such as adding missing packages using a quick-fix (including installing missing .NET Core adapter for xUnit tests), faster search for NuGet.org using its autocomplete service, a reworked folders tab showing more NuGet package locations, and many minor bug fixes, small improvements and optimizations. Let’s dive in!

Add missing NuGet packages using quick-fix

Sometimes while writing code, we use the name of a type or namespace that lives in a NuGet package that has not yet been referenced. With Rider, we can now search for types or namespaces in NuGet.org, directly from within the editor!

Using Alt+Enter and the Find this type on NuGet.org… quick-fix, we can search for missing types, and then install them into our project:

Find type or namespace on NuGet

Once installed, we can use the type or namespace in our code.

We also added new syntax to search for NuGet packages by type or namespace. By prefixing a search with T: (e.g. T:MapperConfiguration), it’s possible to search for NuGet packages containing a given type. The N: prefix (e.g. N:JetBrains.Annotations) lets us search for packages containing a specific namespace.
Continue reading

Posted in How-To's | Tagged , , , , , | 1 Comment