One More .NET 5 Preview Before 'Go Live' Release Candidate
Microsoft shipped preview 7 of the milestone .NET 5 project that in November will combine all things .NET under one unifying umbrella release in the company's new open source, cross-platform direction.
With the new Preview 7 now out, there will only be one more numbered preview before the huge project enters the "release candidate" stage, which for .NET 5 will consists of two RC releases that fill feature "go live" production code.
Not that the code hasn't already seen production use, as Microsoft has been eating its own dog food for the showcase .NET web site. "We've been running the dot.net site on .NET 5.0 since Preview 1 (50 percent on 5.0; 50 percent on 3.1) and it has worked great," Richard Lander, program manager for the .NET team, said in a July 21 blog post announcing .NET 5.0 Preview 7.
With most of the features of .NET 5 being close to done, Preview 7 doesn't introduce too much new stuff, with the big news about performance boosts already being presented via more than 250 pull requests.
Three areas that were called out by Lander in Preview 8 include enhancements to System.Text.Json, garbage collection, and RyuJIT, the assembly code generator for .NET that targets both Intel and ARM chips.
Speaking of compilation, AOT (ahead-of-time compilation), several developers expressed disappointment with the progress of adding that functionality.
In response to a reader comment about "still no mentions of AOT?" Lander said, "I'll be posting more about our single file project in the Preview 8 or RC1 post. The project has been more complicated than expected. That's the reason for the delay. The delay is not due to AOT, but the single file nature of the project. You can see what we're up to on GitHub @ https://github.com/dotnet/runtime/issues/36590
"The AOT part continues to be based on generating ready-to-run images. This is very similar to what you can use today with .NET Core 3.1. The combination of AOT, single file and a more linkable framework make the overall result much better."
Microsoft has said that while most .NET 5 workloads will use the existing just-in-time compiler (JIT), AOT native compilation will be used for iOS and client-side Blazor (based on WebAssembly). It has promised "massive speed gains" for Blazor.
Multiple developers weren't happy with Lander's answer to the AOT question, with one saying, "Your team cannot be trusted, you kept being evasive/ignoring questions related to AOT, then you finally spoke with .net 5 preview 5 saying we'll hear more about AOT for preview 7, here is preview 7 and not a single word about AOT."
And AOT isn't the only technology that is seemingly late to the .NET 5 party. Microsoft earlier confirmed that not all of the planned functionality originally envisioned for .NET 5 won't be ready because of development delays caused by the COVID-19 pandemic.
"Last year, we laid out our vision for one .NET and .NET 5," said Scott Hunter, director of program management, .NET, in a post published during the company's Build 2020 developer conference. "We said we would take .NET Core and Mono/Xamarin implementations and unify them into one base class library (BCL) and toolchain (SDK).
"In the wake of the global health pandemic, we've had to adapt to the changing needs of our customers and provide the support needed to assist with their smooth operations. Our efforts continue to be anchored in helping our customers address their most urgent needs. As a result, we expect these features to be available in preview by November 2020, but the unification will be truly completed with .NET 6, our Long-Term Support (LTS) release. Our vision hasn't changed, but our timeline has."
Microsoft also suffered some development delays in getting the client-side Blazor WebAssembly up to par with the with server-side Blazor Server, and in wrestling with the "huge technical challenge" of implementing desktop functionality in the new cross-platform .NET Core offering.
Lander also mentioned some other work that is progressing slowly in the Preview 7 announcement post. "Most features should be very close to done at this point. Single file and ARM64 intrinsics are two feature areas that are taking the longest time to complete, but are on track for Preview 8," he said.
David Ramel is an editor and writer for Converge360.