Dotnet logo

.NET Tools

Essential productivity kit for .NET and game developers

.NET Tools Releases

ReSharper 2020.2: улучшенный анализ кода для C# 8, Code Cleanup при сохранении файла, обновленные инструменты запуска юнит-тестов

С радостью представляем вам ReSharper 2020.2. В этот релиз мы включили новые инспекции и быстрые исправления для C# 8 (главным образом для ссылочных типов, допускающих значение null), добавили долгожданный Code Cleanup в момент сохранения файла, обновили инструменты запуска юнит-тестов, а также улучшили интерфейс.


Скачать ReSharper 2020.2

Поскольку лицензия ReSharper теперь включает в себя и ReSharper, и ReSharper C++, большое внимание было уделено поддержке C++/CLI и улучшению совместимости C++/CLI и C#.

Итак, основные обновления инструментов и расширений для .NET:

Все подробности о релизе можно найти на нашем сайте.

ReSharper 2020.2

Анализ кода

Поддержка C# 8 была улучшена за счет набора новых инспекций и быстрых исправлений — прежде всего для типов данных, допускающих значение null. Например, при анализе кода теперь учитываются атрибуты JetBrains.Annotations NotNull и CanBeNull — это происходит даже тогда, когда код запрещает использование ссылочных типов, допускающих null (#nullable disable).


Помимо этого, средства анализа кода на допустимость null были расширены новыми кейсами, затрагивающими, в частности, операцию деконструкции и цикл foreach. Здесь также доступен ряд быстрых исправлений.

Code Cleanup при сохранении файла

Мы добавили в ReSharper долгожданную возможность автоматического запуска Code Cleanup при сохранении файла. Настроить запуск Code Cleanup теперь можно более селективно, например, для файлов, которые были недавно открыты или отредактированы.

Обновленные инструменты запуска юнит-тестов

Мы полностью переработали инструменты запуска юнит-тестов как для фреймворка .NET, так и для .NET Core. Тест-раннер теперь запускается для любой из сред выполнения, порожденных процессом Visual Studio. Это позволило нам решить многие проблемы, связанные с обнаружением, запуском и отладкой юнит-тестов, и дало возможность полноценно управлять иерархиями юнит-тестов в .NET Core. Более того, в новый тест-раннер встроена поддержка от MSFakes фреймворков юнит-тестирования NUnit, xUnit, и MSTest v2.

Кроме того:

  • Хорошие новости для разработчиков UWP: мы наконец-то реализовали поддержку компилируемых привязок x:Bind.

  • В новой версии расширена поддержка инструментов чтения с экрана, таких как JAWS, NVDA и Microsoft Narrator.

  • Были доработаны инструменты построения диаграммм типов и проектных зависимостей. Используемый здесь движок yFiles был обновлен до последней версии. Благодаря этим и некоторым другим оптимизациям диаграммы отрисовываются быстрее. Кроме того, диаграммы теперь можно экспортировать в файлы формата GraphML и XPS.

  • Упростилась навигация в места использования тех или иных типов из внешних сборок. После выполнения Go to Type из окна с результатами поиска можно напрямую вызвать действие Find Usages.

  • Для некоторых популярных в ReSharper действий появилась новая опция Peek, позволяющая просматривать результаты этих действий в представлении Peek Definition.

  • Наши оффлайн- и онлайн-установщики теперь покрывают все продукты под лицензией dotUltimate license: ReSharper, ReSharper C++, JetBrains Rider, dotCover, dotTrace, dotMemory и dotPeek.

ReSharper C++ 2020.2

Улучшения для Unreal Engine

В ReSharper C++ 2020.2 включена поддержка проектной модели Unreal Engine с улучшенным автоматическим импортом директив и возможностью работы с различными конфигурациями решений. Для поддержания стандартов оформления кода Unreal Engine мы внесли изменения в уровни значимости инспекций и обновили действия по автогенерации кода.

