What is Android's equivalent to UICollectionView

R.I.P .NET "Core"

.NET Framework, .NET Core and Mono are dead - long live .NET 5.0!

From 6.-8. May 2019 Microsoft will hold its annual Build developer conference in Seattle and offer an outlook on the plans for the coming years - especially in the area of ​​.NET something will happen.

For .NET developers there was once again a big bang at the Microsoft BUILD 2019 conference: .NET 5.0 (.NET 5 for short) will be the common successor to the three previous .NET variants (.NET Core, .NET Framework and Mono ) be. All .NET application types from desktop (WPF and Windows Forms) to web servers (ASP.NET) and web browsers (Blazor / Webassembly) to apps (UWP, Xamarin) and games (Unity) should be a common .NET basis in the future to have.

.NET 5 should be in November 2020 (Fig. 1) appear and be essentially (but not completely) platform-neutral. Some types of applications that are based on .NET 5 will only run on certain platforms, e.g. UWP apps only on Windows 10, WPF and Windows Forms desktop applications only on Windows version 7 or higher. NET 5 must not be confused with .NET Core 5 - the name Microsoft planned for .NET Core 1.0 before deciding to start the version count all over again.

Fig. 1: .NET 5 in relation to .NET Core, .NET Framework and Mono

Not all features come in .NET 5

Technically speaking, .NET 5 is the continuation of .NET Core (with the associated tools and deployment options), into which large parts (but not all) of the .NET Framework and Mono flow (Fig. 1). As things stand at present, Windows Workflow Foundation (WF) and Windows Communication Foundation (WCF) servers as well as Windows Forms from Mono will be missing in .NET 5. As part of .NET 5, the static ahead-of-time (AOT) compilation will flow from Mono as an alternative to the previous just-in-time (JIT) compilation in .NET, so that .NET developers can switch between JIT and AOT in the future can choose. AOT offers .NET developers smaller installation packages and faster application launches, but because of the precompilation in machine code, no platform-independent installation packages.

.NET 5 will also include new features. This also includes integration with other frameworks and programming languages ​​(Java, Objective-C and Swift) for app development on iOS and Android.

The term “core” disappears again

Microsoft introduced ".NET Core" as the name on November 12, 2014 for the "cloud-optimized .NET Framework" alias "Project K", which had already been announced on May 13, 2014. Version 1.0 was released on July 26th, 2016. After that there was version 1.1, 2.0, 2.1, 2.2. Version 3.0 of .NET Core should be released in September 2019; at the BUILD there was the Preview 5 version; the publication of the release candidate is planned for July this year, then there should be a .NET Core 3.1 in November 2019.

This is how the .NET Core era should end again (Fig. 2). There will be no more versions with “Core” in their name. Next up is .NET 5 (Fig. 2), because Microsoft no longer finds the term suitable in communication, especially for software developers who are new to the .NET world.

Fig. 2: Schedule for the upcoming .NET versions (source: Microsoft)

With .NET Core Version 2.0, Microsoft began to massively adopt classes from the .NET Framework to .NET Core. This turned away from the .NET Core 1.x idea of ​​keeping the new .NET Core small and tidy. Instead, it was now on the agenda to become as compatible as possible with the .NET Framework so that existing classic .NET Framework applications can be migrated to .NET Core. In version 2.1, Microsoft continued this trend reversal with the Windows Compatibility Pack (WCP): For the first time, there were only classes in .NET Core that exclusively run on Windows (e.g. for registry programming). This will also increasingly apply in .NET Core 3.0: There are the GUI frameworks WPF and Windows Forms, but they are still not platform-independent, but tied to Windows. The point of WPF and Windows Forms is that software developers can migrate existing .NET Framework-based WPF and Windows Forms applications to .NET Core. This platform restriction will not change in .NET 5 either.

.NET Core 3.0 also provides .NET Standard 2.1, support for gRPC and the new ASP.NET SignalR-based web application model Server-Side Blazor - not to be confused with the WebAssembly-based client-side Blazor, which is now an official preview, for which there is still no release date).

At the BUILD conference, Microsoft made it clear to software manufacturers and software developers who already have existing WPF and Windows Forms applications or who are planning new ones, what they had already indicated in a blog entry on October 4, 2018: The version published on April 18, 2019 4.8 is the last version of the .NET Framework that will offer significant new functions. Any updates that will come after that will only concern security gaps and critical software errors. Maybe one or the other network protocol will be brought up to date, but that's it.

Deterministic release dates

