Recently Browsing 0 members
No registered users viewing this page.
By Usama Jawad96
The first preview of .NET 6 is now live: Here's what you need to know
by Usama Jawad
Microsoft announced .NET 5 a few months ago as the first step in the path to .NET unification. The goal is to have a single set of APIs, languages, and tools that you can utilize across multiple platforms. Today, the firm has unveiled the next stepping stone in this journey, which is .NET 6 Preview 1.
The first preview of .NET 6 brings with it a raft of new features and capabilities. However, first and foremost is that it enables the next bits of .NET unification. Under this plan, while you can use .NET SDK to build mobile apps in Visual Studio and Visual Studio Code, the size of the SDK will actually be smaller because mobile workloads are optional. This capability will be gradually rolled out with .NET 6 releases and will be complete in .NET 7.
With .NET 6, Microsoft is also leaning towards "open planning" so everyone is aware of the direction the company is headed in. This can be viewed in the Blazor-based app here which has multiple filters that allow you to see the plan most relevant to you.
Additionally, .NET 6 comes with a new Multi-platform App UI built on top of Xamarin. It is a toolkit that allows developers to get a consistent view of their apps across various platforms, also allowing them to share code. Microsoft states that the focus during .NET 6 releases will be performance, control themes, and "faster developer experiences". Preview 1 currently includes support for Android and iOS. Windows and macOS will be supported in future releases.
.NET 6 also includes support for developing Blazor desktop apps. This capability is primarily aimed at web developers who want to offer a feature-rich UI in offline desktop apps. Currently, Blazor desktop is being built for .NET apps, but Microsoft has stated that it can be used to build apps in other stacks like Swift as well. As can be ascertained, Blazor is built on top of the Multi-platform App UI, with focus being on providing performance similar to other desktop solutions.
Another project that the .NET is working on goes by the name of "fast inner loop". The aim of this initiative is to enable faster build time and to develop capabilities that allow developers to skip rebuilding altogether, and just integrate code edits in live processes.
With .NET 6, Microsoft is investing more in ARM64 support as well. Performance improvements are a key focus area in Preview 1, along with support for Windows Forms and Windows Presentation Framework (WPF). The development team also plans to add support for Windows Desktop app features in .NET 5 once it has enabled and tested them in .NET 6. With regards to Mac, initial support has been added for Apple Silicon ARM64 chips.
Microsoft also plans to improve containers in .NET 6. Multiple ways to do this include reducing container image size, enhancing the scalability of containers, adding support for Windows process-isolated containers, and optimizing performance, among many others. Based on the current Linux landscape and release strategy, Microsoft has stated that images for .NET 6 will be based on Alpine 3.13, Debian 11, and Ubuntu 20.04. Once the company begins to release new .NET 6 images, this base image version will not change. Debian 10, which has been used as the image in multiple past releases, will be retired.
The .NET command-line interface (CLI) also has a bunch of new experiences thanks to adoption of the System.CommandLine libraries. These include response files and Directives. Furthermore, math APIs and libraries have been added to .NET 6 too. It includes better support for Windows access control lists (ACLs) as well, with improvements to various relevant methods such as Semaphores and Mutex.
The .NET thread pool has been redesigned to enhance portability. It will be the standard for .NET releases going forward, and will allow applications to have access to the shared thread pool, regardless of their runtime.
A major part of .NET 6 Preview 1 is support for Apple Silicon. However, Microsoft has emphasized that this is currently in alpha stage. With this release, both ARM64 and x64 builds for macOS are being released. According to the company, this has been a major effort and as such, it does not plan to release ARM64 versions for earlier releases of .NET. Microsoft has also thanked Apple for all its support in bringing .NET 6 to Apple Silicon.
That said, there are still some issues with the current release on Apple Silicon. Debugging native .NET apps doesn't currently work for any Visual Studio product. Microsoft plans to add support for this in Preview 3. Other known issues include:
.NET has not been fully tested on Rosetta 2 emulation, but Microsoft has noted that this is a temporary bridge connected to ARM64 anyway, and will likely not be supported forever by Apple. The Redmond giant plans to support .NET on Macs on these older machines as long as Apple supports them.
As stated, another focus of this release is also performance improvements. As such, .NET 6 Preview 1 brings enhancements to single file apps, single-file signing on macOS, hardware-accelerated structs, and dynamic PGO. It also includes Crossgen2 - a new iteration of the initial Crossgen tool - which allows for easier code generation and cross-generation development. Currently, the SDK defaults to Crossgen, but will be moving to Crossgen2 in future preview releases.
.NET 6 will be officially released in November 2021, similar to how .NET 5.0 was released in the same timeframe last year. You can download .NET 6 by heading to this dedicated webpage and find out more details about it in the extensive blog post here. Microsoft has also stated that .NET 6 Preview 1 was tested on Visual Studio 16.9 Preview 4 and Visual Studio for Mac 8.9, so it is recommended that you use these configurations to test it for yourself.
ISRG to begin making Apache HTTP Server more secure
by Paul Hill
The Internet Security Research Group, the organisation behind Let’s Encrypt, has announced that it’ll be making the Apache HTTP Server implementation of httpd more secure by incrementally moving core components from C to Rust to address memory safety issues. First, work on a new TLS module for httpd, called mod_tls, will be re-written using the Rustls library in place of OpenSSL.
The ISRG’s Josh Aas said that he hopes the new mod_tls will someday replace mod_ssl that httpd currently uses as the default. The ISRG has secured funding from Google to contract Stefan Eissing – an httpd committer – to write the new module in Rust.
The ISRG has decided to look at httpd because it is used on hundreds of millions of websites every day to serve requests. By fixing issues with it, the security improvements will have a broad impact. The most common types of issues affecting httpd are memory safety issues which arise due to the use of the C programming language being used to write the software. In the last decade, the Rust programming language has matured and by default only lets you compile memory-safe programs; by writing httpd components in this language you eliminate a whole host of vulnerabilities.
Commenting on the role of C and Rust, ISRG’s Josh Aas said:
One of Apache httpd’s founders, Brian Behlendorf, also commented on the project saying:
The ISRG’s Let’s Encrypt project has already made a huge impact on the internet, ensuring that more sites can offer HTTPS connections to their users which provides a more secure experience.
Raspberry Pi Pico has gone on sale for just $4
by Paul Hill
The DIY computer firm Raspberry Pi has announced its first microcontroller-class product, the Raspberry Pi Pico. The company said that the new $4 product is based on the RP2040 chip which it developed and that it’s ideal for “deep-embedded development” or as a companion to your Raspberry Pi computer.
The new microcontroller is available for purchase now from one of Raspberry Pi’s approved retailers which can be found over on the product’s page. Alternatively, you can buy a copy of HackSpace #39 which comes with a free Pico as well as guides and tutorials that you can follow along with to put your new hardware to use.
Discussing the RP2040, Raspberry Pi said that it had three design goals: high performance, flexible I/O and low cost. The Raspberry Pi Pico was described by the company as the RP2040’s “low-cost breakout board” and pairs the RP2040 with 2MB of memory. The specs for the Pico are:
If you’re a beginner wondering what to do with the device, the Pico Getting Started page can help you to begin writing MicroPython and C code that can be executed on the Pico. The creator of MicroPython, Damien George, worked with Raspberry Pi to build a polished port for the RP2040 that exposes all of the chip’s hardware features. Support for RP2040 MicroPython was also added to the Thonny IDE by Aivar Annamaa.
If you’ve never bought anything from Raspberry Pi but you’re curious about their products, the Pico seems like a really good place to start with its very low price tag.
Microsoft releases .NET 5.0 with improved ARM64 performance and a lot more
by João Carrasqueira
Microsoft has announced that the latest release of .NET is now generally available, with the version number being 5.0. This release is a major update for the platform, and Microsoft has already been using it internally for many purposes, including running the .NET website on .NET 5.0 since the first preview was released, with Bing also using the new platform. Surprisingly, the schedule for this release was set back in May of last year, and Microsoft actually managed to meet it.
This release is the first of two that place a big focus on the unification of .NET. With this version. Microsoft wants .NET Framework developers to migrate their code and apps to .NET 5.0, and some of the groundwork has been laid for Xamarin developers to transition to the new unified platform when .NET 6.0 releases next year. The goal is for all .NET components to be unified under one product, where users can then pick and choose which parts of .NET they want to use, instead of downloading and installing everything separately.
Aside from that, .NET 5.0 brings a ton of improvements to the table, and Microsoft has highlighted some of the more notable changes, including some performance improvements, which Microsoft previously explored here. Here are all the highlights of this release:
A noteworthy change is that .NET 5.0 apps can run natively on ARM64 Windows devices, removing some performance barriers that came from emulation. However, Windows Desktop components aren't available for ARM64 devices in this release - that's planned for a servicing update for .NET 5.0. If you'd like to dive deeper into the changes in this release, you can read the full blog post. The full release notes can be found here.
.NET 5.0 is available to download now, and you can get it in a multitude of ways depending on your preferred platform - installers and binaries are here, container images are here, and Linux packages are here. You'll need to have Visual Studio 16.8 on Windows or the latest release on macOS to use .NET 5.0 with it. Going forward, Microsoft plans to release a major new version of .NET every year in November.
Python replaces Java as second most popular language
by Paul Hill
The TIOBE Index has been updated for the month of November and it has ranked Python as the second most popular programming language overtaking Java. C has held onto its first-place position and even saw a slight increase in its popularity compared to last month.
Peter Jansen, the CEO of TIOBE Software which runs the TIOBE Index, said that for the first time in nearly 20 years, C and Java don’t make up the top two positions. Jansen said that people put Python’s popularity down to “booming” fields such as data mining, AI and numerical computing but Jansen feels as though Python’s popularity is more to do with general demand.
Explaining the situation a bit more, he said:
The TIOBE Index is useful for those wanting to know whether their programming skills are up to date, it can also help you decide which programming languages to use when beginning a new project. Ratings are updated once a month and are based on the number of skilled engineers worldwide, courses and third-party vendors as well as search engine results.
It’s not clear yet whether Python will replace C as the number one language but since the end of 2017 it has been sharply increasing in popularity, C, on the other hand, is in a slow decline.