Azure / azure-functions-dotnet-worker

Azure Functions out-of-process .NET language worker
MIT License
431 stars 184 forks source link

Tracking thread: .NET 9 GA #2817

Open mattchenderson opened 2 weeks ago

mattchenderson commented 2 weeks ago

This issue thread will track updates relating to GA support for .NET 9. Please see the latest comment for current status.

At time of this initial comment, .NET 9 is not yet GA. You can, however, use the preview of .NET 9 on Functions.

This issue will be locked so that updates from the team are not lost among other comments. For any questions, feedback, or other issues as the feature becomes available, please open a new issue.

mattchenderson commented 1 week ago

We strive to provide same-day support in public Azure for new GA versions of .NET. This comment outlines some of the steps we'll be taking on release day and what you can expect.

If you have any questions about components not covered in this thread, or issues with components as they are enabled, please open an issue using our .NET 9 template.

Considerations for your local project

To use .NET 9 in your projects, you'll need to:

At time of this writing, the 2.0.0 versions are in preview. The team will post an update in this thread when the GA versions are available.

Azure Functions Core Tools

You might initially see a preview label in the Core Tools, and templates might still reference preview versions of the core packages. A new version of the Core Tools will be released on GA day.

The team will post an update in this thread when the new version is available.

Visual Studio

If you use Visual Studio, you should also update to version 17.12. You might initially see Preview labels when creating new projects, and templates might still reference the preview versions of the core packages. New templates will be released on GA day, and you'll be able to update VS to use these. To check for updates, navigate to Tools > Options, choose Azure Functions under Projects and Solutions. Select Check for updates and install updates as prompted.

The team will post an update in this thread when the new templates are available.

Visual Studio Code

You might initially see Preview labels when creating new projects, and templates might still reference the preview versions of the core packages. New templates will be released on GA day, and VS Code will pick them up automatically.

The team will post an update in this thread when the new templates are available.

Considerations for Windows apps

Once .NET 9 is GA, we deploy it to the Windows fleet with a just-in-time installation mode (which we also use during the Preview window). While we're in this mode, apps can experience increased cold start time. This will be addressed by a full installation after the GA day. The full installation will be enabled in the weeks following the .NET 9 GA.

The team will post updates in this thread when each mode of suppport is available.

Considerations for Linux function apps

The .NET team typically publishes official container images on a slight delay after the SDK release. Azure Functions Linux offerings are not updated prior to this. There will be a slight delay between the publishing of the official image and support becoming available in the service. For our Dedicated and Elastic Premium SKUs, this is a fairly short delay. However, Linux Consumption involves a few more processes and tends to take a bit longer.

The Flex Consumption preview SKU is not yet a candidate for same-day support. Support for .NET 9 will be enabled in the weeks following the .NET 9 GA.

The team will post updates in this thread when support is available for each SKU.

Portal support

You might initially see Preview labels when creating new funciton apps. The Azure portal will be updated once the GA support is available in the platform. It might come out before there is support for every SKU, though. In particular, Linux Consumption may not have full support when the portal updates.

The team will post an update in this thread when the portal is updated.

Documentation

Azure Functions documentation will still refer to .NET 9 as preview for the week following the GA release.

The team will post an update in this thread when the documentation is updated.

mattchenderson commented 3 days ago

Happy .NET Conf! It's an exciting day for all of us on the Functions .NET crew, and we're looking forward to bringing you updates in this thread as we enable support for .NET 9. Please see the previous comment for a rough outline of what you can expect.

When the .NET 9 SDK first becomes generally available, our service will not yet have been updated. We'll enable support as soon as we can, and this is the right place to get the latest updates. Note that the GA SDK cannot be used with the earlier versions of the runtime. So if you attempt to publish to a function app before we indicate that the platform is ready, and you built the project with the GA SDK, you'll encounter runtime errors.

If you have any questions about components not covered in this thread, or issues with components as they are enabled, please open an issue using our .NET 9 template.

mattchenderson commented 3 days ago

We have published the 2.0.0 GA versions of the following packages:

Please note the following behavior changes when compared with the 1.x versions:

mattchenderson commented 3 days ago

Support for .NET 9 GA is now available for Linux on Dedicated and Elastic Premium App Service Plans. Apps already targeting .NET 9 from the preview period may need to restart to see the GA runtime.

The base image used for custom container image builds is not yet available. We will provide another update when that is ready.

Support is not yet available for Linux Consumption. We will provide another update when that option is enabled.

Support is not yet available for the Flex Consumption Preview. We will provide another update when support is enabled for Flex Consumption in the coming weeks.

mattchenderson commented 3 days ago

Visual Studio and Visual Studio Code have been updated to include the latest templates to support .NET 9.

In Visual Studio Code, the templates should update automatically.

In Visual Studio, the templates should update when VS is first launched and when opening a Functions project or creating a new one, after VS has first started. you can also force it to check for updates, by navigating to Tools > Options, choose Azure Functions under Projects and Solutions. Select Check for updates and install updates as prompted.

mattchenderson commented 3 days ago

Support for .NET 9 is now available for Windows apps.

This support uses the just-in-time installation mode, and a full installation deployment will follow. While we're in the just-in-time installation mode, apps can experience increased cold start time when using .NET 9.

We will provide another update when the full installation is completed in the coming weeks.

mattchenderson commented 2 days ago

We have published an updated version of our base image that can be used for building custom container images: mcr.microsoft.com/azure-functions/dotnet-isolated:4-dotnet-isolated9.0

If you are building container images, consider also trying out the new support for SDK container builds, which is included in version 2.0.0 of Microsoft.Azure.Functions.Worker.Sdk.

mattchenderson commented 2 days ago

A new version of the Azure Functions Core Tools is now available with the latest templates to support .NET 9. Please update your installation to version 4.0.6610.

The new version is available through the GitHub release and on NPM. It is also in the process of being made available in other acquisition channels. We will not track availability updates for those as part of this thread.

mattchenderson commented 8 hours ago

The Azure Portal in all regions should now show .NET 9 as a GA option for Functions, without the "Preview" tag.