At Microsoft Build 2018, Scott Hunter, director program management .NET, and Scott Hanselman, director community .NET, gave a session on the future of .NET. The thrust of the presentation was that .NET can be the platform for building any kind of application: desktop, web, cloud, mobile, gaming, IoT or AI. Your existing language skills are not wasted, and can be used in new areas.
Current State of .NET
Between the .NET Framework and .NET Core, there are 1 million new users who actively use Visual Studio each month. Since this software has been made open source, there have been over 19,000 community contributions from over 3700 companies, exclusive of Microsoft. Samsung ported .NET Core to the ARM32 which is now available for the Raspberry Pi. Illlyriad Games has contributed most of the performance gains made. The virtual .NET Conference will be held from September 12-14, 2018, where Microsoft and community people will talk about .NET.
.NET Core 2.1 Release Candidate is now available. RTM is expected at the end of May. While the build performance inside Visual Studio has always been good, the build performance from the CLI will be improved to be identical. More gaps between ASP.NET Core and EF Core have been reduced, as well as increasing compatibility with the .NET Framework to improve portability. ASP.NET Core will have full support for the GDPR. Support for microservices and Azure has been improved. The .NET Core 2.1 tooling performance, by the time of the release, will be 10 times faster than it is now. In fact, you can still stay with .NET Core 2, and use the .NET Core 2.1 tooling to get the improved performance. Performance has been vastly improved in the area of database access.
To enable support for the Internet of Things, .NET Core 2.01 now runs on Raspberry Pi 2, Linux (Ubuntu 18.04 and Alpine 3.7) as well Win 10 IoT. Containers are also supported. There is support for Azure IoT Hub. Samsung is rolling out new Smart televisions that have .NET power start screens.
.NET Core will have improved memory performance with the introduction of span<T>
.NET Core 2 was focused on the Web and Cloud. .NET Core 3 adds support for Desktop, IoT, and AI. Even WinForms and WPF will run on top of .NET Core 3. XAML Islands will allow WinForms and WPF to host UWP. XAML Controls are for WinForms and WPF browser and media UWP controls. There are also high DPI fixes for WinForms. To do this, WinForms had to be changed. However, since there is side by side support in .NET Core, those applications that require that version of WinForms can be isolated from the rest of your use of .NET Core. Side by side support will, in general, allow the independent evolution of .NET Core and .NET Framework. You will also be able to evolve your applications independently.
You will have access to all Windows 10 APIs from .NET Core, such as Win RT. The .NET Core App Builder will allow you to precompile a small app for faster startup, remove all unused dependencies, and create a self contained executable.
The goal is to have a .NET Core 3.0 Preview later in the year. There will also be a .NET Core 2.2 later in the year.
Visual Studio 2017
There is improved support for refactoring in Version 15.7. These include between foreach to for and vice versa, LINQ query to for loop, and toggling between var and an explicit type. Version 15.8 will have more LINQ refactoring improvements. Editorconfig improvements are coming in both 15.7 and 15.8. There will also be progress icons added to the Test Explorer.
For Web development there will be significant improvements in Razor formatting as well as refactoring for Razor files in 15.8. Kubernetes will be supported via an extension. You will be able to publish, via an extension, to a non-containerized Linux App Service. You will able to publish, via an extension, to an Azure Container Service.
Visual Studio for Mac 7.5 will have support for Razor, TypeScript, and JavaScript. Xamarin.Forms on .NET Standard 2.0 is supported as well as Azure Functions powered by .NET Core. C# 7.2, EditorConfig, .NET Core 2.1 RC will all be supported. There is a preview of Team Foundation Version Control. The same code base is used for both IDEs.
.NET and Machine Learning
Azure Cognitive Services are a set of pre-built machine learning models that developers can use. Models for vision, speech, and language can be consumed via a REST API within code. You can also prepare your data, and build and train your own custom models. In addition to the classic ways of building models, Microsoft is introducing ML.NET which is based on the technology used in-house for applications such as Bing, and Office. This technology is now open source and extensible. It can work with other AI libraries such as Accord.NET and CNTK. It has been announced as a preview.Blazor
Blazor is an experimental web UI framework based on Razor and .NET that runs in the browser via WebAssembly. It is designed to simplify the task of building fast single page applications that run in any browser. You do not need to know such technologies such as AngularJS, React, or Vue, but you can use .NET to build web apps that run on the client side using open web standards. Blazor uses the Mono version of .NET compiled to WebAssembly. It runs in all browsers with native performance. It requires no plugin or code transpiliation.