Inside the upcoming updates - What’s new in ASP.NET Core 7.0
A viral topic nowadays is the November releasement of the ASP.NET Core 7.0 version. If you didn’t use .NET already, you probably heard that it is one of the most popular platforms for building many different types of applications. If you ask developers, they would likely get in line with .NET, because it’s provided with many tools that make their work easier.
According to Amazon’s article, one of the advantages is the usage of the Visual Studio suite which allows developers to write code faster, collaborate efficiently, and test and fix their code efficiently. Applications built in .NET provide faster response times and require less computing power so developers can easily create high-performing applications.
What do we like about .NET Core 7?
The most important thing about .NET is that it is open source and it is under the .NET foundations, which means that anyone can get access to use, read, and modify it freely. Any developer can propose a fix if Microsoft doesn’t respond quickly enough. If the fix isn’t accepted, the discussion is held in public so that everyone can see why that decision was made.
Also, any developer can report a bug or propose a new feature to the .NET development team so they can prioritize and fix them. The .NET development team is constantly working to improve .NET, so Microsoft releases new versions frequently. The current official stable version is .NET 7. This version is released on 11. November 2022, so it’s interesting to talk about new features.
The 6 significant features of the new ASP.NET Core version include:
- Native AOT
- The newly created class for generating X.500 names
- Easier upgrading .NET applications
- Upgraded Hot Reload
- Microseconds and Nanoseconds in date/time structures
- New Tar APIs
1. Native AOT in .NET Core 7
The dotnet team presented Native AOT as a part of the .NET 7 preview. Before that, it was part of the .NET Runtime Lab. As it is noted in the Medium.com article, Native AOT is Ahead-of-time (simply AOT) generates code at compile-time instead of run-time. . When we use Native AOT applications start running the moment the operating system pages them into memory and the data structures are optimized for running AOT generated code. Languages like Go, Swift, and Rust use the similar principle of compiling.
Native AOT is best suited for environments where startup time matters the most. Its main goal is to improve performance mainly in startup time, memory usage, and disk size. Native compiled apps startup is faster since they execute already compiled code in a single file. Also, the key benefit of using Native AOT is that users of the application can run it on a machine that doesn’t have the .NET runtime installed.
The benefit of native AOT is most significant for workloads with a high number of deployed instances, such as cloud infrastructure and hyper-scale services.
2. The newly created class for generating X.500 names in .NET Core 7
In the previous versions of .NET, X.500 names were created using input sanitation, escaping, or a combination of both. The problem with this type of creation is that it is not safe and easy to use.
So, Microsoft decided to introduce a new X500DistingishedName class to make it safer and easier to build X.500 names. X500DistingishedName is like an extension to the SubjectName or IssuerName property, which is the name of the person or entity that the certificate is being issued. X.500 is an international standard for distributed directory services.
3. Easier upgrading .NET applications
As we already mention, developers like to use programming languages that have good support and that are constantly improving. Another important thing is to be able to easily upgrade older applications to use new versions. For upgrading .NET versions developers can use the .NET Upgrade Assistant which provides step-by-step guidance, insights, and automation for bringing your legacy apps to .NET 6 and .NET 7. It helps reduce time and complexity when modernizing older codebases.
Still, migrating older applications to .NET 6 has not been the easiest thing in the world. That’s why Microsoft is bringing new upgrade enhancements for older applications. In the new version of .NET Upgrade Assistant Microsoft added more code analyzers, code checkers, and compatibility checkers which developers can use.
4. Upgraded Hot Reload
Microsoft .NET 6 RC1 was released with so many new features and improvements. Hot reload is one of the most impressive features in .NET 6 and was introduced in the .NET 6 preview. Hot Reload allows you to make changes to your application’s source code while it’s running and see them in real-time without having to restart it. You can alter your app’s managed source code while it’s running without having to manually pause or reach a breakpoint, thanks to Hot Reload. With hot reload, you can quickly develop apps, save time, and enhance productivity.
Hot Reload works with many of your existing and upcoming project types such as WPF, Windows Forms, .NET MAUI previews, .NET apps code-behind, Console applications, WinUI 3, and many others. This support is very broad with the core experience working with any project that is powered by .NET Framework or CoreCLR runtimes.
Upgraded Ho Reload in .NET 7 includes new features such as:
- Adding static lambdas to existing methods
- Adding lambdas that capture this to existing methods that already have at least one lambda that captures this
- Adding new static or non-virtual instance methods to existing classes
- Adding new static fields to existing classes
- Adding new classes
5. Microseconds and Nanoseconds in date/time structures
Prior to Preview 4, the lowest increment of time available in the various date and time structures was the “tick” available in the Ticks property. In .NET, a single tick is 100ns. Developers traditionally have had to perform computations on the “tick” value to determine microsecond and nanosecond values. So, Microseconds and nanoseconds have been added to the DateTime, TimeStamp, TimeOnly, and DateTimeOffset structures.
By adding these to the above-mentioned structures, .NET developers can save a lot of time by not having to perform calculations and computations via the Ticks property of the DateTime, TimeStamp, TimeOnly, and DateTimeOffset structures.
Let’s see the new DateTime and TimeOnly structures example:
6. New Tar APIs
TAR is a popular UNIX-based archiving format that is used to package multiple files including audio, videos, installers, etc. In .NET 7 we can use new Tar APIs to read and write tar archives. Let’s see an example of usage: