Build is Microsoft’s annual developer conference, which makes Visual Studio and .NET the stars of the show. Build 2019 is no different: Microsoft previewed new Visual Studio features for remote work, unveiled the .NET roadmap, and launched ML.NET 1.0.
In April, Microsoft launched Visual Studio 2019 for Windows and Mac. Two notable features were Visual Studio Live Share, a real-time collaboration tool included with Visual Studio 2019, and Visual Studio IntelliCode, an extension offering AI-assisted code completion.
But that’s just the tip of the iceberg.
Visual Studio is going remote
Microsoft is experimenting with features that let developers work from anywhere, on any device. The company today announced a private preview for three such new capabilities: Remote-powered developer tools, cloud-hosted developer environments, and a browser-based web companion tool. If the future of work is remote, Microsoft wants to be ready.
The top-requested Visual Studio Live Share feature on GitHub is individual remote development. Enter Visual Studio Remote Development, an alternative to using SSH/Vim and RDP/VNC, which lets Visual Studio users connect their local tools to a WSL, Docker container, or SSH environment. Available in private preview, the tool supports C# and C++. The ability to develop against remote machines brings plenty of advantages, Microsoft says, including being able to work on a different OS than the deployment target of your application, being able to leverage higher-end hardware, and having multi-machine portability.
The next private preview lets developers provision fully managed cloud-hosted development environments on-demand. A cloud-hosted developer environment means developers spend less time onboarding new team members, moving between tasks, and installing dependencies and more time coding. The new service lets you spin up a cloud-based environment whenever you need to work on a new project, pick up a new task, or review a PR. And, of course, these environments can be connected to Visual Studio 2019 and/or Visual Studio Code.
Microsoft also announced the private preview of Visual Studio Online, a new web-based editor based on Visual Studio Code. From online.visualstudio.com, you can access your remote environments and edit code in a browser. Visual Studio Online will support Visual Studio Code workspaces, Visual Studio’s projects and solutions, as well as IntelliCode and Live Share. It means you can join Visual Studio Live Share sessions or perform pull request reviews on the go.
.NET 5 and beyond
Microsoft also announced that it is skipping .NET 4 to avoid confusion with the .NET Framework, which has been on version 4 for years. Going forward, developers will be able to use .NET to target Windows, Linux, macOS, iOS, Android, tvOS, watchOS, WebAssembly, and more. .NET Core 3 will be succeeded by .NET 5, featuring new .NET APIs, runtime capabilities, and language features. Calling it .NET 5 makes it the highest version Microsoft has ever shipped and indicates that the company hopes it is the future for the .NET platform.
.NET Core 3 closes much of the remaining capability gap with .NET Framework 4.8, enabling Windows Forms, WPF, and Entity Framework 6. .NET 5 will build on this work, Microsoft says, combining .NET Core, .NET Framework, Xamarin, and Mono (the original cross-platform implementation of .NET) into a single platform.
Microsoft made three promises for .NET 5:
- Java interoperability will be available on all platforms.
- Objective-C and Swift interoperability will be supported on multiple operating systems.
- CoreFX will be extended to support static compilation of .NET (ahead-of-time – AOT), smaller footprints and support for more operating systems.
Additionally, .NET 5 will provide both Just-in-Time (JIT) and Ahead-of-Time (AOT) compilation models. JIT has better performance for desktop/server workloads and development environments. AOT has a faster startup and a small footprint, which is required for mobile and IoT devices. .NET 5 will offer one unified toolchain supported by new SDK project types and a flexible deployment model (side-by-side and self-contained EXEs).
Microsoft also shared its .NET roadmap. First, .NET Core 3 will ship in September. Next, .NET 5 will ship in November 2020, with the first preview available in the first half of 2020. Microsoft then intends to ship a major version of .NET once a year, in November.
“This new project and direction is a game-changer for .NET,” Microsoft declared. “With .NET 5, your code and project files will look and feel the same no matter which type of app you are building. You will have access to the same runtime, API, and language capabilities with each app.”
Private previews and roadmaps aside, Microsoft also had a notable launch today: ML.NET 1.0. Hitting general availability at Build 2019 is fitting, given that ML.NET 0.1 was introduced last year at Build 2018. You can download ML.NET 1.0 now from here.
ML.NET is an open source and cross-platform framework that runs on Windows, macOS, and Linux. ML.NET’s internal version has been used for almost a decade to power Microsoft products like Powerpoint’s Design Ideas, Windows Hello, PowerBI Key Influencers, and Azure Machine Learning.
The framework makes machine learning accessible for .NET developers (samples) so they can build AI into their applications with custom machine learning models. ML.NET lets developers create and use machine learning models targeting scenarios such as sentiment analysis, issue classification, forecasting, recommendations, fraud detection, image classification, and so on. ML.NET comes prepackaged with a set of transforms for data processing, ML algorithms, ML data-types, and extensions that provide accessibility to TensorFlow for deep learning scenarios and ONNX, among others.
With ML.NET 1.0 released, Microsoft is looking forward to the next features, including:
- Improved AutoML experience for all ML scenarios
- Deep Learning support with TensorFlow and Torch
- Support for other data sources (e.g. SQL, Cosmos DB, etc.)
- Scale-out on Azure
- Improved tooling support for Model Builder and ML.NET CLI
- ML @ Scale with .NET for Apache Spark integration
- New ML Types in .NET
- Additional ML tasks
Additionally, Microsoft is introducing new ML features and tooling experiences in Visual Studio. Automated Machine Learning (AutoML), given a data set, automatically figures out the featurization and algorithm selection phase to build the best-performing models. You can leverage the AutoML experience in ML.NET using the ML.NET command line interface (CLI, available now in preview), the ML.NET Model Builder (Visual Studio extension now in preview), or by using the AutoML API directly.