Net News

Download as pdf or txt
Download as pdf or txt
You are on page 1of 3

Earlier this week, Microsoft announced the release of .NET Core 3.0 simultaneously at .

NET Conf
2019 and on their development blog. The new release includes support for Windows Desktop apps
using Windows Forms and Windows Presentation Framework (WPF), new JSON APIs, support
for Linux ARM64, and overall performance improvements. F# 4.7 and C# 8.0 are also featured as
part of this release.

In this new version, .NET Core completely supports the development of Windows Desktop
applications using Windows Forms, WPF, and UWP XAML. This is one of the most important
features of this release: Microsoft presented it as the highlight of .NET Core 3 earlier this year, at
Microsoft Build Live. Windows Forms and WPF were open-sourced last year, along with the
Windows UI XAML Library (WinUI). Since then, the development efforts were focused on
ensuring that .NET Framework compatibility was maintained - which included ease of porting
from .NET Framework to .NET Core.

While porting desktop applications to .NET Core is an important feature, the new features also
include new templates and tools. The XAML designer in Visual Studio was updated, and it now
includes a feature called XAML Hot Reload. This new feature allows a developer to make changes
to the XAML code while the application is still running. The Windows Forms designer was also
updated, but it is still in preview (available as a separate download for Visual Studio). It is
important to notice that Windows Forms and WPF applications only work on Windows.
Other important features related to Windows Desktop development refer to using and deploying
different .NET Core versions. Windows Desktop apps can now be distributed as self-contained
applications: they can use their own .NET Core version, independently of the environment in
which they are deployed. There is also an option to distribute them as single-file executables,
which is important considering that in past releases, desktop applications needed to be launched
via the dotnet command. An interesting functionality related to single-file executables is the
dependency trimming: it removes all assemblies not being used by the application, making the
generated file smaller. This functionality, however, is still considered "experimental": it was
showcased at .NET Conf 2019, and generating a single executable while trimming the assemblies
from the sample application took a few minutes.

.NET Core 3.0 also includes new JSON APIs targeted at reader/writer scenarios, random access
with a document object model (DOM), and a serializer. The new APIs are in line with Microsoft's
plans of removing the dependency from ASP.NET Core to the Json.NET framework. These plans
also include creating high-performance JSON APIs, which would ultimately increase the
performance of Kestrel (the default web server included in ASP.NET Core templates). According
to Immo Landwerth, program manager on the .NET team at Microsoft:

The requirements for the .NET stack have changed a bit since the arrival of .NET Core.
Historically, .NET has valued usability and convenience. With .NET Core, we've added a focus
on performance, and we've made significant investments to serve high-performance needs. [...]
We believe in order to support JSON parsing, we'll need to expose a new set of JSON APIs that
are specifically geared for high-performance scenarios.

A new version of SqlClient (originally part of the System.Data.dll assembly in .NET Framework)
was also introduced in the new release. Besides being available in preview as a NuGet package,
the new version also features support for Always Encrypted, Data Classification, and UTF-8.

Support for Linux ARM64 comes as part of the IoT development effort. According to Richard
Lander, program manager on the .NET Team at Microsoft:

We added support for Linux ARM64 in this release, after having added support for ARM32 for
Linux and Windows in the .NET Core 2.1 and 2.2, respectively. While some IoT workloads take
advantage of our existing x64 capabilities, many users had been asking for ARM support. That is
now in place, and we are working with customers who are planning large deployments.

Finally, the details on all performance improvements can be found here. These improvements
include making the Garbage Collector (GC) using less memory by default (by making the heap
sizes smaller) and reducing the .NET Core SDK to 25%-30% of its original size (on-disk,
depending on the operating system). Other features include support for Docker resource limits and
support for TLS 1.3 and OpenSSL 1.1.1 on Linux. C# 8.0 and F# 4.7 are also included as part of
the .NET Core 3.0 release due to their significance. The F# Core Library now targets .NET
Standard 2.0, and C# 8.0 adds async streams and nullable reference types.

An interesting characteristic of this release is related to the development process. Microsoft


announces .NET Core 3.0 as "battle-tested", since it is being hosted for months at dot.net and
Bing.com. This was also noted by the community - as user Manigandham on HackerNews points
out:

.Net 3.0 has gone through about a dozen preview releases and the last 4 have a go-live production
license. It's much better tested than the old .NET Framework with its monolithic releases.

According to the official roadmap .NET Core 3.1 Long Term Support (LTS) will be released later
this year, in November. .NET Core 3.0 is supported on Windows 7+, Windows Server 2012 R2
SP1+, macOS 10.13+, and different Linux distributions. The latest version of Visual Studio 2019
(16.3 on Windows, 8.3 on macOS) is required for using .NET Core 3.0. Also, Visual Studio App
Center was already updated to support applications developed in the new version of .NET Core.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy