Back to JetBrains

dotUltimate 2026.1 Release Party

JetBrainsApril 9, 20261h 13m
In a Nutshell

dotUltimate 2026.1 delivers ReSharper for VS Code as a generally available tool with full solution exploration, build optimization, and code quality features. The release introduces AI agent integration through ACP registry with Claude and other agents, next edit suggestions, and BYOK support for custom models. Key additions include Unity profiler integration, NuGet package manager console, Git worktrees, and a .NET disassembler plugin.

AI-Generated Notes

These notes were generated by AI and may contain inaccuracies.

The release party experienced a short delay due to technical issues. The event features confetti for a festive atmosphere. The session is recorded on YouTube, allowing viewers to watch live or later. Questions can be submitted in the chat for live or direct responses. The hosts include Matt, Rachel, and Michelle, who joins later for AI-related content.

ReSharper has been available in Visual Studio for 21 years and is now released for VS Code and compatible editors including Cursor and WinSurf. The extension is available through the VS Code extensions marketplace and the open VSX registry. It is included with .NET Ultimate subscriptions and is free for non-commercial use, matching Rider's licensing model. This enables students, hobbyists, open source contributors, and content creators to access the tool.

ReSharper provides a solution explorer supporting SLN, SLNX, and SLNF files with solution folders. The tree view displays error and warning counts for projects and files. Users can create new files using templates for classes, interfaces, and structs. The explorer shows NuGet packages, project references, and source generators. Package management includes installation, version selection, and updates directly from the interface.

An outline view displays types and methods for navigation within files, supporting both C# and Razor files. Project build operations use ReSharper Build, which optimizes compilation by only rebuilding projects when API changes occur. The system performs faster up-to-date checks than MSBuild by leveraging IDE knowledge of file changes. Test integration allows running unit tests with pass/fail indicators and error display.

ReSharper Build was originally developed internally for managing large solutions efficiently. It understands when private implementation changes don't affect public APIs, avoiding unnecessary rebuilds of dependent projects.

ReSharper can coexist with Microsoft's C# Dev Kit, though the tools may overlap in functionality. The recommendation is to use one or the other rather than both simultaneously. ReSharper provides unique value across all VS Code-compatible editors, including AI-based editors where C# Dev Kit is unavailable.

Debugging support is planned but not yet implemented in the current release.

Quick fixes address unused directives, collection modification issues, incorrect ordering operations, and culture-specific string handling. The tool suggests using invariant culture when appropriate and automatically adds missing using statements.

Common code detection enables extraction of duplicated logic. Primary constructor suggestions help modernize code to current C# standards.

Post-fix templates allow writing code by focusing on data and logic rather than syntax. Typing "service.inject" generates dependency injection through the primary constructor. Similar patterns work for foreach loops on collections and boolean condition checks. StringBuilder creation uses "StringBuilder.var" as a shortcut.

The templates reduce hotspot stops during code generation by inferring naming conventions automatically.

Statement movement allows reorganizing code blocks. Parameter hints display available overloads during method calls. Completion supports initial letter search for types like CancellationToken. Smart completion replaces "Count" with "Length" when appropriate for the context.

Typing assistants handle automatic placement of braces, commas, and semicolons. Razor, Blazor, and XAML files receive inspection and completion support.

Alt+Enter serves as the default shortcut for quick fixes following a recent update that eliminated the need for manual remapping. Expand and shrink selection uses VS Code's native shortcut enhanced by ReSharper's semantic understanding of code blocks.

Michelle Frost, AI Advocate at JetBrains, joins to discuss AI features. The presentation covers three main AI-related topics relevant to .NET developers. AI assistance helps developers work faster while augmenting rather than replacing human coding capabilities.

MCP (Model Context Protocol) was originally created by Anthropic and is now industry-owned. The protocol enables standardized communication between AI models and development tools.

The protocol enables standardized communication between AI models and development tools. The Linux Foundation created ACP, short for Agent Client Protocol, to give models and agents access to external tools and data. ACP was created by JetBrains and Zed to solve the issue of how agents connect to IDEs and codebases. It serves as an open standard for connecting agents into editors and IDEs.

With this release, the ACP registry was opened up into Rider. The OpenAI Chat plugin, also known as AI Assistant, provides access to several agents including Genie (JetBrains internally developed AI assistant), Claude, Codex, and Cursor. The ACP registry can be browsed through AI Assistant settings by navigating to agents.

The registry includes popular agents like Claude, Goose, Gemini CLI, and Mistral's Vibe. The platform is designed to be open without locking users into specific vendors, providing choice for developers.

When interacting with an AI agent like Claude, the system provides a UI explaining what the agent is doing, including thinking processes, repo structure exploration, and task breakdowns. The agent can explain which files it's reviewing. When asking for explanations rather than action items, the agent returns information like text stacks and services to help users understand massive repositories without manual digging.

Switching between chat and agentic coding clears the message history since context becomes irrelevant. The chat interface requires deciding which files the chat has access to.

The chat interface provides access to tier one models. The AI Assistant team works behind the scenes with top AI companies to ensure models are available as soon as they're released on other platforms. A brain icon indicates reasoning models, while another icon shows support for images. GPT-5 supports image uploads, allowing users to drag Figma designs or images into the chat for front-end work.

Users can create an assets folder in their repo with version names to track design changes over time. The diamond symbol indicates high-cost models, as expenditures are driven by external parties.

