This Week in Programming: .NET 6 Preview Picks up Unification Efforts after Pandemic Delays
For some of you .NET developers out there, who haven’t been paying particularly close attention, your heads might be spinning a little bit with this week’s news. There’s no need for the double take, though, as it’s all true — Microsoft has put out the first preview for .NET 6, just four months after releasing .NET 5, the current production-read version of the company’s free, cross-platform, open source developer platform.
Not that any of this is actually a surprise, as .NET 6 has been planned for 2021 all along and the preview is already available for download, preceding an expected November 2021 release. In fact, Microsoft has created a public facing roadmap for .NET that shows the various themes, making clear that .NET 6 is here to pick up and run with many of the themes introduced in .NET 5. With .NET 6, Microsoft is taking up the slack after experiencing a bit of a pandemic-related stutter, when the company failed to deliver on some of its unification promises in .NET 5.
Unification was first started with .NET 5 in 2019, attempting to make it so that there would be “just one .NET going forward” targeting a variety of platforms, including Windows, Linux, macOS, iOS, Android, tvOS, watchOS and WebAssembly and more. With this release, the team says they are now integrating the Android, iOS, and macOS capabilities that are part of Xamarin into .NET 6, as well as extending the Blazor web framework to create ” a new kind of hybrid client app — combining web and native UI together.” Microsoft describes the possibilities of this “unification” effort:
“Our unification efforts offer something for all .NET developers. If you are [a] desktop app developer, there are new opportunities for you to reach new users. If you are a mobile app developer, you will benefit from using the mainline .NET tools and APIs while targeting iOS and Android platforms. If you are a web or cloud developer, it will be easier to expose services to .NET mobile apps and share code with them.”
I like the idea that since I’ve been using blazor for 2+ years now I’m about to go from a website dev who can’t maintain anyone’s existing apps to a dev who can build web, desktop and mobile with the same tools and skills.
— A fox in space (@woundedkarma) February 18, 2021
Another highlight of .NET 6 is that of long term support, making this version one for use in production, as well as the addition of “significantly expanded” operating system support, which adds Android, iOS, Mac and Mac Catalyst, for x64 and Apple Silicon “M1”, and Windows Arm64.
Of course, being .NET, the list of new features is extensive and fully detailed in a lengthy blog post, but if you wanted a little more than we’re offering here, but a still-succinct summary, you might head on over to Neowin for the straight forward rundown, or to The Register, which calls the preview “still a mess” — as might be expected with an initial preview.
How is .NET 6 under preview when I haven’t gotten around with .NET 5😅
— Karani👣 (@118karani) February 17, 2021
This Week in Programming
- VSCode Helps Find “Bad” Extensions: A bit more on Microsoft-related news, the team behind the popular Visual Studio Code editor has put out a blog post this week detailing its recently released Visual Studio Code extension bisect utility, which helps to seek out the “bad” extension that might be hampering your experience. Noting that “the true power of Visual Studio Code is its extensions,” and that “it is not uncommon that users have 50 or more extensions installed,” the team says that they want to make troubleshooting them easier, and such is the purpose of the Extension bisect utility. Originally inspired by the git bisect command, which helps to find out which commit in a repository introduced an issue, the utility essentially follows a sorting method wherein it splits the extensions in half and disabling them, then asking the user if the problem has been fixed. By doing this, it can more quickly isolate which extension is behind the issue, rather than requiring you to go through each extension individually.
“Service Mesh” (2020 colorized) pic.twitter.com/sw145FGRaJ
— Felix L. 🦕 (@_Lebsky) February 16, 2021
- GitHub Enterprise Server 3.0 Brings “Biggest Ever Change”: Announced earlier this year, GitHub Enterprise Server 3.0 is now generally available, and the company is calling it the “biggest ever change,” with the addition of GitHub Actions, GitHub Packages, and the addition of secret scanning tools. This release moves the features seen in last month’s release candidate into general availability and is also the first completion of GitHub’s new release candidate program, which the company discussed late last year. With the release of GitHub Enterprise Server 3.0, there’s also some updated documentation available, and all the new features are detailed in the release notes.
- Go 1.16 Makes Modules Default: The latest version of the Go programming language, Go 1.16, has been released, bringing with it a number of new features. First, Go 1.16 requires use of Go modules by default, which the team says makes sense since 96% of Go developers have already turned them on, according to the 2020 Go Developer Survey. Discussion has been swirling around Go modules for some time, with the first preliminary discussions taking place in 2018 and the release of Go 1.1, and now, two years later, the “innovative approach” to the feature has made its way to being turned on by default. This latest release also introduces a new embed package, which provides access to files embedded at compile-time and makes it easier to bundle supporting data files into your Go programs, as well as support for macOS ARM64 support (AKA Apple silicon). Lastly, the language boasts “builds that are up to 25% faster and use as much as 15% less memory,” among other improvements and bug fixes.
— Vineeth Pothulapati (@VineethReddy02) January 28, 2021
- Docker Desktop M1 Preview Adds Kubernetes: The latest Docker Desktop Preview for Apple M1 has been released and is available for download, with the “most exciting change” being the addition of Kubernetes. Previously, the preview was “built on a developer’s laptop from a private branch,” but now Docker is taking greater ownership of the preview, with the code fully integrated into its main development branch. The company says it has also updated its CI code and will “be able to issue new previews on a more regular basis and have more confidence that our changes have not broken anything.” As for Kubernetes, well, it now works, which is a vast improvement over it not working. Docker says it has also made it so
vm.docker.internalDNS entries now resolve, removed hard-coded IP addresses, fixed osxfs file sharing, made a configuration change that should improve disk performance, and fixed the Restart option in the Docker menu.
OH: 1024 containers should be enough for anyone
— Alex Ellis (@alexellisuk) February 18, 2021