SHARE

Getting ready for the next major Visual Studio release and integrating new developer services like Codespaces and GitHub Actions.

A lot of different things get announced at Build, it’s Microsoft’s main developer conference, so it was no surprise to see Scott Guthrie highlight that the number one driver for business performance – according to the new McKinsey Developer Velocity study is having the best developer tools.

Build 2020 saw the general availability of Visual Studio 2019 version 16.6 (a minor update but necessary to use .NET 5) and the Preview 1 release of the upcoming 16.7 version (which will be the next servicing baseline with 12 months of fixes when it launches later this year), Visual Studio 2019 for Mav version 8.6 plus several announcements for Visual Studio Code.

Built-in Terminal and .NET Async

Visual Studio 16.6 adds a built-in Terminal and a .NET Async tool for performance profiling, makes snapshot debugging easier to use the first time (you no longer have to restart Azure App Service to install it), and has several new C++ 20 features, including an early implementation of <span> (a high performance, bounds-safe way to acess the storage of another object without changing it). Ninja will now be the default generator for building CMake projects on WSL.

Model Builder tooling

The Model Builder tooling that uses AutoML to train text classification, value prediction, recommendation, and image classification models for .NET applications using the ML.NET machine learning framework used to be an extension for Visual Studio. Now it’s built into 16.6 as a preview feature, and lets you run training on Azure from inside a Visual Studio project.

Winforms

WinForms was open sourced last year and is available cross-platform with .NET Core 3.0. Now there’s a preview of the new Windows Forms designer for .NET Core projects that includes most WinForms controls (except DataGridView and ToolStripContainer) plus the new Chromium-based WebView2 control, in both 16.6 and the Preview 1 release (which adds customs controls). Support for controls from third-party vendors like Progress Telerik and DevExpress is being worked on.

Visual Studio and Git repos

The planned improvements to working with code stored in any Git repo didn’t make it into 16.6 (and they won’t be the default experience for some time) but the preview is in the Visual Studio 16.7 Preview 1 release. This will let you initialise and push a repo to any Git host, create and manage branches, commit code and resolve merge conflicts inside Visual Studio: if you’ve used the preview already, the main change here is new icons that make it easier to see which branches are local or remote.

Preview 1 and XAML

Preview 1 also has some new XAML tools: an inline colour visualizer that shows blocks of the colour you specify in your code right in the code, a faster WPF XAML Designer for .NET Framework projects that puts common properties for built-in controls on a Suggested Actions menu that appears when you select buttons, labels, checkboxes and other controls, and a way of seeing when XAML data bindings have failed.

This puts a warning icon for binding failures in WPF and UWP applications on the toolbar, and adds a window that shows details of binding failures in WPF, UWP and Xamarin.Forms projects in one place where they’re easy to search, sort or group.

Visual Studio Codespace

Visual Studio Codespaces and the new GitHub Codespaces give you a cloud development environment running on Linux (in public preview) or Windows (private preview) complete with runtimes, linters, debuggers and extensions that you can access from a browser on any device, with source code and configuration stored in a git repo. That now has support for .NET Core development (although not yet the new Windows Forms designer).

And if you’re already using Visual Studio, you’ll be able to access Codespaces from inside your IDE to build edit, build, debug and test ASP.NET Core web apps, .NET Core libraries, .NET Core console apps, and cross-platform C++ CMake projects.

That’s useful if you’re using a different SDK and related tools for one specific project and you don’t want to load up your PC with all those dependencies, or if you need to work on a really large application that would be slow on your machine. This is currently in private preview using the new Windows-based Codespaces.

IntelliCode in Visual Studio can already be personalised to give more useful code completion suggestions for the types and APIs you use in your own code (if they’re not found in the 3,000+ open source GitHub repos with more than 100 stars that the IntelliCode was trained on). Keeping the Team Completions model for your codebase up to date is exactly the kind of semi-regular and rather tedious task GitHub Actions is good at automating, so the Visual Studio team has created an action to run it as part of a CI workflow that updates the model on each commit.

Microsoft Teams and Visual Studio

Microsoft is ramping up Teams as an application hub and while the low code/no code solution for building those apps is Power Apps, there’s a new Teams extension in preview so pro developers can build and publish those apps (using NodeJS and Yarn) with both Visual Studio and Visual Studio Code.

Visual Studio Code new features

One much-requested feature for Visual Studio Code: it can now sync your settings and the extensions you have installed between different devices (that’s currently in preview). GitHub Actions for Azure are now integrated into Code through an extension to make it easier to deploy code from a GitHub repo directly to Azure: that covers multiple services including web apps, Azure Functions, Azure SQL and MySQL. If your code isn’t only on GitHub, the new Visual Studio Code Deploy to Azure extension lets you generate CI/CD pipelines through either GitHub Actions or Azure Pipelines to AKS or Azure App Service to deploy code from GitHub, Azure Repos or even locally stored code.

If you’re using Codespaces with Visual Studio Code, you will soon be able to add chat and audio to your code sharing session, so you don’t have to make a separate call to talk about the code you’re looking at.

Visual Studio on Mac

The Mac release of Visual Studio also gets the new integrated terminal, plus templates for building Blazor WebAssembly applications (including PWAs) and gRPC projects with ASP.NET Core. It also has a new way to sign in to Visual Studio that promises to fix issues some developers have seen.

Other developer platform updates at Build

There also were plenty of developer platform updates at Build that Visual Studio developers will be interested in, like general availability of Blazor WebAsembly, more progress on the upcoming .NET 5 release plus the evolution of the Xamarin Forms toolkit into .NET Multi-platform App UI (MAUI for short) for .NET 6, details of what will be in C#9 and the on-going unification of UWP and Win32 APIs in Windows as Project Reunion.

Want to learn more?

Get in touch with Grey Matter’s team of Visual Studio product and licensing specialists! They’ll be happy to answer your questions: developer@greymatter.com

Find out more about how Grey Matter Ltd can help you with this subject. Send us a message:

We’d love to be able to send you news about our great offers and the latest info.

Yes keep me updated please


SHARE
Previous articleEmbarcadero 10.4 Sydney has arrived!
Next articleNew for Azure DevOps at Build 2020
Mary Branscombe has been a technology writer for more than two decades, covering everything from early versions of Windows and Office to the first smartphones, the arrival of the Web and most things in between, including enterprise architecture and cloud services. She also dabbles in mystery fiction about the world of technology and startups.