Улучшенная поддержка C++/CLI

Для улучшения интероперабельности с кодом на C# мы обновили поддержку C++/CLI и добавили набор новых инспекций для использований sealed, gcnew и safe_cast. Функции поиска и навигации теперь работают для импортированных CLR-объектов и позволяют искать производные символы в C#-коде.

Более подробную информацию вы найдете в статье о ReSharper C++ 2020.2.

Command Line Tools 2020.2

  • Инструменты командной строки ReSharper теперь поддерживают .NET Core в Windows, Linux и macOS. Их можно установить в качестве .NET Core Global Tools.

  • Инструменты командной строки dotTrace, dotCover и dotMemory для Linux (Debian и Ubuntu) теперь поддерживают архитектуру ARM64.
  • При запуске консольного раннера dotCover с параметром --reportype=SummaryXml вам будет доступен новый тип отчета Summary, включающий данные о количестве покрытых классов, методов и операторов. Теперь раннер может за раз генерировать отчеты нескольких типов.
  • Консольный профилировщик dotTrace теперь позволяет контролировать сеанс профилирования (делать снэпшоты, отсоединяться от профилируемого процесса и т. д.), отправляя команды в stdin либо в файл.
  • Консольный профилировщик dotMemory теперь доступен не только для Windows, но и для Linux и macOS.

dotTrace 2020.2

И автономный dotTrace, и dotTrace в Rider умеют профилировать нативную часть приложений Mono/Unity на Windows. Начните сеанс со включенной опцией Enable native profiling, и в снэпшотах производительности будут показаны стеки вызовов как для нативного, так и для управляемого кода.

dotPeek 2020.2

  • Улучшенная поддержка NuGet: с каналами NuGet v3 теперь можно работать из диалогов Open from NuGet, Open from NuGet packages cache и Open NuGet packages.config.
  • Поддержана самая свежая версия C#. В числе новой функциональности:
    • Члены, тела которых представляют собой одно выражение
    • Выражения throw
    • Параметры по умолчанию и именованные аргументы
    • Атрибут NullablePublicOnly

С полным списком улучшений и исправлений, вошедших в версию 2020.2, можно ознакомиться в YouTrack.

Кроме того, информация о релизе доступна на нашем сайте. Поделитесь с нами своими впечатлениями о ReSharper 2020.2. Мы будем рады вашей обратной связи ниже в комментариях, в нашем баг-трекере или в Twitter!

Перейти на ReSharper 2020.2 можно любым из перечисленных способов:

  • Скачать и установить новую версию c сайта www.jetbrains.com.
  • Обновить версию установленного ранее ReSharper: ReSharper | Help | Check for updates.
  • Использовать наш Toolbox App.

Ваша команда .NET
The Drive to Develop

Discover more

Releases

ReSharper 2020.2: Improved Code Analysis for C# 8, Code Cleanup on Save, and Revamped Unit Test Runner

Hello everyone,

Today we’re excited to give you ReSharper 2020.2! This major release introduces new inspections and quick-fixes for C# 8, most notably for nullable reference types, a much-awaited Code Cleanup on Save, a revamped Unit Test Runner, and various accessibility improvements.


Download ReSharper 2020.2

Since the ReSharper license now covers both ReSharper and ReSharper C++, support for C++/CLI – a bridge between the languages – is getting a lot of updates and improved interoperability between C++/CLI and C#.

Read through the major updates of all the JetBrains .NET tools and extensions:

Also, visit our What’s New page for the full release notes.

ReSharper 2020.2

Code Analysis

C# 8 support has been improved with a number of new inspections and quick-fixes, most notably for nullable reference types. For instance, code analysis now takes into account JetBrains.Annotations attributes (both NotNull and CanBeNull) for API declared in code where nullable reference types are disabled (#nullable disable).

file
Also, nullability code analysis is now aware of more cases and can trace incorrect nullability through deconstruction and the foreach cycle. It also provides a corresponding quick-fix.

