What To Expect From .NET Core 3.0.
With the introduction of .NET Core 3.0, we asked our .NET Divisional Manager Andrei Salanoi to give us the top five feature changes coming our way.
1. HTTP related features
HTTP/2 support will be introduced with the .NET Core 3.0 upgrade. Support of this protocol provides developers with a number of very helpful benefits such as:
Protocol negotiation mechanism. Applications are able to select a protocol which works best for them as part of the communication process (HTTP 1.1, HTTP/ 2 or other)
Page load speed improvements due to the following key features of the new protocol:
• Multiple requests can be sent over single TCP collections, for example, a request multiplexing feature. This is powerful. It allows users to download multiple files in parallel from the same server using one connection. As a result, the site is loaded much faster.
• The communication protocol is binary rather than text (e.g. HTTP 1.1) – text commands are replaced with binary commands. As a result, network resources are used in a more effective manner, less request parsing errors are introduced and the whole request processing is easier from the server’s point of view.
• Compression of request headers. HTTP/2 compress a large number of redundant header frames. It uses the HPACK specification as a simple and secure approach to header compression. Both client and server maintain a list of headers used in previous client-server requests. The value of each header is compressed before it’s transferred to the server. The server then looks up the encoded information in the list of previously sent header values and this information is used to reconstruct header information for current requests.
TLS 1.3 support. This brings the following benefits:
• Improved connection times due to a reduction in the number of round trips required between the client and the server.
• Security improvements related to the removal of obsolete and insecure cryptographic algorithms.
• The ability, in certain circumstances, for clients to start sending encrypted data to the server straight away without any round trips with the server required.
2. Cryptographic API improvements:
Cryptographic Key Import and Export. Migration of .NET Framework applications to .NET Core can cause a lot of pain when the migrated code uses cryptographic components. With .NET Core 3.0 extended support of additional key times simplifies the migration process, and reduces the amount of custom code solving the same problems. For example, a developer is no longer forced to study details of different certificate formats in order to make .NET Core code work as a .NET Framework version.
3. Application publishing improvements.
These include the following features:
• Single executable (EXE)
• Assembly linking
• Build copies dependencies
These features allow complex applications to be shipped as a single file which, as a result, means the application deployment becomes as simple as file copying. The practice of assembly linking provides developers with an opportunity to reduce the size of the resulting application due to the removal of unused assemblies. Copying the build dependencies to an output folder makes the troubleshooting process much easier. Previously it was not an easy task to find out what libraries or assemblies were used by the application in development mode because the output folder only had the executable file for the application – the publish command was the only easy way to find out what the real dependencies were.
4. .NET Core 3.0 supports desktop applications.
Desktop application development will also now benefit from the .NET Core platform. Windows Presentation Foundation and Windows Forms applications can now be developed using .NET Core libraries, but there are still limitations regarding supported operating systems (Windows only). However, this looks like a big step towards a situation where cross-platform desktop application development will be possible in .NET Core.
5. Fast built-in JSON support.
There is a brand new JSON API which is tipped to be faster than the popular JSON.NET library. This feature looks promising because it reduces the dependency on the third-party library inside the .NET Core platform as well as looking attractive from the developer’s point of view. On the other hand, in certain cases, the new JSON API may provide a better performance which might be critical for some types of applications. According to the performance tests, the new API is 2-3 times faster than JSON.NET.
What are the current benefits of the .NET Framework?
.NET is a mature general-purpose development framework which can be used to create a variety of applications such as desktops, website, services, cloud applications and mobile applications.
Once a software developer has the experience of creating applications in the .NET Framework, those skills and tools can be used to develop applications of other types. Initially, the .NET Framework was a Windows-only framework, with some limited support available for Linux with the help of Mono, but once .NET Core was introduced, the .NET platform became a cross-platform development framework. Now it can be used to develop applications for Windows, Linux and macOS systems.
How can Godel help its customers with .NET Core?
Godel can provide a wider range of technical solutions with the ability to use cutting edge tools and technologies for customers – who no longer need to be rooted in Windows-based solutions. We can help organisations across many more platforms. Godel is at the cutting edge of new technologies and can deliver the best of new talent and knowledge to deliver those skills.