Developers, developers, developers, developers (dev … velopers, dev … splutter …)
.NET Core 3.0 is supported With Windows desktop applications, as well as cross-platform server implementations
Microsoft released .NET Core 3.0 and Visual Studio 2019 16.3 on Monday in its virtual .NET Conf that is underway this week.
The importance of .NET Core 3.0 is that it supports Windows desktop applications compiled with WPF (Windows Presentation Foundation) or Windows Forms, although only on Windows: this is not the cross-platform GUI framework much anticipated by many.
Along with desktop application support ,. NET Core 3.0 adds invocable COM components. Although there is not much talk now, COM remains deeply integrated into Windows development, so the ability to use .NET Core in COM callable libraries is critical.
The advent of .NET Core desktop support is not just about giving desktop developers another. NET option. It also means that WPF and Windows Forms, which are still widely used for commercial applications, are more likely to develop further. These frameworks were largely left behind when Microsoft created Windows 8 and began the path to Windows Runtime and then the development of UWP (Universal Windows Platform). Much of that strategy has been unrolled in Windows 10, and now Microsoft seems happy to present UWP as an option among many for desktop development. WPF and Windows Forms are now open source in their versions of .NET Core.
(Speaking of open source, and apart, Microsoft opened the code for its implementation of the C ++ Standard Library this month).
There are also key changes in .NET Core 3.0 that affect the way applications are compiled and implemented. Now compile framework dependent executables by default, which means an executable that is based on a globally installed .NET Core installation. There is also an option to compile a single executable file that includes all its dependencies, including the .NET Core runtime. These are decompressed in the application folder on the first run. It is a simple way to implement and it works on Windows, Linux and macOS.
System.NET in .NET Core 3.0 supports HTTP / 2. .NET Core will now also use TLS 1.3 security when available. The support for the gRPC protocol developed by Google is integrated in .NET Core 3.0, which is important for the development of microservices and to help interoperability.
Arm64 Linux is now also supported. The documents indicate that this is mainly for IoT support. However, support for Windows Arm64 is not yet available. The full list of new features is here.
However, there are more new things in the related frameworks. In particular, Blazor, which allows you to use C # running in the browser with WebAssembly, is part of ASP.NET Core 3.0. You also get Entity Framework Core 3.0, which adds support for Cosmos DB (the flexible database administrator in the Microsoft multi-model cloud) and the ability to consume the results of database queries as asynchronous flows.
Finally, there is something to keep in mind when installing the SDK:
If you installed the .NET Core 3.0 SDK manually, you will uninstall all preview versions. The VS-based installation does not seem to do this, so you must clean it manually.
– Barry Dorrans (@blowdart) September 24, 2019
C # 8.0 full version
This version also marks the official availability of C # 8.0, which introduces new features in the .NET main language. The biggest changes in C # 8.0 are the nullable reference types and the default implementations of the interface members. The point about voidable reference types is that the reference types are not voidable unless it is declared as a voidable type, using the query symbol. The idea is to make null reference exceptions, a common problem, less likely. For example:
string s maynotbenull;
string? s maybenull;
If the compiler detects that it is nullifying a non-nullable type, it will receive a warning, although by default the code will continue to compile. As this is a major change, the feature is disabled by default, but new project templates in Visual Studio 2019 will automatically activate it.
The default interface members allow you to add both members and an implementation of those members to the interface types. It's strange since conceptually the idea of interface types is that they don't include an implementation. However, the thought is that this allows you to add a default implementation to the existing code that implements an interface. Java also has this feature, as does the Swift language with default protocol implementation, so this change improves interoperability.
C # 8.0 also supports the creation and consumption of asynchronous flows, which, among other things, allows asynchronous flow support within the framework of the entity mentioned above. The complete list of news in C # 8 is here.
And finally, Microsoft has introduced Visual Studio 2019 16.3 and Visual Studio for Mac 8.3. These add support for .NET Core 3.0 along with a number of other new features, including support for Android Q for Android Xamarin applications.
.NET Framework for Windows only, which is installed and maintained as part of Windows, remains compatible and will be in the foreseeable future. In fact, Visual Studio 16.3 also adds support for the .NET Framework 4.8. However, most of the new features will be in .NET Core and the release of .NET Core 3.0 marks the moment when the .NET Framework is diverted to the legacy corner.
The supported operating systems are Windows 7 SP1 and higher, macOS X 10.13 and higher and several versions of Linux. The lack of an official GUI framework means that non-Windows development is primarily for server deployment, with Mac support more important for developers than for deployment. The implementation of Linux is the norm for workloads in containers, a big change from when C # was only for Windows. ®
How to get more from MicroStrategy by optimizing your data stack