This article is more than 1 year old

Attention Microsoft-oriented Linux devs: .NET 6 is on Ubuntu 22.04

Linux distro announces the availability of Microsoft tooling on Jammy Jellyfish

Ubuntu and Microsoft have brought .NET 6 to the Ubuntu repositories, meaning that you can install it without adding any extra sources to the OS.

The announcement means that Ubuntu 22.04 is catching up with the Red Hat Linux family. As per Microsoft's online docs, you could already do this on Fedora 36 as well as the more business-like variants: RHEL 8, CentOS Stream 8 and 9, and via scl-utils on RHEL 7.

Microsoft's blog post about the news also mentions the ability to install the runtime, or the full SDK, into Ubuntu containers. Canonical also has new versions of these. It describes Ubuntu ROCKs as "new, ultra-small OCI-compliant appliance images, without a shell or package manager," smaller than existing Ubuntu container images thanks to a new tool called chisel.

.NET 6 is Microsoft's cross-platform toolchain for building apps to run on multiple platforms, including Windows, Linux, macOS, and mobile OSes. Essentially, it's Microsoft's answer to Oracle's JVM – the increasingly inaccurately named Java Virtual Machine, which now supports multiple languages, including Clojure, Kotlin, Scala, and Groovy.

Microsoft's own list of .NET languages is relatively short – C#, F#, and Visual Basic – although there are many others from outside the company. The list arguably should include PowerShell, but that already has its own Linux version.

Since 2014 or so, .NET primarily means what was formerly called .NET Core. According to Microsoft's own diagram, that means the .NET Common Language Runtime, the bit which allows "managed code" to execute, and Microsoft's web app framework ASP.NET.

There are three separate packages: dotnet-sdk-6.0, the SDK; dotnet-runtime-6.0, the CLR runtime; and aspnetcore-runtime-6.0, the runtime for ASP.NET. All three can be installed at once via the dotnet6 metapackage.

The notable bits of .NET that aren't included in Core are the venerable Windows Forms framework or the slightly more modern Windows Presentation Framework, WPF.

Compare and contrast: .NET Framework versus .NET Core

Diagram showing .NET Core design

Click to enlarge

So don't get excited and think that the inclusion of .NET in Ubuntu means that graphical .NET apps, such as Windows Store apps, can now be built and run natively on Linux. Limit your expectations to server-side stuff. This is a mainly a way to deploy console-based C# and ASP.NET apps into Ubuntu servers and Ubuntu containers.

When we asked Canonical about this, a spokesperson responded: "WPF is not currently supported in .NET 6 on Ubuntu. So, you're correct that .NET 6 on Ubuntu is aimed at developers building text/server apps rather than graphical/GUI apps."

We've also asked Microsoft if they have any additional information or details, and will update when they respond.

There are cross-platform graphical frameworks for .NET, including the open-source Avalonia and as well as Uno, which got on board in .NET 5. There is also Microsoft's own Multi-platform App UI, or MAUI, which evolved out of Xamarin Forms.

The origins of .NET lie in Microsoft's 1996 acquisition of Colusa Software for its OmniWare tool, which Colusa billed as "a universal substrate for web programming." As Microsoft faced off against the US Department of Justice and European Commission, and the possibility of being broken into separate apps and OS divisions, it came up with Next Generation Windows Services, which then turned into .NET: a way to use Microsoft tools to build apps for any OS.

There is still controversy over exactly how open .NET really is, as exemplified by the aptly named isdotnetopen site. ®

More about

TIP US OFF

Send us news


Other stories you might like