Code Cleanup on Save

Finally, you can set up ReSharper to launch Code Cleanup automatically on saving a file! We’ve also added more granular scopes to run Code Cleanup for recently modified or recently opened files.

file

Revamped Unit Test runner

We’ve remade our Unit Test runner from scratch for both .NET Framework and .NET Core, which allows us to use the same runner for both runtimes that run out of the Visual Studio process. This has helped us solve quite a lot of problems with discovering, running, and debugging unit tests, and gives us full control over unit test hierarchies for .NET Core tests. What’s more, the new test runner has built-in MSFakes support for the NUnit, xUnit, and MSTest v2 unit test frameworks.

file

In other news:

  • We have good news for UWP developers – support for compiled bindings with x:Bind is finally here!

  • This release comes with improved support for screen readers like JAWS, NVDA, and Microsoft Narrator.

  • Type and project dependency diagrams have been updated. The yFiles engine, which is used to draw the graph, has been updated to the latest version. This, in addition to our optimizations, means the resulting graph is drawn much faster. Also, you can export the graphs to new file formats, GraphML and XPS.

file

  • Navigating to usages of types from external assemblies in the code is now much easier. ReSharper can navigate directly from Go to Type search results to Find Usages.

  • New Peek actions have been added to show the result of some common ReSharper actions in a Peek Definition view.

file

  • We have updated our offline and online installers to cover all products under the dotUltimate license, which includes ReSharper, ReSharper C++, JetBrains Rider, dotCover, dotTrace, dotMemory, and dotPeek.

ReSharper C++ 2020.2

Improved Unreal Engine features

ReSharper C++ 2020.2 introduces support for the Unreal Engine project model, which brings smarter auto-import for include directives and support for different solution configurations. To match the Unreal Engine coding standard, we’ve also included several updates to inspection severities and code generation actions.

file

Better C++/CLI support

We’ve updated C++/CLI support to improve interoperability with C# code, and we’ve added a set of code inspections for the sealed, gcnew, and safe_cast usages. Upgraded search and navigation features now work on imported CLR entities and allow you to look for derived symbols in C# code.

file

See the ReSharper C++ 2020.2 blog post for more details.

Command Line Tools 2020.2

  • ReSharper command line tools now run .NET Core on Windows, Linux, and macOS, and you can install them as .NET Core Global Tools.

file

  • dotTrace, dotCover, and dotMemory command-line tools for Linux (Debian and Ubuntu) can perform analysis on ARM64 systems.
  • In the dotCover console runner, the --reportype=SummaryXml parameter lets you create a new Summary report type, which includes data on how many classes, methods, and statements are covered in total. Now, the runner can generate reports of several types at once.
  • The dotTrace console profiler lets you control the profiling session (take snapshots, detach from the profiled process, and so on) by sending commands to stdin or to a file.
  • The dotMemory command-line profiler is now also available on Linux and macOS, in addition to Windows.

dotTrace 2020.2

Both standalone dotTrace and dotTrace in Rider can profile the native part of Mono/Unity applications on Windows. Start a session with the ‘Enable native profiling’ option selected, and you’ll see both native and managed call stacks in the performance snapshots.

file

dotPeek 2020.2

  • Improved NuGet support: NuGet v3 package feeds are now supported in Open from NuGet, Open from NuGet packages cache, and Open NuGet packages.config.
  • The new release brings support for the most recent version of C#, including the following language features:
    • Expression-bodied members
    • Throw expressions
    • Default parameters and named arguments
    • NullablePublicOnly attribute

See the full list of fixes completed in the 2020.2 release cycle on YouTrack.

Visit our What’s New in ReSharper page for the full list of improvements. Let us know what you think of this release and please share your feedback here in the comments, in our issue tracker, or on Twitter!

You can use any of these alternative ways to get ReSharper 2020.2:

Discover more