Attention Microsoft-oriented Linux devs: .NET 6 is on Ubuntu 22.04
- Reference: 1660754647
- News link: https://www.theregister.co.uk/2022/08/17/dotnet_6_ubuntu/
- Source link:
The [1]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 [2]Fedora 36 as well as the more business-like [3]variants : RHEL 8, CentOS Stream 8 and 9, and via scl-utils on RHEL 7.
Microsoft's blog [4]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 [5]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 [6]chisel .
[7]
.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 [8]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.
[9]
[10]
Microsoft's own [11]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 [12]already has its own Linux version .
Since 2014 or so, .NET [13]primarily means what was formerly called .NET Core . According to Microsoft's own diagram, that means the [14].NET Common Language Runtime , the bit which allows "managed code" to execute, and [15]Microsoft's web app framework ASP.NET .
[16]
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.
[17]There's no place like GNOME: Project hits 25, going on 43
[18]Ubuntu 22.04.1: Slightly late, but worth the upgrade
[19]Dealing with legacy issues around Red Hat crypto versions? Here's a fix
[20]Rescuezilla 2.4 is here: Grab it before you need it
The notable bits of .NET that aren't included in Core are [21]the venerable Windows Forms framework or the slightly more modern [22]Windows Presentation Framework, WPF .
Compare and contrast: .NET Framework versus .NET Core
[23]
[24]
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 [25]the open-source Avalonia and as well as [26]Uno, which got on board in .NET 5 . There is also Microsoft's own [27]Multi-platform App UI, or MAUI , which [28]evolved out of Xamarin Forms .
[29]
The origins of .NET lie in Microsoft's 1996 [30]acquisition of Colusa Software for its [31]OmniWare tool, which Colusa billed as "a universal substrate for web programming." As Microsoft [32]faced off against the US Department of Justice and [33]European Commission , and the possibility of being broken into separate apps and OS divisions, it [34]came up with Next Generation Windows Services , which then [35]turned into .NET : a way to use Microsoft tools to build apps for any OS.
There is still controversy over exactly [36]how open .NET really is , as exemplified by the aptly named [37]isdotnetopen site. ®
Get our [38]Tech Resources
[1] https://ubuntu.com//blog/install-dotnet-on-ubuntu
[2] https://docs.microsoft.com/en-us/dotnet/core/install/linux-fedora
[3] https://docs.microsoft.com/en-us/dotnet/core/install/linux-rhel
[4] https://devblogs.microsoft.com/dotnet/dotnet-6-is-now-in-ubuntu-2204/
[5] https://github.com/ubuntu-rocks
[6] https://github.com/canonical/chisel
[7] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/devops&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=2&c=2Yv1lBBwovgk2@iAY8@BcDQAAAI4&t=ct%3Dns%26unitnum%3D2%26raptor%3Dcondor%26pos%3Dtop%26test%3D0
[8] https://www.theregister.com/2022/02/15/20_years_of_dotnet/
[9] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/devops&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44Yv1lBBwovgk2@iAY8@BcDQAAAI4&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0
[10] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/devops&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33Yv1lBBwovgk2@iAY8@BcDQAAAI4&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0
[11] https://dotnet.microsoft.com/en-us/languages
[12] https://www.theregister.com/2018/01/12/powershell_macos_linux
[13] https://www.theregister.com/2014/12/05/making_sense_of_net_core_microsofts_new_app_development_stack/
[14] https://www.theregister.com/2015/02/03/microsoft_open_sources_coreclr/
[15] https://www.theregister.com/2020/04/16/where_next_for_aspnet_core/
[16] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/devops&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44Yv1lBBwovgk2@iAY8@BcDQAAAI4&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0
[17] https://www.theregister.com/2022/08/17/gnome_project_25/
[18] https://www.theregister.com/2022/08/12/ubuntu_22041/
[19] https://www.theregister.com/2022/08/11/red_hat_ssh/
[20] https://www.theregister.com/2022/08/11/rescuezilla_24/
[21] https://www.theregister.com/2021/11/22/windows_forms_dotnet_60/
[22] https://www.theregister.com/2020/10/02/microsoft_open_source_github_survey/
[23] https://regmedia.co.uk/2014/12/05/corediagram.png
[24] https://regmedia.co.uk/2014/12/05/corediagram2.png
[25] https://www.theregister.com/2021/03/30/crossplatform_wpf_anyone_unpacking_avolonia/
[26] https://www.theregister.com/2019/11/20/winui_winrt_windows_api_webassembly/
[27] https://www.theregister.com/2021/04/13/net_6_preview_3_multiplatform/
[28] https://www.theregister.com/2021/01/11/xamarin_forms_5/
[29] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/devops&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33Yv1lBBwovgk2@iAY8@BcDQAAAI4&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0
[30] https://news.microsoft.com/1996/03/12/microsoft-broadens-active-internet-vision/
[31] https://www.w3.org/Conferences/WWW4/Papers/165/
[32] https://www.theregister.com/1998/10/20/microsoft_on_trial/
[33] https://www.theregister.com/2000/02/10/eu_ms_probe_focuses/
[34] https://www.theregister.com/2000/01/14/bills_big_adventure_windows_as/
[35] https://www.theregister.com/2000/06/22/bill_gates_windows_the_universe/
[36] https://www.theregister.com/2020/07/09/net_core_still_a_microsoft/
[37] https://isdotnetopen.com/
[38] https://whitepapers.theregister.com/
Re: Nice one Cyril
Over the past few years, I've seen several projects pick up C# on Linux, the people doing so previously being the sort who'd normally have reached for Java. I've not heard that they've reverted to Java for future work.
I've never done anything in Java, but I've used C# a fair bit and there's quite a lot to like about it and the ecosystem that surrounds it. It's pretty straightforward to be effective in C#, it's a very slick and easy development experience.
Having a major software house on-board helps a lot I think. There is a big difference between Microsoft and Oracle these days, MS seems all cuddly and friendly, open and supportive, whereas there are people running scared from using anything with Oracle's EULA attached (even if heavily diluted by years of OSS licenses, etc).
The end game is that Microsoft supply cloud services (Azure), they make good money out of that already, and strong support for .NET across all OSes that people want to run is going to make it easier for developers to justify using Azure, enhancing MS's profits.
Being effective in the cross-platform application areana (there's MAUI, that seems to be coming along nicely) is a bonus, encouraging app developers to use MS tools and dev services, and oh-by-the-way it's oh-so-easy then to use Azure as a back end host too.
On the quiet MS is conducting a successful pivot from being a straight up OS and Office provider, to one where Cloud (of some sort) is a big component of the business. When you consider the totality of their offering, it's really amounting to something pretty huge; the de-facto Office suite, a still very prevelent Desktop OS presence, a useful foothold in applications on iOS and Android (Outlook, the mobile Office apps, even One Drive), a good Cloud offering, plus the tooling by which all of this and more can be created and bound together regardless of the OS people want to run; for those wanting to get jobs done, and those wanting to make money by creating applications and systems that let other people get jobs done, or even just games (mobile, desktop), it's a pretty thorough and effective mixture, and they're still adding bits in (like MAUI). Even Active Directory (now available from Azuer as well as on-prem) is a really big asset for identity management.
Having .NET on Linux is just one part of that.
So, Is There Demand?
So, is there some huge pent up demand for .NET on platforms other than Windows? The objectively answerable part of the question is easy - yes, there is demand now, there has been for some time, and so far as I know that demand is growing. The harder part - is it a huge demand - well, that's forecasting.
I don't really see any of the other major software houses having anything like as big or far-reaching effort to cover all development types on all platforms with such a strong emphasis on making it all work together, from desktop / mobile all the way through to Cloud, whilst also being as cross-platform as possible. They've not finished, but the more they do finish it, the more developers (and thence users) will find themselves installing .NET on their boxes and running something originally compiled on a completely different platform.
This is, I think, the dream that the original Sun Java engineers had, though they were decades too early and got swamped by the utterly unimaginative Orcale. Java never really made it in all arenas, and these days is restricted almost entirely to just server applications. Microsoft do seem to have a vision to do this, are big enough to make it happen, and are now experienced enough in all domains to get it right.
The only thing they don't have - a mobile OS - seems not to be so important anymore, as mobile phones themselves are becoming very commodity (and therefore low margin) things. It's the services that matter, make it easy to build those and point them at Azure and collect revenue that way. Let someone else do all the legwork in making a mobile OS and mobile device.
Google and Apple might be tempted to use their control of Android and iOS to make MS's life hard, but both Google and Apple are already under investigation for anti-trust issues in the USA and Microsoft can afford a lot of lawyers to help make those investigations sting. I can't see Google or Apple being able to wreck MS's strategy without closing their ecosystems whilst also avoiding the wrath of the US government.
MAUI?
Although the article says that this is for server applications only (WinForms and WPF haven't made it over to Linux), I am intrigued by MAUI (see [1]here . That Microsoft webpage suggests that MAUI on Linux is "Supported by the community", though I've not yet dug deep enough to determine how extensive that support is.
I've played with MAUI a bit on Windows - it's WPF-like, updated for the modern world of touch / swipe and mobile. Data binding is supported. MAUI looks like work in progress, but none the less one can do a desktop or mobile app in it, and MS support that on literally everything but Linux and Tizen.
It's just possible that MAUI will mature into something genuinely multiplatform, which really would be quite something. Certainly, this appears to be the focus of MS's cross-platform GUI efforts, so I don't think we're going to see WPF on Linux anytime soon.
That could be intersting, to say the least. A properly sorted, strongly supported, modern, functioning GUI framework that allows genuine source code re-use across platforms, and possibly also binary re-use and also provides an acceptably easy-on-the-eye result could challenge some established norms. Why have a Web App, if you can just as easily have an all-platforms native app? Ok, so it's not as simple as that, but it's just possible that the "all-platforms" property of a web-app goes away. Given how awful Web Apps can generally be in terms of runtime overhead, clunkiness, inability to interact with other local stuff, etc, there may be some areas where MAUI is a better candidate technology.
[1] https://docs.microsoft.com/en-us/dotnet/maui/supported-platforms
Id like to see some mention of the security vulnerabilities in that pig.
https://github.com/dotnet/dotnet-docker/issues/2473
https://www.cvedetails.com/vulnerability-list/vendor_id-26/product_id-80849/version_id-684354/Microsoft-.net-6.0.0.html
Debian tracker for .Net vulnerabilities: https://snyk.io/test/docker/microsoft%2Fdotnet%3Acore
RedHat .Net 6 issues: https://access.redhat.com/documentation/en-us/net/6.0/html/release_notes_for_.net_6.0_rpm_packages/known-issues_release-notes-for-dotnet-rpms
Chapter 7. Known issues .NET 6.0 | Red Hat Customer PortalAccess Red Hat’s knowledge, guidance, and support through your subscription.access.redhat.com
https://access.redhat.com/documentation/en-us/net/6.0/html-single/release_notes_for_.net_6.0_rpm_packages/index
Release Notes for .NET 6.0 RPM packages .NET 6.0 | Red Hat Customer PortalThe Release Notes for .NET 6.0 RPM packages provide high-level coverage of the features and functionality that comprise the .NET 6.0 platform and document known problems in this release.access.redhat.com
Summarising that is easy: it's made by Microsoft.
Nice one Cyril
We've also asked Microsoft if they have any additional information or details, and will update when they respond.
Will BoJo still be in No 10 when this arrives?
I have to wonder what the real end game for MS is with this move.
Is there some huge pent up demand for .NET these days let alone on platforms other than Windows?
Asking for a MS admin friend.