Visual Studio 2022 and .NET 6
On the first day of the .NET Conf 2021, the GA release of Visual Studio 2022 and .NET 6 was announced. Here are some highlights that were presented during the conference and the blog.
Visual Studio 2022
Fonts
A new font, Cascadia, and updated icons were introduced to the new version of VS. Cascadia comes with different weights and two styles: Mono and Code. Code has provided the ability to express two or more characters as a single unit, ligatures. This mainly affects the appearce of logical operation characters such as >=, <= and <>.
Other updates related to fonts are tied to the dark theme mode: new colours which reduces eyestrain, improve accessibility, and provide consistency with Windows dark theme.
Debugging
Moving the cursor within the left margin of the code view allows a dot to show up, which provide different types of breakpoints to add to that specific line of code: Conditional, Tracepoint, Temporary, and Dependent.
Editor
New features were added to the editor: Subword navigation, inheritance margin, and underline reassigned.
IntelliSense
This is now available for preprocessor symbols. Additionally, optional features such as inline parameter name hints, adding missing imports on paste, and inline diagnostics were added.
Refactoring
LINQ expression can now be simplified, for example, Where/Any methods can be slimplifed to just Any when possible. Methods within classes that were Shared, will now be Static. Also, the Generate Overrides dialog now offers a text box to filter methods.
WinForms and WPF applications
New event ApplyApplicationDefaults added in .NET 6.0 projects. This event allows you to set application wide values that must be set before any forms or controls are created: Font, MinimumSplashScreenDisplayTime, and HighDpiMode
C# init properties support
In Visual Basic 16.9, a new featured called init properties was added to indicate that a property is immutable after the constructor completes.
Hot Reload
Hot Reload allows you to change your code without stopping at a breakpoint. Simply make the change in the code and hit "Hot Reload" to see the immediate change.
For more information on what features Microsoft will be working on for Visual Studio, see their product road map.
.NET 6
There are many highlights for .NET 6 that comes with the new Visual Studio 2022. Please see blog for details.
Use the Upgrade Assistant to help migrate your project to the .NET version of your choice. There are some known issues with .NET 6, such as "Remove unused refereces" in the Solution Explorer right click dialog is not recognized for some package references, the .editorconfig dialog currently does not include settings that are language specific, and the <ApplicationDefaultFont> in .vbproj is currently ignored.
*We (Optimizely) are currently working on support for .NET 6, and it looks like a trivial upgrade which won’t require any significant work for Optimizely customers, but as always, the devil is in the details. Our goal is to add support for .NET 6 with no breaking changes in Optimizely CMS or Commerce in spring / summer 2022.
There are large performance gains with VS 2022's move to x64 architecture. Especially noticable when working with large solutions. So far I've been really impressed.
Hey Patrick!
Thanks for sharing.
We are about to head on a journey and developing a brand new website on CMS 12 for a customer. Currently they are using CMS 11, latest minor version and have some own common libraries on the ASP.NET Framework.
Knowing the common lib has to be adapted to .NET 5 to be able to run on CMS 12, and given the end-of-support date for .NET 5 (May 2022) how is the more detailed time plan for .NET 6 on DXP and in Optimizely SDK?
Do you se any issues with the end-of-support date compared to the planned rollout for .NET 6?
Hi Jonas,
Since we are still focusing on completing the migration to .NET 5, we haven't worked out the detailed schedule for .NET 6 updates yet. Understanding that .NET 6 apps can reference .NET 5 assemblies, unless using .NET 6 specific features, there's no issues that we know of as of today until we start testing support for .NET 6.
I've reached out to our internal team to double check and see if they have more information they can provide.
Cheers.
Hi Jonas,
Following up after having a conversation with our internal team, and as I've assumed, they cannot provide a definitive answer until there's more research and testing done for .NET 6 support.
Please note that our team have already started looking into it and there are on going discussions on what the plan is for .NET 6 support.
Cheers,
Pat