Microsoft heeft versie 16.8 van Visual Studio 2019 uitgebracht, de versie die minimaal nodig is om met .NET 5.0 te werken. Deze populaire programmeerontwikkelomgeving beschikt over handige opties om het programmeren in onder andere Visual C++, Visual Basic, C#, F#, Python en R gemakkelijker te maken. De complete lijst met de veranderingen in de 2019-uitgave kun je nalezen in de bijbehorende releasenotes. Hieronder zijn de belangrijkste verbeteringen te vinden die Microsoft heeft doorgevoerd in versie 16.8:
F#:
C++:
- F# 5 is now released alongside .NET 5
- Performance improvements and fixes for Visual Studio tooling via F# Tools version 11.0.0
- Full release notes available on GitHub
Debugger:
- C++20 Coroutines are now supported under /std:c++latest and the <coroutine> header.
- IntelliSense now provides support for C++20 <concepts> and <ranges> headers, and rename and browsing for concept definitions.
- Our STL now has support for the majority of C++20 Ranges.
- Conditionally trivial special member functions are now supported in MSVC.
- C11 and C17 are now supported under the /std:c11 and /std:c17 switches.
- Additional STL improvements include full support for std::atomic_ref, std::midpoint and std::lerp and std::execution::unseq, optimizations for std::reverse_copy, and more.
- Upgraded version of CMake shipped with Visual Studio to CMake 3.18.
- Our code analysis tools now support the SARIF 2.1 standard: the industry standard static analysis log format.
- Missing build tools in Linux projects will now issue a warning in the toolbar and a clear description of the missing tools in the error list.
- You can now debug Linux core dumps on a remote Linux system or WSL directly from Visual Studio.
- For C++ Doxygen comment generation, we added additional comment style options (/*! and //!).
- Additional vcpkg announcements
- Compiler support for lambdas in unevaluated contexts
- /debug:full link performance improved by multi-threading pdb creation. Several large applications and AAA games see between 2 to 4 times faster linking.
- The Visual Studio debugger now has support for char8_t.
- Support for ARM64 projects using clang-cl.
- Intel AMX intrinsics support.
Experimental Razor Editor Updates:
- .NET Core Linux core dump debugging support
- .NET and .NET Core Auto Analysis
- .NET and .NET Core memory hot path auto analysis
Fakes with SDK Style Projects:
- Blazor light bulbs
- C# light bulbs
- Enhanced Razor formatting
- Rename Razor components in markup from .razor files
- Go-to-definition on Blazor component tag namespace
- C# hover colorization
- C# completion toolitip colorization
- Go-to-definition/implementation for Razor, including closed files
- Find All References in closed Razor files
- Improved Razor editing preformance and stability for large projects and solutions
Git Productivity:
- When using the new Fakes support for SDK style projects some users encountered the following error when generating shims
IntelliCode:
- Learn more about how to use all the Git features in our new online documentation
- Open the Git Repository window at any time through the Git Changes window, the View menu, and the Status bar
- Fetch, Pull, and Push from multiple remotes in the Git Changes window
- View success and error messages for Git commands at the top of the Git Repository window
- Create a new branch from an Azure DevOps work item
- Open a Git repository from a list of your local repositories in the Git menu
- The default source control provider is now Git instead of TFVC
- Single click to switch between branch histories in the Git Repository window
- View and select from a list of solutions in Solution Explorer after opening a repository
- Modify the history view and search for commits through a tool bar in the Git Repository window
- Fetch, pull, and push from the incoming and outgoing commits sections in the history graph of a branch
- Get prompted to create a pull request after pushing a branch to your remote
- View branch names in the merge and rebase commands in the branch list context menu
- Access Git commands through the context menu in Solution Explorer and the Editor
- Observe clone progress through a new modal dialog with the option to move the process to the background
.NET Productivity:
- Get personalized IntelliCode completions in Visual Studio documentation
- Keep your IntelliCode completions up-to-date with your codebase and share as part of your team's CI workflow documentation
Visual Studio 2019 IDE:
- Roslyn analyzers are now included in the .NET 5.0 SDK
- Refactoring that introduces the new C# 9
not
pattern matching syntax when a suppression operator is present- Inline method refactoring to help replace usages of static, instance, and extension method within a single statement body
- Code fix to convert instances of
typeof
tonameof
in C# andGetType
toNameOf
in Visual Basic- C# and Visual Basic support for inline parameter name hints that inserts adornments for literals, casted literals, and object instantiations prior to each argument in function calls
- Refactoring that extracts members from a selected class to a new base class in both C# and Visual Basic
- Code cleanup has new configuration options that can apply formatting and file header preferences set in your EditorConfig file across a single file or an entire solution
- Code fix to remove the
in
keyword where the argument should not be passed by reference- Refactoring that introduces the new C#9 pattern combinators and pattern matching suggestions such as converting
==
to useis
where applicable- Code fix to make a class abstract when you are trying to write an abstract method in a class that is not abstract
- IntelliSense completion in DateTime and TimeSpan string literals automatically appear when the first quote is typed
- Code fix to remove unnecessary
pragma suppressions
and unnecessarySuppressMessageAttributes
Rename
andFind All References
understands references to symbols within the target string of globalSuppressMessageAttributes
- ByVal fades to say it's not necessary along with a code fix to remove the unnecessary ByVal in Visual Basic
- Interactive window support for multiple runtimes, such as .NET Framework and .NET Core.
- Added a new RegisterAdditionalFileAction API that allows analyzer authors to create an analyzer for additional files.
XAML Tools (WPF, UWP, & Xamarin.Forms):
- Add your Github account using the account management experience
- In this release, the legacy Find in Files experience has been deprecated and all users are being moved to the new experience. The Editor team is working with folks who leave feedback in Developer Community who are experiencing issues with the modern Find in Files experience.
- The ClickOnce publish provider is now available for .NET Core 3.1 and .NET 5.0 Windows Desktop Apps.
JavaScript/TypeScript:
- XAML Binding Failures diagnostic improvements
- XAML Hot Reload Settings moved to "Debugging > Hot Reload"
- Toolbox population from unreferenced NuGet packages
- The JavaScript/TypeScript debugger now supports debugging service workers, web workers, iFrames, and your page JavaScript all at the same time! In addition, the new debugging experience adds support for debugging your back-end node server applications and client-side JavaScript in the browser simultaneously. This feature is still experimental. You can enable the new debugging experience in the Debugging options menu
- You can now trigger refactors anywhere they might be available by using the code action shortcut (ctrl + .). You don't even need to select any text - TypeScript is now smart enough to look around your cursor location for the best available refactors!
- You can now fine tune which packages TypeScript searches for automatic import completion. This can lead to performance improvements in some projects with a lot of dependencies. For more details, please reference the TypeScript 4.0 (release notes)[https://www.typescriptlang.org/docs/handbook/release-notes/typescript-4-0.html]
- We added a message in the output pane showing which types we install to support intellisense. We recommend adding a tsconfig to your project to customize which types are used.
- Please note we include the TypeScript 4.0 compiler and language service