dotUltimate 2021.2

Inclui novos recursos e melhorias para ReSharper, Rider, dotCover, dotMemory, dotPeek e dotTrace.
Agosto 04, 2021 - 14:37
Nova versão

Funcionalidades

ReSharper

  • C# Code Analysis:
    • Added new Swap via deconstruction quick-fix which will help you modernize your code.
    • You can now reduce the number of allocations in your code and increase throughput. Just replace empty array creation with Array.Empty<T>.
    • If you’re allocating a new Type[0], ReSharper will now suggest using Type.EmptyTypes to make memory usage more efficient.
    • If specific EventArgs are not required, ReSharper can now replace new EventArgs() with EventArgs.Empty.
    • Other improvements:
      • You can now use the generated_code property from .editorconfig to mark files or folders as generated code and exclude them from processing.
      • Code analysis is now faster for members with lots of local functions and closures.
      • Enjoy performance improvements in Find similar issues and code analysis for large and complex switch statements and switch expressions.
  • Nullable Reference Types (NRT):
    • ReSharper now indicates suppressions (!) that are no longer needed and can be safely removed.
    • Added a new context action which lets you search for all nullable warning suppressions in scope. From the Find Results tool window, you can then re-evaluate whether the suppressions are needed or not.
    • Added a new refactoring to change nullability. It’s available as a quick-fix, through the Refactor This action or through an in-place refactoring when adding or removing the nullable annotation (?).
    • ReSharper will now update nullability annotations and suggest propagating the changes throughout your codebase.
    • Several new inspections with corresponding quick-fixes are now available for when you’re using JetBrains.Annotations attributes and nullable reference types are enabled.
    • You can now update JetBrains.Annotations attributes to NRT syntax and compiler-supported attributes.
    • ReSharper will now inform you about redundant JetBrains.Annotations attributes, such as [NotNull] string or [ItemCanBeNull] List<string?>. It will also offer a quick-fix to update your code.
    • When the type annotation syntax is not allowed, a new inspection with a quick-fix adds compiler-supported annotations, e.g.:
      • [JetBrains.Annotations.NotNull] T param to [DisallowNull] T param (where T: class?).
      • [JetBrains.Annotations.CanBeNull] T to [System.Diagnostics.MaybeNull] T (in C# 8, where the T? syntax is not allowed).
    • Added new inspections and quick-fixes to help you with using compiler-supported annotations such as [DisallowNull], [AllowNull], [MaybeNull] and [NotNull].
    • Added a new inspection which detects redundant compiler annotations, such as when [AllowNull] is applied to a nullable type, and a quick-fix removes them.
    • When nullable reference type syntax can be used, ReSharper will now suggest doing so.
    • Additional improvements:
      • ReSharper now checks whether variables need to be nullable and produces stricter types when possible.
      • Many context actions, quick-fixes and postfix templates have been updated to work better with nullable warning suppressions. They either preserve nullable warning suppressions or produce them for introduced code if the original code suppressed the warning.
      • Improved support for using generics with nullable reference types.
  • Source Generator Support:
    • Source Generators can be used to reduce tedious and repetitive development work, and to generate code at compile time. In ReSharper 2021.2, many of the features available for human-written code files are available for source-generated files as well. Improved editor support, enhanced the debugger and added support for Solution-Wide Error Analysis (SWEA) and refactorings.
    • For generated code, warnings and errors are displayed in the editor and on the marker bar.
    • Solution Wide Error Analysis (SWEA) now includes files generated by source generators. If there's an error in a generated file in your project, you'll be able to spot it immediately and navigate to it.
    • You can toggle this behavior using the new option to include source generated files, which is enabled by default and located in ReSharper | Options | Code Inspection | Settings | Enable solution-wide analysis.
    • Refactorings can now be triggered from source-generated files. Use the Rename refactoring to rename a generated property. ReSharper will also rename the related symbol in manually written code.
    • Similarly, Change Signature lets you verify whether code that will be generated after the change can still be compiled.
    • You can now use Find Usages, search for inheritors, navigate from generated code to manually written code with Ctrl+Click and Navigate To and more.
    • Semantic highlighting is now enabled so that class members like events, fields and properties are highlighted correctly. All inlay hints are shown where appropriate.
    • ReSharper's own Data Tips are shown while debugging. This provides more powerful debugging assistance with the ability to search, property highlighting and more.
    • ReSharper now supports code generated by source generators in VB.NET.
  • HttpClient URI support - In the previous release, support for Microsoft ASP.NET route templates was added. In this release, support for HttpClient URI strings has been improved:
    • When using HttpClient, code completion will now suggest all URIs that can be resolved to actions in controllers annotated with [Route], [Http{Method}] or [AcceptVerbs] attributes.
    • You can now easily navigate between route attributes inside controllers and these URIs using Go to Declaration and Find Usages.
    • You can now rename an attribute route in a controller which affects its usages in URIs and you can even rename a route directly from the URI string.
  • Navigation - Useful features have been added for Navigation:
    • While debugging, ReSharper understands even more about your code. As a result, calling Go To Declaration (or Ctrl+Click) on interface references will take you directly to their implementations.
    • The Go To Base/Inheritors list now shows hidden overrides, as well.
  • Code Styling and Formatting
    • It can sometimes be useful to specify advanced naming rules for records, extension methods and catch variables. Starting from this release, it is now possible to configure these rules.
    • Pico style has been added as an option to the Brace Layout tab.
    • The default formatting preferences have been changed in a couple of cases to align with the Microsoft Visual Studio defaults.
  • C++ Inline Function Refactoring - The new Inline Function refactoring lets you quickly replace a function call with the body of the function. ReSharper C++ will perform the necessary transformations, handle all the name conflicts and reformat the resulting code.
  • C++ Type Conversion Hints - ReSharper C++ 2021.2 introduces inlay hints for implicit type conversions, which could have resulted in inadvertent data loss or performance issues. ReSharper C++ now indicates where implicit conversions happen in your code.
  • Dynamic program analysis (DPA) - DPA now stores two values for each issue - the historical max value and the value from the last run. This prevents false negatives, as it was previously possible for issues to fall below the threshold and disappear from the issue list, not because they had been fixed, but because their launch conditions had changed. There are also several other improvements:
    • DPA is automatically disabled when you start performance profiling.
    • The Dynamic Program Analysis window now supports selecting multiple issues.
    • Suppressing issues with the SuppressMessage attribute now works for asynchronous methods.
  • Assembly Explorer - The embedded decompiler can now decompile single-file apps. It supports single-file formats for the Microsoft .NET Core 3.1, .NET 5, and the upcoming .NET 6 SDKs. Using Assembly Explorer, you can browse through bundled assemblies inside a single-file app, just like you are used to doing.
  • Improved Coverage Performance:
    • dotCover can now run coverage analysis of test classes in parallel within one assembly. In certain scenarios this can result in faster coverage analysis.
    • Unit test runners can now be preloaded for .NET Core and .NET projects (this allows coverage analysis to start quicker, as the unit test runners are already loaded in memory).
  • Memory Allocation Analysis - This release improves the way you analyze memory allocation. Two new tabs have been added to the Memory Allocation view:
    • The Methods tab lets you analyze a plain list of methods that have allocated memory.
    • The Call Tree tab lets you analyze the allocation call tree. Each node in the tree shows not only the called method but also the objects allocated by the call.
  • Native Profiling - It is now possible to profile native applications on Microsoft Windows. When starting a profiling session, you have the option to download native source symbol files from remote servers. Native profiling is only available for the Timeline profiling type.
  • Other
    • Razor - Razor developers working on large views can now turn off the CPU-intensive assistance and automatic suggestions if their editor begins to lag.
    • ReSharper Command Line Tools - Introduced a breaking change in the InspectCode tool. Starting from v2021.2, InspectCode automatically restores NuGet packages and builds a solution before starting its analysis. If this behavior is undesired, use the option --no-build to disable restoring NuGet packages and building the solution.

ReSharper C++

  • Type conversion hints
    • Added new inlay hints which make hidden type conversions visible in the editor, so that you are aware of their potential performance and correctness implications.
    • You will now see special icons for implicit conversions. Alternatively, you can choose to show the conversions as textual hints.
    • ReSharper C++ now displays hints for different kinds of class type conversions, including object copying, object initialization using converting constructors or aggregate initialization and calls to conversion operators.
    • You can also now enable hints for standard conversions between built-in types, for example, conversions between numeric types that might lose precision or change the signedness of the type.
  • Immutability inspections
    • Immutability-related analyses can help you keep your code more readable and correct. By adding two new inspections, ReSharper C++ now covers all the rules from the Constants and immutability section of the C++ Core Guidelines.
    • The first new inspection extends the immutability analysis for function parameters of reference and pointer types. ReSharper C++ will now notify you if you can pass a pointer or a reference to const, which guarantees that the function will not modify the corresponding function argument.
    • The second inspection suggests marking variables that can be evaluated at compile-time with constexpr, which can lead to faster performance and better compile-time checking.
  • Modernizing inspections - This release includes some new inspections to help you modernize your code.
    • Structured binding could be used instead of tie(..) - Since C++17, you no longer need to use std::tie() or boost::tie() for unpacking a tuple or a pair - structured binding declarations help you simplify your code.
    • Type trait can now be simplified using a template alias or a variable template - C++14 alias templates let you shorten C++11 type trait expressions.
    • std::size can now be used - This inspection suggests using std::size as a type-safe alternative to the error-prone C idiom for array size calculation.
    • Zero initialization can be used instead of memset - zero-initialization leads to more concise code and prevents various memset-related errors.
  • Inline Function refactoring - The new Inline Function refactoring lets you quickly replace a function call with the body of the function. ReSharper C++ will perform the necessary transformations, handle all the name conflicts and reformat the resulting code.
  • Coding assistance
    • By default, ReSharper C++ generates functions with empty bodies, but now you can specify whether the generated functions should throw an std::logic_error, return a default value or include uncompilable code. ReSharper C++ will also automatically call the base function from the body of an overriding function.
    • Added a new context action which lets you convert any string into a C++11 raw string literal, which is easier to read when the string literal contains special characters. The transformation works both ways, so you can convert a raw string literal into a regular string literal as well.
    • If you want to quickly consult cppreference.com about the details of a standard library class or function, you can now click Read more in the Quick Documentation pop-up (Ctrl+Shift+F1) to open the corresponding page in your browser.
    • When you press Backspace on an empty line or a line with whitespaces or tabs to the left of the caret, ReSharper C++ can now place the caret at the proper indent position instead of moving it back one position at a time.
  • Unreal Engine - ReSharper C++ now supports working with Unreal Engine 5 from both the Unreal Launcher and GitHub sources.
    • In the .Build.cs and .Target.cs files of an Unreal Engine project, ReSharper C++’s code completion now suggests the list of available modules and plugins.
    • After you’ve added a module or a plugin, the new inspection for missing dependencies will highlight any that must be referenced in the .uproject or .uplugin file. Use the accompanying quick-fix to add new modules and plugins to the project files with a single click.
    • When generating a definition of an overriding function, ReSharper C++ will now call the overridden function from the generated body using the idiomatic Super type alias.
    • Improved the performance and memory usage of a cold startup. ReSharper C++ now indexes the Unreal Engine codebase 10% faster.
  • Other changes
    • The bundled Clang-Tidy has been updated to Clang 12, adding new checks from the latest LLVM release. Its performance in complex files, particularly in C++20 projects has been improved.
    • Added a new inspection which warns you when you compare an unsigned expression with 0, which may cause an infinite loop or unreachable code.

Rider

  • Support for Microsoft ASP.NET Core Endpoints:
    • The new Endpoints tool window helps you explore and navigate to any ASP.NET Core endpoint in your project that is registered or annotated with [Route], [Http{Method}], or [AcceptVerbs] attributes.
    • You can now inspect endpoint documentation or Jump to Source of the controller that implements an endpoint. You can also use Find Usages to see where it is registered.
    • You can now use the HTTP Client tab to create and submit requests to your application. This is useful for testing APIs.
    • You can now try out your API using the bundled OpenAPI Specifications plugin. It adds Swagger UI support for OpenAPI files that you can use to write requests and inspect responses.
    • In the code editor, you will get first-class support as well:
      • When you use HttpClient, code completion will suggest all URIs that can be resolved to actions in controllers annotated with [Route], [Http{Method}] or [AcceptVerbs] attributes.
      • You can easily navigate between route attributes inside controllers and these URIs by using Go to Declaration and Find Usages.
      • Renaming an attribute route in a controller affects its usages in URIs and you can even rename a route directly from the URI string.
  • Blazor WebAssembly Debugging
    • Added client-side debugging for Blazor WebAssembly. It works for Microsoft .NET 5.0 and Microsoft .NET Core 3.1 applications.
    • To get it working on Linux, you have to manually install development certificates beforehand; otherwise, it won’t work.
    • Rider supports the debugging proxy if either of these NuGet packages are installed:
      • Microsoft.AspNetCore.Components.WebAssembly.DevServer.
      • Microsoft.AspNetCore.Components.WebAssembly.Server.
        • There is no support for any custom debugging proxies for Blazor WASM apps right now.
  • Language Support
    • C# Code Analysis:
      • Added new Swap via deconstruction quick-fix which will help you modernize your code.
      • You can now reduce the number of allocations in your code and increase throughput. Just replace empty array creation with Array.Empty<T>.
      • If you’re allocating a new Type[0], Rider will now suggest using Type.EmptyTypes to make memory usage more efficient.
      • If specific EventArgs are not required, Rider can now replace new EventArgs() with EventArgs.Empty.
      • Other improvements:
        • You can now use the generated_code property from .editorconfig to mark files or folders as generated code and exclude them from processing.
        • Code analysis is now faster for members with lots of local functions and closures.
        • Enjoy performance improvements in Find similar issues and code analysis for large and complex switch statements and switch expressions.
    • Nullable Reference Types (NRT):
      • Rider now indicates suppressions (!) that are no longer needed and can be safely removed.
      • Added a new context action which lets you search for all nullable warning suppressions in scope. From the Find Results tool window, you can then re-evaluate whether the suppressions are needed or not.
      • Added a new refactoring to change nullability. It’s available as a quick-fix, through the Refactor This action or through an in-place refactoring when adding or removing the nullable annotation (?).
      • Rider will now update nullability annotations and suggest propagating the changes throughout your codebase.
      • Several new inspections with corresponding quick-fixes are now available for when you’re using JetBrains.Annotations attributes and nullable reference types are enabled.
      • You can now update JetBrains.Annotations attributes to NRT syntax and compiler-supported attributes.
      • Rider will now inform you about redundant JetBrains.Annotations attributes, such as [NotNull] string or [ItemCanBeNull] List<string?>. It will also offer a quick-fix to update your code.
      • When the type annotation syntax is not allowed, a new inspection with a quick-fix adds compiler-supported annotations, e.g.:
        • [JetBrains.Annotations.NotNull] T param to [DisallowNull] T param (where T: class?).
        • [JetBrains.Annotations.CanBeNull] T to [System.Diagnostics.MaybeNull] T (in C# 8, where the T? syntax is not allowed).
      • Added new inspections and quick-fixes to help you with using compiler-supported annotations such as [DisallowNull], [AllowNull], [MaybeNull] and [NotNull].
      • Added a new inspection which detects redundant compiler annotations, such as when [AllowNull] is applied to a nullable type, and a quick-fix removes them.
      • When nullable reference type syntax can be used, Rider will now suggest doing so.
      • Additional improvements:
        • Rider now checks whether variables need to be nullable and produces stricter types when possible.
        • Many context actions, quick-fixes and postfix templates have been updated to work better with nullable warning suppressions. They either preserve nullable warning suppressions or produce them for introduced code if the original code suppressed the warning.
        • Improved support for using generics with nullable reference types.
    • Source Generator support:
      • Source Generators can be used to reduce tedious and repetitive development work and to generate code at compile time. In this release, many of the features available for human-written code files are now available for source-generated files as well. Improved editor support and added support for refactorings as well.
      • Refactorings can now be triggered from source-generated files. Use the Rename refactoring to rename a generated property. Rider will also rename the related symbol in manually written code.
      • Similarly, Change Signature lets you verify whether code that will be generated after the change can still be compiled.
      • You can now use Find Usages, search for inheritors, navigate from generated code to manually written code with Ctrl+Click and Navigate To and more.
      • Semantic highlighting is now enabled so that class members like events, fields and properties are highlighted correctly. All inlay hints are shown where appropriate.
      • For generated code, warnings and errors are displayed in the editor and on the marker bar.
      • Rider now supports code generated by source generators in VB.NET.
  • Game Zone
    • Unity Support:
      • Rider’s smart integration with the Unity editor will now check if any scenes are open and unsaved before you commit code. You can be sure that everything is saved before committing.
      • Rider has long shown a link to Unity’s documentation in the tooltip for a Unity class or method, but now you can use the External Documentation action and shortcut to jump straight to the docs without showing the tooltip first.
      • Rider can now debug local UWP players, by correctly asking Microsoft Windows to allow incoming connections to the process being debugged.
      • The Packages view in Unity Explorer is now significantly faster to display when a solution is reopened and will even remember open folders.
      • This release improves the experience of debugging IL2CPP-based players, by automatically disabling Break on Unhandled Exception when it connects to a IL2CPP player.
      • There are lots of other minor improvements and fixes; for example, [UnitySetup] methods are no longer marked as unused, and layer names are correctly shown in completion for older projects. There are various performance improvements for Unity-based inspections, especially those for large files.
    • Unreal Engine (Early Preview):
      • Support for Unreal Engine 5 - Rider for Unreal works great with the new Unreal Engine 5 projects, just as it does with your existing Unreal Engine 4 projects.
      • Support for opening .uproject files - Rider can now open your Unreal Engine project straight from the <ProjectName>.uproject file.
      • Rider for Unreal Engine now works on Apple Mac - Simply open your <ProjectName>.uproject file and get the full Rider for Unreal experience on your Apple macOS. This includes rich C++ and HLSL shader editing, navigation, inspections and refactorings, code style settings and quick-fixes, Blueprint support (Find Usages of code inside a Blueprint, Code Vision links and counters, and navigation) and debugger and rich integration with the Unreal Editor. The macOS version works with Unreal Engine 4.26 or later.
      • Big improvements for Natvis and the built-in presentation of debugger results - Added support for the inheritable attribute, format specifiers, custom list items and more, including one-line summaries for all structures not covered by Natvis and a [Raw View] node for looking at underlying object data.
      • Expanded Code Style settings - Rider will now recognize an Unreal project and it will automatically configure itself to understand and follow the UE code style conventions. It will highlight code that doesn’t follow the correct style and offer quick-fixes to automatically update your code.
      • The EzArgs plugin provides easy access to the C++ run/debug configuration arguments – just type a new argument in the drop-down on the toolbar.
  • Code Cleanup
    • Merged the Reformat File and Code Cleanup dialogs into one. The shortcuts for both remain the same, but you will have a new unified view that allows both steps to be performed at once. Cleanup profiles will also preview which actions will be executed and you can easily switch to the profile editing mode with a button.
    • In the commit dialog, you can now enable automatic code cleanup of your changes with the profile of your choice. Alternatively, you can use a new option in the Reformat and Cleanup dialog to reformat/clean up only uncommitted changes in the current file.
    • Actions for reformatting code, optimizing imports and rearranging code are now available for CSS, JavaScript and SQL.
  • User Experience
    • Import Settings from other IDEs - The Welcome wizard now lets you import settings from other IDEs such as Microsoft Visual Studio, Visual Studio for Mac or Visual Studio Code. In addition, Rider will recognize settings from ReSharper.
    • Organize tool windows by drag and drop - It is now easier to drag a tool window to the desired place within the main IDE window or in a separate window. You can drag it by clicking and holding the tool window name bar and dropping it in any highlighted area.
    • Transparent title bar (macOS only) - The title bar is now transparent on macOS when the IDE window isn’t in Full-Screen Mode. It means that there is no visible border between the title bar and the rest of the window.
    • Advanced Settings - If you need to configure use-case-specific options in Rider, you can do it in the new Advanced Settings node in Preferences/Settings. For example, you can add a left margin in Distraction-free mode, or set the caret to move down after you use the Comment with Line Comment action.
    • New navigation option in Preferences/Settings - Navigation has been simplified in Preferences/Settings by adding arrows to the top right-hand corner of the window. They allow you to quickly jump back and forth between the sections you’ve opened.
  • Debugger
    • Property values are evaluated and shown in the debugger by default, but sometimes their evaluation can take some time. This is why a new Disable Evaluation of Selected Item action has been added.
    • Especially with native code, it can happen that evaluating a method call crashes the debugging session. Rider will now remember these troublesome calls and disable their evaluation for you.
    • When stepping through codebases, each new file is opened in a new tab, sometimes leaving you with a very polluted tab bar. The preview tab allows you to view files in a single tab one by one without opening each file in a new tab each time.
  • Editor
    • Structural remove - Added structural removal of code. Select and delete code with any kind of structural selection (such as structural navigation, extend/shrink selection or rearrange code) and let Rider perform the remaining structural modifications. You can remove commas and colons for method call arguments, parentheses in attribute arguments or braces for empty object initializers.
    • Quick Documentation - Updated how Quick Documentation is shown. Attributes are now highlighted, so they are easier to read and explore. If you’re inspecting any class or method that uses generics, Rider no longer renders a placeholder value - the concrete implementation is shown instead.
    • Formatting - Pico style has been added as an option to the Brace Layout tab.
  • Front-End Development
    • Reload pages in browser on save - If you preview HTML files in the browser, they will automatically update in accordance with the saved changes in your HTML file or the linked CSS and JavaScript files. This feature is enabled by default.
    • Rename refactoring for React useState hooks - You will no longer need to waste time on refactoring useState values and functions one by one – Rider can now rename both for you. Place the caret on a state value and press Shift+F6 or go to Refactor | Rename from the right-click context menu.
    • Auto-import for require() - The IDE can now add missing import statements as you complete CommonJS modules - required imports will be inserted on code completion.
  • Xamarin
    • Added support for generating .aab (Android App Bundle) in addition to .apk files, which will soon be the only way to upload your apps to the Google Play Store.
    • XCAssets can now be created and edited for imageset, appiconset and colorset right inside of Rider. This allows you to see all the different end devices and their assigned images, icons and colors. Images and icons can be added or replaced via drag and drop. The color picker control has been added for convenient color selection.
    • When editing Android layout or resource files, the Resource.Designer.cs file is now automatically generated, removing all errors that were previously incorrectly shown.
  • F# Support
    • Postfix templates in code completion - Starting with the let template, postfix templates have been added for F# which can help you transform expressions that you have already typed without jumping backward.
    • Actions:
      • Rider now has a new action for pattern deconstruction for F# tuples and union cases.
      • Actions for rearranging the code are now available. You can move elements up/down or left/right in enum or union cases, record or union case fields, match clauses, tuples and function parameters.
      • Another new action that has been added is Optimize Imports, this will free you from the need to manually trigger a similar quick-fix on warnings each time you need to clean imports.
    • Other notable improvements:
      • The Inline Variable refactoring now also works for top-level let bindings.
      • You’ll find significantly better XML documentation rendering in the editor.
      • Language version can be specified in the project properties, and it will be also written to .fsproj.
  • Apple Silicon support (macOS only) (Early Preview) - An early preview version of Rider 2021.2 with full native M1 chip support is now available. This version has no x64-to-ARM64 translation. It uses the following runtimes:
    • The Apple Silicon–compatible JBR (JetBrains Runtime) for the frontend.
    • .NET 6 Preview 4 for the backend.
  • Database Support
    • Generation from a real data source:
      • DDL data source generation is another step in the long-term development of seamless database versioning. With this feature, you can keep your DDL files under a VCS system and regenerate them every time your database structure is updated.
      • It is now possible to generate a DDL data source based on a real one. The DDL files are created locally and the new data source is based on them. This way you’ll always be able to regenerate these files and refresh the DDL data source.
    • Separate folders for functions and procedures - If you turn on the Separate Procedures and Functions option in the database explorer settings (the gear icon), it will immediately take effect. For Microsoft SQL Server there are dedicated nodes for scalar and table functions. For PostgreSQL there is a node for trigger functions.
    • Separate nodes for triggers, keys, and indices - The new database tree option called Show Constraints and Triggers in the Schema assigns triggers, keys and indices their own individual nodes in the database explorer.
    • Completion for cross-database synonyms (SQL Server) - Code completion for cross-database synonyms is now available.
  • Plugins
    • dotCover - dotCover can now run coverage analysis of test classes in parallel within one assembly. In some particular cases, this may result in faster coverage analysis. Preloading of unit test runners is available for .NET Core and .NET projects, which means coverage analysis starts faster as unit test runners are already loaded in memory. Additional improvements:
      • Improved support for C# 8.0 and C# 9.0 in the coverage tree – showing default interface implementations, and more.
      • dotCover now offers to restart Unity Editor if the coverage filters have been changed.
    • Dynamic program analysis (DPA) - DPA now stores two values for each issue - the historical max value and the value from the last run. This prevents false negatives, as it was previously possible for issues to fall below the threshold and disappear from the issue list, not because they had been fixed, but because their launch conditions had changed.There are also several other improvements:
      • DPA is automatically disabled when you start performance profiling.
      • The Dynamic Program Analysis window now supports selecting multiple issues.
      • Suppressing issues with the SuppressMessage attribute now works for asynchronous methods.
    • SpecFlow announced - SpecFlow is a tool to bring Behavior-Driven Development to .NET. The SpecFlow development team has brought a SpecFlow plugin to JetBrains Marketplace, which adds syntax highlighting, code completion, navigation and skeleton code-generation for SpecFlow tests.
    • Featured plugins - The list of the featured plugins you can see in the “Customize Rider” wizard during initial setup has been changed. Now the list is the following:
      • IdeaVim.
      • Heap Allocations Viewer.
      • Rider Xamarin Android Support.
      • Azure Toolkit for Rider.
      • AWS Toolkit.
      • SpecFlow for Rider.
  • Other
    • Solution Explorer - Large directories like node_modules or libs can significantly slow down the indexing of files, which is used for providing fast text search. Rider can now stop certain directories from being indexed from the context menu. You can now edit File Properties (such as Build Action or Copy to Output Directory) for multiple items selected in the Solution Explorer.
    • Assembly Explorer and Decompiler - The embedded decompiler now can decompile single-file apps. It supports single-file formats for .NET Core 3.1, .NET 5 and upcoming .NET 6 SDK. Using Assembly Explorer, you can browse through bundled assemblies inside a single-file app as you are used to.
    • Toolbox App - You will no longer miss any critical product updates from the Toolbox App. Rider will alert you if there is a new version available for download and will offer to upgrade you to it. You’ll need to have Toolbox App 1.20.8804 or later for this.
    • Miscellaneous
      • Razor developers working on large views can turn off the CPU-intensive assistance and automatic suggestions if their editor begins to lag.
      • The Go To Base/Inheritors list now shows hidden overrides, as well.
      • Added support for the log message template from Microsoft LoggerExtensions. Rider now analyzes the code, adds highlighting and offers context actions.
      • Added an option to suppress issues for asynchronous methods.
      • Rider will now warn you when you try to run a 64-bit web application on 32-bit IIS Express ("use64Bit": false in launchSettings.json) in in-process mode.

dotCover

  • Coverage information for individual tests in the console runner - The dotCover console runner is now able to collect coverage information for individual tests and show it in the generated reports. Currently, only the following test runners are supported: dotnet test, dotnet vstest and vstest.console.exe.
  • Improved coverage performance - dotCover can now run coverage analysis of test classes in parallel within one assembly. In certain scenarios this can result in faster coverage analysis. Unit test runners can now be preloaded for Microsoft .NET Core and .NET projects (this allows coverage analysis to start quicker, as the unit test runners are already loaded in memory).
  • Updates to C# 8 and C# 9 support - Improved support for C# 8.0 and C# 9.0 in the coverage tree (showing default interface implementations, and more). dotCover will now offer to restart Unity Editor when coverage filters are changed.

dotMemory

  • Updates to memory allocation analysis - This release improves the way you analyze memory allocation. Two new tabs have been added to the Memory Allocation view:
    • The Methods tab lets you analyze a plain list of methods that have allocated memory.
    • The Call Tree tab lets you analyze the allocation call tree. Each node in the tree shows not only the called method but also the objects allocated by the call.
  • Improved filters - The search bar at the top of dotMemory views is now more flexible and easier to use:
    • The filters have additional options for narrowing the search scope: #struct (search only in value types), #c (only in types), #m (only in methods), #ns (only in namespaces).
    • You can get help for all filters possible in a given context.
  • Improved object export - It’s now possible to:
    • Specify the traversal depth when exporting object data.
    • Select one or more types and export their data to a single file.
    • Export object data from the Instances, Outgoing References and Unreachable Objects views.
  • Console profiler update - It’s now possible to use service messages to enable and disable the collection of memory allocation data.
  • Copy stack trace to clipboard - A stack trace copied to the clipboard in dotMemory is now automatically opened in Rider/Microsoft Visual Studio with ReSharper.

dotPeek

  • Support for single-file applications - dotPeek can now decompile single-file apps. It also lets you browse through bundled assemblies inside a single-file app just like you are used to doing. It supports single-file formats for the Microsoft .NET Core 3.1, .NET 5 and the upcoming .NET 6 SDKs.

dotTrace

  • Native profiling - It’s now possible to profile native applications on Microsoft Windows. When starting a profiling session, you have the option to download native source symbol files from remote servers. Native profiling is only available for the Timeline profiling type.
  • Timeline profiling on Apple macOS and Linux - You can now profile Microsoft .NET Core and .NET applications on macOS and Linux using the Timeline profiling type.
Navigate from generated code to manually written code

dotUltimate

Todas as ferramentas JetBrains .NET, ReSharper C++ e Rider em conjunto em um único pacote.

dotUltimate também está disponível em:

Tem alguma pergunta?

Chat ao vivo com nossos especialistas de licenciamento de JetBrains.