With .NET 5, Microsoft wants to stick to the agile and transparent development method of an open source project on GitHub, which is established in .NET Core. There should be one difference to .NET Core: Instead of the previous irregular publication dates, there should be a new main version with breaking changes every year in November, i.e. after .NET 5 in November 2020 there will be .NET 6 in November 2021, .NET 7 in the following year etc. (Fig. 2).

In between, sub-versions with new features, but without breaking changes, are considered if necessary. Every second version should be a "Long-Term-Support" version (LTS) with three years of support from Microsoft. Like .NET Core 2.0, .NET Core 3.0 will not be an LTS version; the LTS version following .NET Core 2.1 will be .NET Core 3.1. Then the LTS line will not continue until 2021.

Further news from Microsoft Build are briefly summarized below.

Windows

  • An improved Linux subsystem in Windows (WSL) provides faster file system operations as well as support for Linux-based Docker containers.
  • Microsoft will finally give its Windows operating system a new command input window ("Windows Terminal") with contemporary character set support including emoticons, tabs, layout themes and an expansion model with its own marketplace. The Windows Terminal will be made available for the classic CMD, PowerShell and Shell for Windows for Linux (WSL). The first version should not be available until June 2019.
  • The new Chromium-based Microsoft Edge web browser has a compatibility mode with Internet Explorer 11 (IE Mode). Companies that rely on Internet Explorer functions for old intranet applications (e.g. ActiveX) should be able to switch to Edge.

Tools

  • Visual Studio 2019 has a third preview release to version 16.1. The previously independent IntelliCode extension is now included for the C # and XAML languages. The GitHub extensions are now also standard. The performance for C ++ and .NET developers should also be improved in some points. In C # there is now IntelliSense for types that have not yet been imported.
  • The Visual Studio subscription options are expanded to include "Visual Studio Professional with GitHub Enterprise" and "Visual Studio Enterprise with GitHub Enterprise" as part of Enterprise Agreements (EA).
  • Developers can code with Visual Studio Online (VSO) in the browser. For this online editor, Microsoft re-uses the name VSO, which was used between September 14, 2011 and December 13, 2013 as the name for today's Azure DevOps Services.

.NET

  • With .NET Core 3.0 Preview 3, Microsoft is delivering the first version of the “single file bundler” that packs all files of a .NET Core application into a self-extracting executable. A real EXE with AOT compiler will only be available in .NET 5.0.
  • The "XAML islands" announced at BUILD 2018 will be available in Windows 10 with the update in May 2019. This allows controls of the Universal Windows Platform (UWP) to be integrated in WPF and Windows Forms (of course, this requires Windows 10!).
  • MSIX Core allows developers to use the MSIX installation format on versions of Windows earlier than Windows 10.
  • In addition to the Microsoft Authentication Library (MSAL) for JavaScript and Objective-C for iOS and Android, this auxiliary library for Azure Active Directory is now also available for .NET.
  • ML.NET, the machine learning library for .NET announced at BUILD 2018, has reached version 1.0.
  • .NET programming is now also possible for the Apache Spark cluster computing framework with ".NET for Apache Spark".
  • Xamarin Forms 4.0 is available as a public preview, including the new CollectionView control, which is supposed to replace ListView by making it faster.

SQL Server

  • With Azure SQL Database Edge, Microsoft now supplies SQL server-based databases with low system requirements that can be installed on both x64 and ARM systems. The API of the Azure SQL Database Edge should be compatible with SQL Server and SQL Azure.

DevOps

  • There is a new pricing model for Azure DevOps. There are no more price categories: if you have more than five users, you pay 6 dollars per user. In future, artifacts stored in the cloud will cost between $ 2 and $ 0.25 per gigabyte, with the first two gigabytes free.
  • With the Azure Active Directory (AAD) support in GitHub, developers can now synchronize user groups between the AAD and GitHub.
  • On the other hand, the web portals for Azure and Azure DevOps now also support user login with GitHub user accounts.
  • Previously, Azure DevOps users could only use the new YAML-based pipeline definitions for build pipelines. Now this feature is also available for release pipelines. A single YAML document can contain both the build and the release pipeline. YAML pipeline definition documents can be checked into the source control system. This gives developers the ability to easily make pipeline definitions specific to individual branches.
  • For deployment on Azure Kubernetes Services and Red Hat OpenShift, there are now templates in Azure DevOps, both for cloud and on-premise.

The BUILD conference will take place in Seattle from May 6th to 8th, 2019. While the event was always booked out very quickly in the past, Microsoft was now unable to fully fill the event for the second time in a row. Some participants cite the reason why Microsoft no longer distributes hardware gifts as it used to. Anyone can view the recordings of the lectures free of charge.

Our editorial team recommends: