@@ -253,23 +253,23 @@ This section describes the current state of the functional and behavioral differ
253
253
| ---- | ---- | ---- |
254
254
| .NET versions | .NET Core 3.1<br />.NET 6.0 | .NET 6.0<br />.NET 7.0 (Preview)<br />.NET Framework 4.8 (Preview) |
255
255
| Core packages | [ Microsoft.NET.Sdk.Functions] ( https://www.nuget.org/packages/Microsoft.NET.Sdk.Functions/ ) | [ Microsoft.Azure.Functions.Worker] ( https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker/ ) <br />[ Microsoft.Azure.Functions.Worker.Sdk] ( https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Sdk ) |
256
- | Binding extension packages | [ Microsoft.Azure.WebJobs.Extensions.* ] ( https://www.nuget.org/packages?q=Microsoft.Azure.WebJobs.Extensions ) | Under [ Microsoft.Azure.Functions.Worker.Extensions.* ] ( https://www.nuget.org/packages?q=Microsoft.Azure.Functions.Worker.Extensions ) |
257
- | Logging | [ ILogger] passed to the function | [ ILogger] obtained from [ FunctionContext] |
258
- | Cancellation tokens | [ Supported] ( functions-dotnet-class-library.md#cancellation-tokens ) | Not supported |
259
- | Output bindings | Out parameters | Return values |
260
- | Output binding types | ` IAsyncCollector ` , [ DocumentClient] , [ BrokeredMessage] , and other client-specific types | Simple types, JSON serializable types, and arrays. |
261
- | Multiple output bindings | Supported | [ Supported] ( #multiple-output-bindings ) |
262
- | HTTP trigger | [ HttpRequest] /[ ObjectResult] | [ HttpRequestData] /[ HttpResponseData] |
256
+ | Binding extension packages | [ Microsoft.Azure.WebJobs.Extensions.* ] ( https://www.nuget.org/packages?q=Microsoft.Azure.WebJobs.Extensions ) | [ Microsoft.Azure.Functions.Worker.Extensions.* ] ( https://www.nuget.org/packages?q=Microsoft.Azure.Functions.Worker.Extensions ) |
263
257
| Durable Functions | [ Supported] ( durable/durable-functions-overview.md ) | [ Supported (public preview)] ( https://github.com/microsoft/durabletask-dotnet#usage-with-azure-functions ) |
264
- | Imperative bindings | [ Supported] ( functions-dotnet-class-library.md#binding-at-runtime ) | Not supported |
265
- | function.json artifact | Generated | Not generated |
266
- | Configuration | [ host.json] ( functions-host-json.md ) | [ host.json] ( functions-host-json.md ) and custom initialization |
258
+ | Model types exposed by bindings | Simple types<br />JSON serializable types<br />Arrays/enumerations<br />Service SDK types such as [ BlobClient] <br />` IAsyncCollector ` (for output bindings) | Simple types<br />JSON serializable types<br />Arrays/enumerations |
259
+ | HTTP trigger model types| [ HttpRequest] /[ ObjectResult] | [ HttpRequestData] /[ HttpResponseData] |
260
+ | Output binding interaction | Return values (single output only)<br />` out ` parameters<br />` IAsyncCollector ` | Return values (expanded model with single or [ multiple outputs] ( #multiple-output-bindings ) ) |
261
+ | Imperative bindings<sup >1</sup > | [ Supported] ( functions-dotnet-class-library.md#binding-at-runtime ) | Not supported |
267
262
| Dependency injection | [ Supported] ( functions-dotnet-dependency-injection.md ) | [ Supported] ( #dependency-injection ) |
268
- | Middleware | Not supported | Supported |
269
- | Cold start times | Typical | Longer, because of just-in-time start-up. Run on Linux instead of Windows to reduce potential delays. |
263
+ | Middleware | Not supported | [ Supported] ( #middleware ) |
264
+ | Logging | [ ILogger] passed to the function<br />[ ILogger< ; T> ; ] via dependency injection | [ ILogger] /[ ILogger< ; T> ; ] obtained from [ FunctionContext] or via [ dependency injection] ( #dependency-injection ) |
265
+ | Application Insights dependencies | [ Supported] ( functions-monitoring.md#dependencies ) | [ Supported (public preview)] ( https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.ApplicationInsights ) |
266
+ | Cancellation tokens | [ Supported] ( functions-dotnet-class-library.md#cancellation-tokens ) | Not supported |
267
+ | Cold start times<sup >2</sup > | (Baseline) | Additionally includes process launch |
270
268
| ReadyToRun | [ Supported] ( functions-dotnet-class-library.md#readytorun ) | _ TBD_ |
271
- | Application Insights dependencies | [ Supported] ( functions-monitoring.md#dependencies ) | Not Supported |
272
269
270
+ <sup >1</sup > When you need to interact with a service using parameters determined at runtime, using the corresponding service SDKs directly is recommended over using imperative bindings. The SDKs are less verbose, cover more scenarios, and have advantages for error handling and debugging purposes. This recommendation applies to both models.
271
+
272
+ <sup >2</sup > Cold start times may be additionally impacted on Windows when using some preview versions of .NET due to just-in-time loading of preview frameworks. This applies to both the in-process and out-of-process models but may be particularly noticeable if comparing across different versions. This delay for preview versions is not present on Linux plans.
273
273
274
274
## Remote Debugging using Visual Studio
275
275
@@ -280,19 +280,21 @@ Because your isolated process app runs outside the Functions runtime, you need t
280
280
+ [ Learn more about best practices for Azure Functions] ( functions-best-practices.md )
281
281
282
282
283
- [ HostBuilder ] : /dotnet/api/microsoft.extensions.hosting.hostbuilder?view=dotnet-plat-ext-5.0&preserve-view=true
284
- [ IHost ] : /dotnet/api/microsoft.extensions.hosting.ihost?view=dotnet-plat-ext-5.0&preserve-view=true
283
+ [ HostBuilder ] : /dotnet/api/microsoft.extensions.hosting.hostbuilder
284
+ [ IHost ] : /dotnet/api/microsoft.extensions.hosting.ihost
285
285
[ ConfigureFunctionsWorkerDefaults ] : /dotnet/api/microsoft.extensions.hosting.workerhostbuilderextensions.configurefunctionsworkerdefaults?view=azure-dotnet&preserve-view=true#Microsoft_Extensions_Hosting_WorkerHostBuilderExtensions_ConfigureFunctionsWorkerDefaults_Microsoft_Extensions_Hosting_IHostBuilder_
286
- [ ConfigureAppConfiguration ] : /dotnet/api/microsoft.extensions.hosting.hostbuilder.configureappconfiguration?view=dotnet-plat-ext-5.0&preserve-view=true
287
- [ IServiceCollection ] : /dotnet/api/microsoft.extensions.dependencyinjection.iservicecollection?view=dotnet-plat-ext-5.0&preserve-view=true
288
- [ ConfigureServices ] : /dotnet/api/microsoft.extensions.hosting.hostbuilder.configureservices?view=dotnet-plat-ext-5.0&preserve-view=true
286
+ [ ConfigureAppConfiguration ] : /dotnet/api/microsoft.extensions.hosting.hostbuilder.configureappconfiguration
287
+ [ IServiceCollection ] : /dotnet/api/microsoft.extensions.dependencyinjection.iservicecollection
288
+ [ ConfigureServices ] : /dotnet/api/microsoft.extensions.hosting.hostbuilder.configureservices
289
289
[ FunctionContext ] : /dotnet/api/microsoft.azure.functions.worker.functioncontext?view=azure-dotnet&preserve-view=true
290
- [ ILogger ] : /dotnet/api/microsoft.extensions.logging.ilogger?view=dotnet-plat-ext-5.0&preserve-view=true
290
+ [ ILogger ] : /dotnet/api/microsoft.extensions.logging.ilogger
291
+ [ ILogger< ; T> ; ] : /dotnet/api/microsoft.extensions.logging.ilogger-1
291
292
[ GetLogger ] : /dotnet/api/microsoft.azure.functions.worker.functioncontextloggerextensions.getlogger?view=azure-dotnet&preserve-view=true
293
+ [ BlobClient ] : /dotnet/api/azure.storage.blobs.blobclient?view=azure-dotnet
292
294
[ DocumentClient ] : /dotnet/api/microsoft.azure.documents.client.documentclient
293
295
[ BrokeredMessage ] : /dotnet/api/microsoft.servicebus.messaging.brokeredmessage
294
296
[ HttpRequestData ] : /dotnet/api/microsoft.azure.functions.worker.http.httprequestdata?view=azure-dotnet&preserve-view=true
295
297
[ HttpResponseData ] : /dotnet/api/microsoft.azure.functions.worker.http.httpresponsedata?view=azure-dotnet&preserve-view=true
296
- [ HttpRequest ] : /dotnet/api/microsoft.aspnetcore.http.httprequest?view=aspnetcore-5.0&preserve-view=true
297
- [ ObjectResult ] : /dotnet/api/microsoft.aspnetcore.mvc.objectresult?view=aspnetcore-5.0&preserve-view=true
298
- [ JsonSerializerOptions ] : /dotnet/api/system.text.json.jsonserializeroptions?view=net-5.0&preserve-view=true
298
+ [ HttpRequest ] : /dotnet/api/microsoft.aspnetcore.http.httprequest
299
+ [ ObjectResult ] : /dotnet/api/microsoft.aspnetcore.mvc.objectresult
300
+ [ JsonSerializerOptions ] : /dotnet/api/system.text.json.jsonserializeroptions
0 commit comments