Microsoft releases Visual Studio 2022 with several new improvements
12 min. read
Updated on
Read our disclosure page to find out how can you help MSPoweruser sustain the editorial team Read more
Microsoft today announced the general availability of Visual Studio 2022. This GA version of Visual Studio 2022 comes with a go-live license, for production use.
Key features in Visual Studio 2022:
64-bit
- devenv.exe is now 64-bit only
Azure Cloud Services
- Azure Cloud Service (classic) and Azure Cloud Service (extended support) projects are now supported.
- The v143 build tools are now available through the Visual Studio installer as well as the standalone build tools.
- The new Hot Reload experience is now available to native C++ applications when running under the debugger. It supports both MSBuild and CMake projects. For more information see our Hot Reload section below.
- You can now build and debug natively on WSL2 without establishing a SSH connection. Both cross-platform CMake projects and MSBuild-based Linux projects are supported.
- Visual Studio now supports the
buildPresets.targets
option in CMakePresets.json. This allows you to build a subset of targets in your CMake project.- The Project menu in CMake projects has been streamlined and exposes options to “Delete Cache and Reconfigure” and “View Cache”.
- CMake Overview Pages have been updated to support CMakePresets.json.
- Implemented
/scanDependencies
flag for outputting C++20 module dependencies for CMake projects as described in P1689r3. This is a step towards support for building modules-based projects with CMake and we are working on completing this support in later releases.- You can now debug processes running on a remote systems from Visual Studio with LLDB.
- We have upgraded the version of CMake shipped with Visual Studio to version 3.21. See the CMake 3.21 release notes for details on what is available.
- LLVM tools shipped with Visual Studio have been upgraded to LLVM 12. See the LLVM release notes for details.
- The MSVC toolset now defaults to SHA-256 source hashing in debug records. Previously, the toolset used MD5 for source hashing by default.
- The Game development with C++ workload now installs the latest Unreal Engine with support with for Visual Studio 2022.
- Made improvements in C++ IntelliSense when providing navigation and syntax highlighting for types from imported Modules and Header Units.
- Improved C++ IntelliSense performance by optimizing cached header usage and symbol database access, providing improved load times to get into your code.
- The IntelliSense Code Linter for C++ is now on by default, providing instant as-you-type suggestions and fix suggestions for common code defects.
- Support for libfuzzer under the switch
-fsanitize=fuzzer
. See the documentation for more details.- We have improved null pointer dereference detection in our code analysis tooling.
- Code analysis now enforces that return values of functions annotated with
_Check_return_
or_Must_inspect_result_
must be checked.- Added support for
gsl::not_null
to code analysis.- Updated to NDK r21 LTS in C++ Mobile Development workload.
- C++ AMP headers are now deprecated. Including <amp.h> in a C++ project will generate build errors. To silence the errors, define
_SILENCE_AMP_DEPRECATION_WARNINGS
. Please see our AMP Deprecation links for more details.
- Attach to process dialog improvements
- Exception helper improvements
- Force Run to Click
- Memory Dump Diagnostic Analysis
- We have released a new type of breakpoint called Dependent Breakpoint, which allows you to configure a breakpoint to be enabled only if another breakpoint is first hit.
- We have added more updates to the Extrenal Sources node , you can now see the module under the sub-node “Modules without Sources” and load the symbols form solution explorer itself.
- Breakpoint Gutter improvements
- Temporary Breakpoint
- Drag and Drop Breakpoint
- External Sources Node in Solution Explorer
- Attach to process dialog improvements
Personalization
- Added Color Tabs for vertical and horizontal tabs
- Added Theme Pack and worked with VS Code theme authors to launch collection of custom themes
- Built Theme Converter to convert VS Code themes to work in Visual Studio 2022
- Added capability to sync Visual Studio theme with Windows theme
- Added new document management capabilities inclduding customizing tab width, bolding active document, and additional close button in docwell.
- Added subword navigation
- Autosave is now available as a preview feature
- Multi-caret copy/paste experience
- Removed APIs from Microsoft.VisualStudio.Language.Client assemblies
- VS SDK contains several breaking changes and Visual Studio 2019 extensions will not work in 2022. See VSSDK documentation for more information.
- VS SDK Reference assemblies are no longer installed to the
VSSDK\VisualStudioIntegration\Common\Assemblies
folder. If your build was relying on these assemblies, please migrate your project to use NuGet packages instead. For offline scenarios:
- Keep an in-org nuget feed from which to restore the nuget packages.
- Check in the binaries.
- Added ILanguageClient breaking change fixes
Cloud Services
- Azurite will be used for local emulation of Azure Storage instead of the older and no longer actively developed Azure Storage Emulator.
Git Tooling
- Multi-repo support under a preview flag for any Solution that spans different repositories (i.e. Solutions with projects hosted in different Git repositories)
- Publish to Azure DevOps is now fully supported in the create git repository experience
- Status bar enhancements including a new ability to view and open repositories from an empty VS and display a count of unpulled commits
- The overflow menu on the Git Changes window is now available for local only repositories with additional git operations
- Unified Diff toolbar containing the number of added/deleted lines and a discoverable configuration options
- Commit details enhancements including a more responsive and user friendly UI
Help Menu
- During 17.0 we have remodeled the Help Menu with Get Started material and helpful Tips/Tricks.
- Provides more collaboration with our development team by adding things such as access to Developer Community, Release Notes, the Visual Studio product Roadmap, and our Social Media pages.
- Hot Reload is now available to .NET developers through the Visual Studio debugger and without the debugger for many .NET 6 application types
- Hot Reload is now available to C++ developers when using the Visual Studio Debugger
For more details see the above link
IntelliCode
- Whole line completions predict your next chunk of C# code based on your current context, and presents it as an inline suggestion to the right of your cursor.
- Whole line completions are now compatible with the newest builds of JetBrains ReSharper. Note that updating the line completion context based on ReSharpers custom completions list item selection is not supported – if required, ReSharper users can opt to use Visual Studio native IntelliSense instead, as documented here
JavaScript/TypeScript
- We have released a new JavaScript/TypeScript project type that builds standalone JavaScript/TypeScript projects with additional tooling. You will be able to create Angular and React projects in Visual Studio using the framework version installed on your computer.
- JavaScript and TypeScript testing is now available in the Visual Studio Test Explorer
- NPM GUI available, so you can now download NPM modules the same way you download Nuget packages
.NET 6 SDK
- The .NET 6 SDK is included in Visual Studio 2022
- Introduce parameter refactoring can move a new parameter from the method implementation to its callers.
- Track Value Source for data flow analysis
- Option to underline variables that are re-assigned
- Added search option in Generate Overrides dialog
- Quick info for XML <code> tags now preserve whitespace and CDATA blocks
- Find All References window will now group multi-target projects
- Refactoring to remove repetitive types in Visual Basic
- Go to Implementation will no longer navigate to members with abstract declarations that are also overridden.
- Synchronize namespaces to match your folder structure from Solution Explorer
- Configure background code analysis from Solution Explorer
- Nullable reference types is now enabled by default for new .NET projects
- C# 10.0 File-scoped namespace refactoring
- Navigate to decompiled sources is now on by default
- Refactoring to prefer null check over type check
- XML comments will now automatically generate an
<exception>
tag when a method explicitly throws exceptions- Inheritance Margin is now enabled by default
- C#10
- Reduced UI freezes and improved performance on solution startup
- Faster semantic colorization up to 2x in some solutions
- F7 (view code) support in Razor files
- Snippet support in razor files which will complete a snippet session with a single tab instead of pressing tab-tab
- Better formatting in @code blocks when there’s nested HTML and Razor Components
- Hot Reload support in Razor files
- Performance improvements
- Formatting and indentation enhancements
- New Razor editor colors
- TagHelpers are now colorized and have quick info classification support and completion tooltips
- Angle brace highlighting and navigation for Razor constructs
- Comments now have auto-completion, smart indentation, auto-inclusion of commenting continuations, and block comment navigation
- Very early experimental preview of enabling running tests on remote environments such as linux containers, WSL, and over SSH connections.
- Show in Test Explorer
- New versions of the test platform starting with 17.0 will not be able to run Generic tests and Ordered tests. These specific features only shipped as part of an early version of MSTestv1 and are not included in MSTestv2. We see very low usage of these features and ordered tests is now considered contrary to best testing practices.
- Some test experiences will not be available in 17.0 including creating new TestSettings files and the TestSettings editor. Test runs will still be able to use TestSettings files, however TestSettings was replaced with RunSettings and we encourage users to migrate improved performance and functionality. Read more.
- Web Load Test and Coded UI Test support updates. Coded UI Tests and [Web Load Tests](Cloud-based load testing service end of life | Azure DevOps Blog (microsoft.com) were officially deprecated in 2019. To minimize impact to users there is minimum support for these features in Visual Studio 2022. We strongly encourage users to move off Coded UI Test and Web Load Test.
Toolbox population for UWP Extension SDKs
- UWP Extension SDKs are now required to explicitly declare the types that they wish to appear in the Toolbox by listing them in their SdkManifest.xml file. The behavior of older versions of Visual Studio is unchanged; they will ignore the list of controls in the manifest and instead dynamically enumerate the control types in the SDK’s assemblies.
- We have revamped the “Trust Settings” functionality and can now show a warning whenever untrusted code (e.g. files, projects or folders) is about to be opened inside the IDE.
- Trust checks are now done at the solution folder level
- User created projects are automatically added to the trusted list
- Users can skip trust checks on temporary locations created by Visual Studio
Updates, LTSC’s and Deployment
- With Visual Studio 2022, there will be multiple simultanouely supported servicing baselines that will release in the fall and in the spring. For more details, refer to Visual Studio Release Rhythm documentation and the Visual Studio 2022 Product Lifecycle.
- The new installer that comes with Visual Studio 2022 now has the capability of configuring where the Visual Studio product should get its updates from. This allows you to choose updates from a different LTSC, or, if you’re in a managed enterprise environment, you can configure the client to get its updates from a layout. The ability to configure the source for updates is new functionality that comes with the Visual Studio Installer, and thus the behavior is applicable to downlevel versions of Visual Studio too, such as Visual Studio 2019. For additional information about configuring the update channel, refer to the Update Visual Studio documentation. For additional information about making this work for network layouts, refer to the Visual Studio Administrators Guide.
- IT Administrators can now report issues without having Visual Studio installed.
- The default icons have been updated and refreshed.
Web Tools
- The Publish summary page now has actions to start / stop remote debugging and profiling under the ‘…’ menu on the top right corner of the ‘Hosting’ section
- The Connected Services page now has an action to launch Storage Explorer
- The “ASP.NET Core Empty” template that comes with .NET 6 is using the new ‘minimal APIs’ paradigm for which we have started to add support
- Azurite will be used for local emulation of Azure Storage instead of the older and no longer actively developed Azure Storage Emulator.
- You can add authentication to your ASP.NET Core application using Microsoft identity platform through the Connected Services experience in Visual Studio.
WPF XAML Designer for .NET Framework
- The current WPF XAML Designer for .NET Framework is replaced with a new WPF XAML Designer for .NET Framework, based on the same architecture used for the WPF XAML Designer for .NET (.NET Core). The Visual Studio experience will look the same, but third-party control vendors need to support the new extensibility model since the previous model based on
.design.dll
andMicrosoft.Windows.Design.Extensibility
is deprecated. If you already created a.designtools.dll
extension for .NET (.NET Core), that same extension will work for the new WPF XAML Designer for .NET Framework. Please refer to the migration document below for further information about how to migrate to the new extensibility model.
- XAML Hot Reload Changes – Minor changes to in-app toolbar and settings
- XAML Live Preview is now available for WPF, UWP, WinUI and Xamarin.Forms developers running their apps in either Android Emulator or as a UWP desktop app. Live Preview captures a running applications user interface and brings it into a docked window within Visual Studio. This makes it easier to use XAML Hot Reload to change the app while seeing those changes inside Visual Studio itself, without the need to tab back and forth between the running app and Visual Studio while making live XAML code changes.
For more information click on the link above.
XAML Sample Data
- Design-Time Sample Data will now be added by default when creating DataGrid, ListBox, and ListView controls from the toolbox in WPF applications. To disable this behavior, uncheck ‘Automatically add sample data on element creation’ under Tools -> Options -> XAML Designer.”
- To learn more about Sample Data , please visit the Sample Data documentation.
Improved XAML binding experience
- We’ve made a bunch of improvements to make data binding fast and easy, such as quick access to the Data Binding dialog from Property Inspector, ability to set binding from Quick Actions, ability to choose the property to bind to inside the Data Binding Dialog.
For more information click on the link above.
Source: Microsoft
User forum
0 messages