Revamped Project Properties UI
In Visual Studio 2022 we are improving your experiences around navigating and modifying your project’s properties. The world of .NET is in a very different place than it was a few years ago. With a growing diverse user-base and increasingly cross-platform projects, we decided that the Visual Studio project properties were due for a much-needed re-vamp.
We want to share with you some improvements in the following areas:
- Theming and UI Updates
- Property Evaluations
- Improved Conditional Configurations
This new project properties experience is turned on in our latest preview for C# SDK style projects. The new UI will become the default in the official Visual Studio 2022 release.
Visual Studio Theming:
Immediately upon opening your project’s properties you will notice our revamped, modern, and fresh new UI.
The new look is not just intended to be pleasing to the eye, but you’ll also find that we designed it to highlight important and commonly used properties. This will make it easier for you, whether you are new to Visual Studio of have been using Visual Studio for a long time, to find exactly what you are looking for.
A request that we frequently heard was for the project properties to match theming with the rest of Visual Studio. The previous project properties UI was outdated and did not match the more modern look of the rest of the editor.
The last time we updated the look of the project properties UI was before you had the ability to change the Visual Studio theme! Because of this, an obvious flaw of the old UI was the lack of appropriate theming to match the rest of Visual Studio. The good news is that with the new Project Properties, you can use dark mode in peace! The new project properties will match the theming that you have chosen for the IDE without distracting bright UI elements unexpectedly popping up during your workflow.
Search and Property Discoverability:
Another highly requested feature, one that will make life easier for new and experienced developers alike, is the search function in the project properties. Just search for any property or value and your search term will be highlighted in the UI and you will be able to locate and edit the field immediately.
Previously you would have to sift through the various tabs in the properties dialog to find the property you were looking for. Search now simplifies this process. The ability to search for a specific property allows for clean new UI which seamlessly scrolls between tabs so that you no longer need to open multiple windows and switch from tab to tab to locate a property field.
As before, property changes also automatically save to the project file when your code is run, so there is no need to hit a save button before leaving the page. This way, complex property changes will not be lost if you navigate away prematurely.
In this new update we have streamlined the project properties to be property-centric and distilled the UI down to its essential components. As a part of this effort, the launch profiles editor been moved to its own UI where it will be easier for you to manage many profiles at once.
When originally designed, the project property pages were created as a central place for generalized configuration of one’s project. However, the complexity of launch profiles continues to scale up, with most developers adding and deleting profiles and utilizing multiple configurations. It became necessary to reconsider what fit into the project properties experience, and we ultimately concluded that it was time that launch profiles deserved its own dedicated UI outside of the project properties. Long term we believe this will be a clearer experience for users. We are working on intuitive gestures to launch that UI directly to improve Launch Profiles discoverability. In the meantime, the Launch Profiles UI can be accessed by Debug >MyProject Debug Properties at the bottom of the drop-down or by clicking the drop-down on the left of the start-up projects in the toolbar.
For discoverability within the project properties, for your convenience, the Launch Profiles dialog may also be accessed via the hyperlink in Debug Settings in the Project Properties.
The new project properties UI also displays evaluated property values. Properties for which there is an evaluated value will show the evaluation underneath in shadow text, differentiating it from the property labels surrounding it.
This change makes it much easier to understand evaluated values without having to spend time debugging or unnecessarily jumping through code. We have done our best to enable you to fix issues quickly by making all the information you will need available and simple to discover in the project properties UI.
Conditional Configuration Improvements:
The last exciting feature we want to highlight is improved conditional configurations. There are multiple dimensions across which a project in Visual Studio may be configured: Configuration (e.g. debug/release), Platform (e.g. AnyCPU, x86, ARM), and target framework (e.g. .NET Framework 4.8, .NET Standard 2.0, .NET 6). It’s now possible to specify property value along any of these dimensions — a given property may vary its value by configuration, platform, or target framework.
To support this complexity, we have made it much easier to keep track of these configurations and see how properties vary. Previously you would have to toggle configurations in the drop-down list and monitor for values that changed. This made it difficult to tell if a given configuration applied to all conditions or just one without going through all of them manually.
Now if you want to have separate configurations for debug or release builds, for example, you no longer must change them in separate windows and toggle between the conditions to view the setting for each conditional configuration. For properties for which this type of configuration is possible, such as in the screenshot below, hovering over the little gear icon in the top left corner gives the option to vary the value by configuration. Selecting this option will add fields where you will be able to edit the property value for each configuration, in this case, for both debug and release builds.
Our new UI enables you to see if there are conditional configurations with just a glance at the project properties. It is also much clearer what the value is for a given configuration. You may continue to add conditions directly in the code itself, which will be reflected in the UI after saving.
What do you think?
As always, we appreciate you taking the time to check out what we have been working on, and we are very excited to finally share out some of these long-awaited changes.
One of the things we are most excited about is that our new data-driven UI will allow us to add value to our customers faster and react more quickly to changes in the platform. Now we will be able to easily ship new updates and react more swiftly to customer feedback.
If you haven’t looked at your project’s properties in a while, give them a look in this new experience, search around, see the evaluated values, and more! Then let us know what you think!