The first public preview of Visual Studio 2019 was tossed to developers on Tuesday at Microsoft's Connect(); 2018 event. The Register took it for a spin to see what was up.
The law of diminishing returns means... not much. Visual Studio has, after all, been evolving for the best part of 21 years. However, that has not stopped Microsoft trying to teach the old dog new tricks.
So, about that Start Window Experience
For developers coming to the platform from the 2017 edition, the most in-yer-face change is what Microsoft calls the new "Start Window Experience". Whereas before, devs would be dropped directly into the IDE, with the start page open, they now face a "streamlined launch experience".
Microsoft reckons this will mean devs can get started more quickly, and the big window gives coders access to their most recent files, or some big buttons to clone or check-out code (GitHub and Azure DevOps get name-checks, obviously), manually track down files or create something new.
Now those are some big buttons
It seems like change for change's sake, although there is benefit in bringing common workflows, like cloning a repo, front and centre. Muscle memory, however, requires selecting a much smaller "continue without code" option to drop into the warm embrace of the familiar IDE and start page of old.
The IDEs of December
The IDE has, however, altered ever so slightly. The menus have moved up to the title bar, releasing space for code. But the most obvious change comes when creating a project. The New Project dialogue, with its familiar tree of project types, has been replaced by an entirely new window consisting of a filterable list.
The change is a tacit admission by Microsoft that the number of things a dev can do with Visual Studio has become unmanageable. More annoying is the wizard approach, which Microsoft insists "allows you to concentrate on one decision at a time".
The wizarding world of creating Visual Studio 2019 Projects
Having to flick through pages to create a project seems like a step backwards.
Once in, it is very much business as usual. The interface has received some polish and the default blue theme is easy on the eye (although the app does appear to entirely ignore the dark mode setting in Windows at present). The IDE also includes Per-Monitor awareness, meaning that the shell and editor windows should be DPI-aware and render without fuzziness. The functionality is experimental, and I found it a bit hit and miss, but a welcome step nonetheless.
The search functionality of the IDE is a good deal quicker than its predecessor (certainly when compared side by side) and better at dealing with fat-fingered typos, although by attempting to show more information in the results, Microsoft has effectively halved the content shown in the list, which is a shame.
A Document Health indicator has been added to give devs a discreet reminder of how rubbish their code is (in my case, at any rate) and clicking it opens a refreshed Code Cleanup dialogue, the options of which users will recognise from Visual Studio 2017.
There is also bad news for those still clinging on to elderly extensions. The V1 incarnations, which appeared with Visual Studio 2010, are now no longer supported.
Mind your language
Python has also had an overhaul, with a new Add environment dialogue that simplifies adding a new virtual or conda environment. Alas, the VS 2019 installer does not dump a full version of Anaconda on your system, and you will need to install it manually.
Microsoft's bread-and-butter tools have also received a polish, although you'll need to download the .NET Core 3 SDK if you want to create projects using it. And Microsoft would like you to do just that. Otherwise the tweaks are mostly cosmetic, such as more refactoring options (for example, converting a local function to a method).
Mobile developers see some love with useful new Xamarin enhancements. The Android Designer has finally acquired the much-needed ability to drag and drop directly from the toolbox to the source editor to build app layouts. File that one under the category of "now I've used it, I couldn't imagine life without it". It's the little things that make me happy.
The visual approach continues with Xamarin.Forms, where changes to a property panel should immediately hit the XAML. For the "most common attributes", according to Microsoft.
The much-vaunted build performance increases for Android apps are present and correct, with my simple "Hello World" app being decidedly snappier. As for it being "faster than grabbing a cup of coffee", I can confirm that my tiny app took less time to build than pouring a pint of delicious beer.
If you're lucky enough to have the 1809 update of Windows 10 (and if you're contemplating having a play with a preview version of Visual Studio, you probably enjoy life on the edge), then the performance of the Android emulator on Hyper-V has been improved.
Windows Phone developers, alas, have had their emulators stripped from Visual Studio entirely. While they can still be downloaded, the message is clear: move on.
It looks like you’ve forgotten how to code, do you want some help with that?
Also making an appearance, albeit in extension form, is IntelliCode, which first made an appearance back at Build 2018 earlier this year. The vaguely creepy, AI-powered assistant is effectively a smarter version of IntelliSense, learning from a library of open-source GitHub repos and now a dev's coding style to improve the context of its suggestions.
In Visual Studio 2019, Microsoft has added support for C++ and XAML alongside the existing C# support. And the thing has got cleverer, training itself on your code to improve its accuracy. In use, it is at once handy, spooky and hilarious when something entirely inappropriate appears.
Microsoft is at pains to emphasise that models trained on open source projects don’t collect any user defined-code. Models are trained on the user’s own code work from what Microsoft describes as "the minimum" needed by its cloudy servers to create the thing, and the gang at Redmond state the models are secured.
And, of course, if the idea of Microsoft’s all-seeing AI scanning your code makes you jumpy, well, you don’t actually have to use it at all.
Integration between Visual Studio's Team Explorer and Azure DevOps has been tightened up, as expected with improvements around viewing and editing work items. However, support for Project has been dropped from the plug-in "due to a low adoption rate in Azure DevOps". Those affected are going to have to manually export work items into Excel and then paste them into Project from there.
Just like the old days.
PowerPoint support has also been dropped from the Team Foundation Server Office Integration plug-in, meaning storyboards will need to be manually created in PowerPoint and linked manually to work items in Azure DevOps. Thankfully, not everyone loves a presentation.
Overall, Visual Studio 2019 is not an earth-shattering release. The IDE is snappier, tidier, with more space for code and thoughtful tweaks to the user experience that developers will mostly like (if they find them).
The new start experience will, however, take some getting used to. ®