Microsoft Details Sneak-Peek Preview of Azure Functions on .NET 6
Developers can now experiment with serverless computing projects with Azure Functions on the latest preview of the upcoming .NET 6 milestone release.
The Azure Functions dev team provided .NET 5 support earlier this year by creating a new .NET isolated process model, required because of the tight coupling between the host process and functions, an in-process model. Because the Azure Functions host runtime typically runs on .NET Core 3.1, the isolated process was needed to decouple that integration and get it to work on .NET 5.
That model works fine on .NET 5 with the latest Visual Studio 2019 v16.10 release that shipped last month, providing full support for creating, local debugging and deploying .NET 5.0 isolated process Azure Functions apps.
Now, with the ground-breaking and unifying .NET 6 LTS release coming up in November, the team is previewing Azure Function support with both the isolated process and the in-process programming models.
Here are some of the differences between the two models:
This early preview -- no official support -- works with .NET 6 Preview 4 and requires the preview Azure Functions V4 release. That's a lot of preview bits, and developers are reminded:
- At this time, you can only deploy .NET 6.0 function apps to Azure Functions V4 preview on Windows hosting plans.
- Currently, there are no optimizations enabled for .NET 6.0 apps in Azure. You may notice increased cold-start times.
- While other language workers are included in the current Core Tools V4 preview, they are unsupported at this time. Continue to use Azure Functions V3 and Core Tools V3 for other languages and production workloads.
"The isolated process model for .NET is new and there are some differences compared to the in-process model," Microsoft said in a June 9 blog post. "Many will be addressed as the programming model continues to evolve. If you need access to features that are currently missing, such as Durable Functions, use the in-process model."
The diagram below shows what process models work with what .NET versions:
To help developers experiment with all the new early preview functionality, Microsoft has published Quickstarts: Azure Functions V4 (.NET 6.0) early preview on GitHub.
The team earlier this year also posted a roadmap indicating what's coming up for Azure Functions, with parts of it reading (verbatim):
- .NET 6 LTS: .NET 6 functions will support both in-process and isolated process options. The in-process option will support the full feature set available in .NET Core 3.1 functions today, including Durable Functions and rich binding types. The isolated process option will provide an upgrade path for apps using this option for .NET 5 and initially will have the same feature set and limitations.
.NET 7 and Beyond: Long term, our vision is to have full feature parity out of process, bringing many of the features that are currently exclusive to the in-process model to the isolated model. We plan to begin delivering improvements to the isolated model after the .NET 6 general availability release.
.NET 7 is scheduled for the second half of 2022, and we plan to support .NET 7 on day 1 exclusively in the isolated model. We expect that you'll be able to migrate and run almost any .NET serverless workload in the isolated worker -- including Durable Functions and other targeted improvements to the isolated model.
- .NET Framework: Currently, .NET Framework is supported in the Azure Functions V1 host. As the isolated model for .NET continues to evolve, we will investigate the feasibility of running the .NET isolated worker SDK in .NET Framework apps. This could allow users to develop apps targeting .NET Framework on newer versions of the functions runtime.
The dev team promised more in the coming months: "We're bringing .NET 6.0 Azure Functions support to tools like Visual Studio and Visual Studio Code and to all hosting plans in Azure. Expect a public preview of Azure Functions V4 in the third quarter of this year and general availability in November. Follow our twitter account for the latest updates: @AzureFunctions."
David Ramel is an editor and writer for Converge360.