The best new features in Visual Studio 2019 (and Visual Studio 2019 for Mac)
Visual Studio is not only one of the oldest IDEs around, having launched in the late-1990s, but it is also one of the most popular. Chances are, if you ask developers what they use, Visual Studio will be among the top answers. And, for good reasons: it is a mature, powerful and versatile IDE that is used across the globe to create websites, desktop software, mobile apps and games in a number of popular programming languages, like C# and C++.
And, every couple of years, Microsoft gives it a major update to add new features, refine existing ones and make it look more modern. This year is no different, as it introduces Visual Studio 2019 -- and, for the first time, a Mac version is ready to go from the start as well. Here are the biggest changes that are coming with it.
New user interface
The user interface has been updated in Visual Studio 2019, with a new startup menu showing right after you launch the IDE. With its predecessor, you would get straight to the main interface, where you'd be typically greeted with a startup tab containing the list of most-recently-used projects. This makes Visual Studio 2019 feel faster initially, as it only has to load a lighter menu as opposed to the fully-fledged interface.
You can still open any of your recent projects from the startup menu, or none at all if you just want to dive right in, so it is not actually a major departure in terms of functionality from this point of view. However, what is interesting, and pretty nice to have, is the option to check out an existing project from a repository or create a new project, which Visual Studio 2017 did not expose right away. With Microsoft embracing Git, and heavily promoting GitHub, having the former there is to be expected.
In other areas of the IDE you are unlikely to notice changes as major as this. However, there is a new icon which looks more modern, the blue theme is changed slightly to make it feel more fresh (and blue), the top menu takes up less space vertically, so you have more available for your code, and the notifications are more tightly integrated within the UI.
Are the changes drastic? Well, no. Microsoft wanted to make Visual Studio 2019 feel more modern, but at the same time it strived to make it feel familiar to those who are coming from a previous version. Feedback has been extremely important here, helping the company strike a good balance between looks and usability. The changes to the blue theme especially have triggered a lot of responses from developers, which Microsoft took to heart.
Visual Studio users wanting to clean up their code and maintain a consistent style have typically had to rely on third-party tools like ReSharper, which can automatically apply their preferences using just a single shortcut or two.
With Visual Studio 2019, Microsoft is trying to close that gap. The Code Cleanup functionality, which can be triggered using a keyboard shortcut or via a lightbulb menu, lets users remove and sort using statements, apply type preferences, inline "out" variables and more in a single go.
Users can pick and choose what sort of options they want to trigger and how it will be enforced. For instance, type declaration can be configured to be implicit (using the
var keyword) or explicit (like, for instance,
List<string>). Or you can choose to go for an expression-style body, instead of block body for, say, properties. It's your call.
The code cleanup functionality represents a major step up over what Visual Studio 2017 has to offer, but is it good enough to replace an extension like ReSharper? Well, not quite. But, for folks who do not have such an extension available at their disposal, they'll certainly love that it's there.
Microsoft has improved the search functionality in Visual Studio 2019 to make it easier to find what you are looking for. The biggest improvement is available when debugging, as the IDE now gives developers the option to search through objects while debugging, in up to 10 levels of nesting.
This should make it easier to find, for instance, which index is the object that contains "fileforum" in its Name property, as shown above. What's more, Visual Studio 2019 will automatically highlight the objects that match the search criteria, which should make finding what you are looking for easier than before.
.NET Core 3 support
When .NET Core 3 launches later this year, Visual Studio 2019 will support it out of the box. In fact, according to Microsoft, it will actually be the only version of the popular IDE to do so. Visual Studio for Mac (presumably in its 2019 guise) and Visual Studio Code also make the cut, in case you would like to try the new framework on a different platform (or prefer a lighter editor).
What's more, in Visual Studio 2019, .NET Core 3 (and higher) will enable access to a pretty interesting new feature. Microsoft has introduced support for setting data breakpoints, which basically means that a breakpoint will only be hit when the property you want to inspect -- like a collection's Count -- changes.
This is a feature that was only available to C++ developers and it can be accessed by right-clicking on the property in, say, a Locals window and enabling the respective option. Microsoft says that it's not available for properties that you cannot expand, static variables, classes that have the DebuggerTypeProxy attribute or fields that are inside structs.
Multi-monitor setups are great, as they make development easier, but they are not without fault. When you mix and match scaling settings, or just go above 100 percent, you run into what many folks call blurry or fuzzy text.
What happens is you'll often end up with text that looks great on one monitor but terrible when you move the window onto another that is configured differently. Or it may look bad across the board. The workaround for this can be to have the scaling down to 100 percent, which makes text look sharp across all monitors. However, the downside is that it can become unreadable on a high-resolution monitor.
The solution? Optimize the program to take these settings and hardware capabilities into account. With Visual Studio 2019, Microsoft is taking a step in the right direction, introducing an option to optimize the rendering for these kind of setups. It's a feature that is dependent on having .NET Framework 4.8 installed though, as otherwise it'll be grayed out in the Options menu.
Based on my experience with it, this feature still needs work to render text as sharp as I'd like them to be on my multi-monitor setup. However, as Microsoft notes, this is a work in progress, so it's likely to continue well after Visual Studio 2019 launches. Hopefully, it will not take too long before all major areas of the IDE are optimized for it.
Mac version gets some love too
After all this talk about Visual Studio 2019, it's time to give Visual Studio 2019 for Mac some attention too as it comes with its own set of noteworthy changes to make developers accustomed to its Windows brother feel more at home. As you might expect, that starts with the user interface, which welcomes users with a similar start menu.
There is also an updated coding editor, which shares its core components with Visual Studio for Windows, that has a new interface. It is available as a preview, which means that it is not yet ready for prime time, and it only supports C# files for the moment. But, it looks to be a big step forward in terms of usability.
A I-wonder-what-it-took-so-long addition is the option to open multiple instances, which should make it easier for developers to work on two or more solutions at the same time. Needless to say, this feature has been present in the Windows version for ages and many, myself included, have missed it while working on their Mac.
Speaking of having multiple things open, Visual Studio 2019 for Mac also lets you set multiple startup projects. This should come in especially handy if you have a larger-scale solution where projects depend on one another to work.
The list of changes also includes the switch to the Unity debugger from the Windows version, support for Azure DevOps (or, as it's been known before, Team Foundation Server) and Microsoft Account authentication with Git. Last, but not least, you have update detection for Azure functions templates.
What we don't have yet at this stage is support for .NET Core 3 -- not even in its preview form. That's said to come when it launches, so if you want to use the open-source framework in the meantime you'll have to make do with Visual Studio Core or use Windows. However, it'll work nicely with .NET Core 2.2, which is the latest stable version available for now.
Should you upgrade?
If you have the option to move to Visual Studio 2019, whether you're on Windows or Mac, you should install it right away to familiarize yourself with it and switch when you think it's stable enough for your needs. This version of the longstanding IDE is really good, thanks to all the nice changes Microsoft has introduced throughout. Upgrading is a no brainer.