A new section called OpenAI Compatible provides access to models from Cohere, Minimax, Quan, Deep Seek, Meta, and others. These come from third-party AI providers through BYOK (Bring Your Own Key). Using Hugging Face's inference provider with a personal access token allows pulling the latest open-source models from Hugging Face.

ZAI's GLM 5.1 model, released the previous afternoon, became the hottest state-of-the-art open-source model, ranking number three on SWE bench and beating Gemini's latest model.

ACP registry agents run through JetBrains initially unless using BYOK. Claude integration was built before ACP existed and currently works through the JetBrains subscription. Anthropic's terms of service are restrictive regarding API usage. Other ACP agents allow bring-your-own-key authentication without requiring a JetBrains AI subscription.

Users don't need an AI subscription for the UI to work, allowing addition of their own models for AI chat and agents through ACP. The subscription provides access to top-tier models with the ability to swap between them or bring your own key.

Next edit suggestions, similar to Cursor's feature, was released with this version. When using models like ZAI's latest release, the system integrates with the MCP server. Next edit suggestions combine cloud models, small local models, small language models, JetBrains' local models, and refactoring actions inside the IDE.

The feature captures intent rather than just providing code completion. It can fix errors in tests, jump around files beyond line-by-line suggestions, and handle complex refactoring scenarios. When renaming functions across 20 instances, it shows diffs at the bottom of the screen with line-by-line changes across files, including string instances of names.

Melon is JetBrains' own LLM for completion, released almost exactly a year ago in mid-April. It has grown into a family of models.

Claude can be used as an agent via ACP. The integration currently works through the JetBrains subscription rather than bring-your-own-key. For other ACP agents, users bring their own authentication without needing a JetBrains subscription.

Users can use their own MCP server as an additional option. More agentic features outside the JetBrains-driven ecosystem are coming soon.

There is no specific feature for vulnerability search in code through AI, such as SQL injection detection. Observability is one of the biggest conversation pieces in AI coding across the industry. The entire industry is working on solutions for keeping humans in the loop and informed, with expectations of solutions coming soon.

Rider supports file-based programs that can be run without loading full projects. The What's New page includes a link to create a file-based program with sample links. When clicking sample links, files open and packages like Inspector.Console are downloaded automatically. Debugging works with breakpoints, and the monitoring window shows CPU and memory usage.

An inspection warns against calling constructors that exist but will fail at runtime, which previously required a source generator to detect. Extension members can now be consolidated from individual scopes into a single block.

HTTP client creation receives a warning when newing up HTTP clients in methods, recommending placement in fields or use of HTTP client factory. An inspection can find similar issues across solutions.

A new setting configures whether to use string.Empty or empty string literals, with the ability to clean entire codebases. The preference is for string.Empty to avoid red text indicating potential magic strings.

The default JetBrains Rider theme remains preferred despite consideration of alternatives. The presenter considered changing themes due to frequent audience questions about fonts and themes but did not find alternatives that were preferred.

The NuGet package manager console was added to Rider, available in two locations: the terminal window and the NuGet package tool window. The terminal window includes selectors for package source and target project selection. Completion support is available, with commands like "add migration" for Blazor app projects. The console automatically opens generated files when executing commands. A considerable number of users requested this feature. Based on installed projects and packages, the console provides extended completion including automatic discovery of CMD commands.

The what's new page includes filtering capabilities for different update categories. Game development projects trigger display of relevant game dev highlights including mobile development support. For Unreal developers, the expression evaluator for the debugger was rewritten. Unreal contains numerous C++ types that are difficult to examine in debuggers, and NatVis expressions for simplifying these views can be complex. The rewritten evaluator achieves up to 87 times faster performance. A blog post provides additional details on this improvement.

Unity profiler integration was added to Rider. The profiler window displays timeline data when the game enters play mode. Users can select individual frames to examine performance metrics, with a target of staying under 16 milliseconds per frame for 60 frames per second. The tree view shows time distribution across functions, with 20% of a frame attributed to an update function in the example. Double-clicking profiler entries opens the corresponding code and displays the call stack. A dedicated tool window shows all profiler data with frame navigation capabilities.

The integration brings Unity profiler data directly into the code editor. Selecting high-duration frames (800 milliseconds in the example) reveals call trees showing scene updates and behavior updates. Double-clicking entries navigates to the source code. The editor gutter displays performance metrics including CPU usage, garbage collection allocation amounts, call frequency, and average execution times. Line-by-line analysis shows specific lines consuming 8 milliseconds. The profiler integration works automatically without additional configuration.

Git worktrees are supported in Rider. Right-clicking on a branch allows creation of a new work tree from main. Worktrees provide a second checkout of a repository without requiring a second .git folder, enabling parallel work on multiple branches. This capability is particularly useful for agentic development workflows.

A new .NET disassembler plugin enables viewing of native assembly code. The plugin complements existing IL viewing capabilities. Installation occurs through the IDE's plugin system. The disassembler is useful for low-level performance profiling where developers need to examine how IL code is JIT-compiled. The feature is considered niche, primarily relevant for developers attempting to optimize code at the nanosecond level.

Key features highlighted include the NuGet package manager console, ReSharper for VS Code reaching general availability (included with .NET Ultimate license and free for non-commercial use), AI features with bring-your-own-key support and ACP registry for custom agents, Unity profiler integration, Git worktrees support, and the .NET disassembler plugin. Additional updates are available on the what's new page.

Keep JetBrains in your library

Save the videos and channels worth coming back to, and find them again in one place.