.NET Core 3 was released on 23 September 2019. If you have been using ASP.NET Core for a duration, the major change is that .NET Core 3.0 cannot run on top of the .NET Framework.
.NET Core 3.0 originates an opt-in feature that permits your app to roll forward to the current major version of .NET Core. Microsoft has introduced that .NET Core in specific is where the revolution will be. There is a plan to coincide.
Moreover, it is a free, open-source development environment for developing any genre of application such as web, Android, iOS, cloud, and IoT Applications.
.Net Core is one of the most preferred platforms in almost many .Net web development companies because .Net core is supported by Microsoft as well as the .NET community on GitHub. An updated setting has been attached to control how to roll forward is involved in your app.
The three main features of .NET Core 3.0, chief of Microsoft expressed are:
- UI interoperability and Desktop caseload.
- Machine Learning and Artificial Intelligence.
- Cloud and web app development efficiency.
Table of Content
- 1. .Net Core 3 platform support
- 2. ASP.NET Core packaging
- 3. Assembly loadability
- 4. ASP.NET Core SignalR
- 5. Windows desktop apps
- 6. Layered Compilation
- 7. Security in ASP.NET Core
- 8. Blazor
- 9. Blazor Server
- 10. JSON serialization
- 11. C# 8 support
- 12. Performance Improvement
- 13. Support for HTTP/2
- 14. gRPC
What’s new in .NET Core 3?
With comprehensive support from Microsoft, you can now use many of the new features in your production applications. Let’s explore what is new to the platform and take them one by one.
.Net Core 3 platform support
It maintains an ample range of Operating System like Windows Server: 2012, Windows Client: 7, 8.1, 10, RHEL: 6+, macOS: 10.12+, Ubuntu: 16.04+, Fedora: 26+, SLES: 12+, Alpine: 3.8+, and openSUSE: 42.3+.
ASP.NET Core packaging
.NET Core 3.0 announced that ASP.NET Core is now an SDK, not a set of apparent libraries. In previous versions of ASP.NET Core, you might have gained the different pieces of ASP.NET Core as separate NuGet packages.
With it, an application can store and empty gathering with no memory spill. It is another ability of AssemblyLoadContext, which is effortless from an API viewpoint and unwrapped with only a couple of new APIs. It allows releasing all memory for classification types, a loader set to be emptied and get together intrinsically, and static fields.
ASP.NET Core SignalR
It’s a persuading theme but the new endpoint routing modifies how you wire up SignalR as well. In ASP.NET Core 3.0, make sure you are using the Core version of SignalR but this hasn’t replaced much from the 2.2 version.
Windows desktop apps
One can fabricate windows desktop applications exploiting windows forms and WPF with the .NET Core 3.0. It holds up deploying modern controls and familiar styling from the Windows UI XAML Library (WinUI).
It is by default feature in .NET Core 3.0 that authorizes the runtime to all the more adjustable in exploiting the Just-In-Time compiler to represent efficiently better.
Security in ASP.NET Core
Security in ASP.NET Core offers other plumbing changes, but this one is slight.
ASP.NET Core 3.0 also has some trivial features including:
- Recently added AES-CCM and AES- GCM cyphers
- HTTP/2 maintenance
- OpenSSL 1.1.1 and TLS 1.3 on Linux
- Import or Export unsymmetrical keys without any necessity for an X.509 certificate
Based on the updates applied for the UI, Blazor dissociates the rendering logic of the component. In an Asp.Net Core app, the Blazor server offers impeccable support for Razor components to get hosted on the server. And through the help of the SignalR connection, the User Interface updates would be efficiently handled.
Asp.net Core 3.0 no longer relies on JSON.NET to serialize and deserialize JSON Data. There is a new library that has been introduced in System.Text.Json namespace for serializing and deserializing JSON.
C# 8 support
ASP.NET Core 3.0 has full support for C# 8. C# 8 has lost of performance changes and language improvements. The following are some major changes in C# 8
- Async streams
- The supporting features of Range and Index classes make working with arrays much simpler.
- With the usage of Nullable Reference Types, it becomes possible to deal with null related concerns in the code.
- Default implementations for functions (methods) would be displayed for Interfaces
- To overcome the code indentation related issues, the variable could be scoped by using-declaration.
- Pattern matching support with returning expression would now be possible through a switch statement.
- Reduction in memory usages when using the built-in dependency injection container for scoped variable
- Reduce memory usages for WebSocket connections.
- Reduce memory usage and throughput improvements in form parsing.
Support for HTTP/2
The HttpClient class has included with the HTTP/2 protocol, a new data communication standard over the web. Compared to its previous, HTTP/2 is less prone to errors and can reduce latency. It also has a smaller network footprint. default protocol in ASP.NET Core 3.0 is HTTP/1.1. if one wants to use HTTP/2 than it has to set manually. Keep in mind both server and client both have support for HTTP/s than only one can use HTTP/2.
gRPC is an open-source framework that is developed by the tech giant Google possibly to form distributed systems by connecting the services. Basically, this project is implemented for the purpose of communication between the web services promoting with the RPC (Remote Procedure Call) model.
Before the release of the .NET Core 3.0 framework, the C# applications have to utilize the Grpc.Core library to work with gRPC, a C# wrapper.
These given characteristics of gRPC functionality are included in ASP.NET Core 3.0:
- Grpc.AspNetCore: It is a popular ASP.NET Core framework for that is helpful to host gRPC services. gRPC on ASP.NET Core integrates with standard features of ASP.NET Core such as dependency injection (DI), logging, authorization, and authentication.
- Grpc.Net.Client: A gRPC client for .NET Core that builds upon the familiar HttpClient.
- Grpc.Net.ClientFactory: gRPC client integration with HttpClientFactory.