Today and Tomorrow of .NET— Microsoft Build 2019 from a .NET Developer Point of View
Between the 6th and the 8th of May, was the biggest Microsoft event of the year, Build 2019. The key announcements can be viewed in the Vision Keynote with Microsoft CEO, Satya Nadella as well as the two technical keynotes for Microsoft Azure and Microsoft 365 platform.
In this blog, I will focus on .NET related announcements and technologies that are coming to you this year which were showcased in Build 2019. Read my previous post for related information on Visual studio 2019 features and the future of .NET.
Future of .NET (.NET 5?), Microsoft Build 2019 from a .NET Developer Point of View
Future of .NET (2020+)/ .NET 5 and the related announcements that have come from last weeks build conference.
The best features from Visual Studio 2019 launch event
Quick drive in to Visual Studio 2019 launch event with some of the top notable features, e.g. LiveShare, IntelliCode…
NET Core 3.0
At Build 2019 when it relates to .NET Core, it is focused on the main features that are coming with .NET Core 3.0. It brings in big improvements to full stack web development and adds desktop applications, Machine Learning and Big Data. Making .NET Core a platform for developing most application types required in this competitive modern world of software development.
For Windows Desktop applications, .NET Core 3.0 will support Windows Forms, WPF which is currently in preview but they also announced that support for UWP and Unity (Video Game Engine) which will be coming soon.
For a full list of what is new in .NET Core 3.0 can be found in this Microsoft document article.
Release Schedule for .NET Core 3.0
When is .NET Core 3.0 going to be released? The release date is set for September 2019 and an LTS version a month later. I expect .NET Core 3.0 will be released before the .NET Conf on the 23rd to 25th of September. You download the newest preview of .NET here.
ASP.NET Core 3.0
ASP.NET Core 3.0 includes some big additions with gRPC and Worker Service but with this 3.0 release, it has lost compatibility with .NET Framework. Currently, with ASP.NET Core 2.2 you can create ASP.NET Core applications in .NET framework which will affect a small number of users.
Web APIs and Identity
A new templated authentication offering for Single Page Applications (React.js / Redux)using API authorisation. In ASP.NET 3.0 there is support and templates for API authorisation combining ASP.NET Core Identity and IdentityServer for implementing Open ID Connect (more information).
In ASP.NET Core 3.0 there is the introduction of the Worker Service Template. This template is designed for long-running background processes like a windows service or a Linux daemon is for but for the web. The template is still an ASP.NET application but has no razor views or controllers, basically the minimum libraries to run the background task.
An example where this template would have been a great starting point are applications required to poll a folder.
ASP.NET Core 3.0 is adding support for gRPC, gRPC is Remote Procedure Call (RPC) framework like .NET framework’s WCF but has high performance and is language agnostic. gRPC allows application clients to directly call methods on a server application as if it was calling a method on an object.
This means you could quickly create SDK clients to your preferred language of choice (e.g. C++, Java, Ruby, etc). gRPC supports bi-directional streaming calls between client and server allowing point-to-point real-time communicate (find out more).
With C# 8.0 currently in Preview 5,I am sure it will be set to release with .NET Core 2.0. At Build 2019 many new C# 8.0 features were showcased including
- Nullable reference types
- Async streams
- Switch expressions
- Recursive patterns
- Default implementations.
The most interesting feature is Ranges which have been implemented into other languages like Ruby. Ranges allow you to return a subset of another array, all through using the succinct syntax inside the “” when normally trying to get an element of an array.
For the full list and explanation of what's new, it can be found here.
With Microsoft’s aim for .NET to be a place to develop all types of applications, machine learning and artificial intelligence are going to be a part of that. The new release of ML.NET 1.0 the machine learning framework for .NET where you can now; create, build and train your own models and integrate them into your applications (find out more). This can be used for sentiment analysis, price prediction, fraud detection and image classification.
.NET support for Apache Spark
For the Big data lovers, .NET has added support for Apache Spark which is a free, open-source, and cross-platform big data analytics framework previously been available in languages like Java, Scala, Python.
Apache Spark in one of the biggest Big data analytics framework allowing you to perform high-volume data preparation pipelines, real-time processing and interactive querying on very large datasets. Apache Spark for .NET is compatible with .NET standard, allowing it to be used in both .NET Core and framework. Find out more at this link: https://dot.net/spark.
Microsoft announced some key improvements reducing download size for the initial installation of Xamarin from 23 GB in Visual Studio 2017 to 7 GB in Visual Studio 2019.
The second main improvement is faster creation and builds of solutions by half what it was in VS 2017. With the introduction of ML.NET you will be able to run your models natively with Xamarin. These changes should make it easier for developers new to Xamarin to download it and start developing.
.NET Framework 4.8
With .NET Framework released in April, last month it was only really touched on advertised some small key improvements. This includes:
- Accessibility improvements in Windows Forms and WPF.
- Improved High DPI support multi-monitor.
- JIT (Just In Time) parity with .NET Core 2.1 Release.
Microsoft also confirmed that this is the last major release of .NET framework, meaning there should be not 4.9 and or a 5.0 but they will continue to support it for the foreseeable future. To get the latest version of the .NET framework you can follow this link here.
Should I switch to .NET Core 3.0?
If you are currently wondering if you should switch your applications over to .NET Core 3.0 from the .NET framework, Microsoft advised for existing application keeping them in the .NET framework is fine. The .NET framework will be supported in Windows for a long time to come.
Microsoft has invested alot into .NET framework and cannot afford for it to be unsupported. Some of their biggest application are written in .NET framework, for example, Visual Studio. Microsoft also recommended new applications should be written in .NET Core where possible.
There are lots of new and exciting features are coming to the world of .NET no matter what type of application you develop. .NET is evolving and it’s important to keep up with the latest developments and new features so you can choose the right version .NET for your application.
Recommended Videos from Build 2019
- .NET Platform Overview and Roadmap
- All the developer things with Scott Hanselman and Friends
- Building the award-winning app, SeeingAI, with Visual Studio 2019
- The Future of C#
- The Next Transformation in Mobile Development with Xamarin
- Full stack web development with ASP.NET Core 3.0 and Blazor
- Building .NET Desktop Applications with .NET Core and Windows 10
- Welcome to the world of Machine Learning with ML.NET 1.0
- Building mobile and web applications using .NET, macOS and Visual Studio for Mac
- Increase your .NET Productivity with Visual Studio 2019