microsoft / microsoft/vscode-azurefunctions
Update Durable Functions VS Code templates to use Durable Task Scheduler by default
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 319
- Forks
- 158
- Avg merge
- 2d 13h
- Merged PRs (30d)
- 4
Description
Summary
Update the Durable Functions VS Code project templates to use Durable Task Scheduler (DTS) as the default backend instead of Azure Storage.
Motivation
DTS is the recommended backend for Durable Functions, offering the best performance, built-in monitoring, orchestration versioning, and retention policies. New projects should default to the optimal experience
out of the box.
Required Changes
- Update host.json configuration
The generated host.json should configure DTS (azureManaged) as the storage provider with the hubName property:
{
"version": "2.0",
"extensions": {
"durableTask": {
"hubName": "%TASKHUB_NAME%",
"storageProvider": {
"type": "azureManaged",
"connectionStringName": "DURABLE_TASK_SCHEDULER_CONNECTION_STRING"
}
}
}
}
- Update extension bundles (non-.NET languages only)
For JavaScript/TypeScript, Python, Java, and PowerShell templates, update the extension bundle in host.json to a version that includes the azureManaged storage provider:
{
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.*, 5.0.0)"
}
}
- Update NuGet package (.NET only)
For .NET isolated templates, ensure the project references the Durable Task extension package:
<PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.DurableTask" Version="1.16.3" />
- Update local.settings.json for emulator defaults
The generated local.settings.json should include the DTS emulator connection string and task hub name:
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"FUNCTIONS_WORKER_RUNTIME": "<dotnet-isolated|node|python|java|powershell>",
"DURABLE_TASK_SCHEDULER_CONNECTION_STRING": "Endpoint=http://localhost:8080;Authentication=None",
"TASKHUB_NAME": "default"
}
}
- Integrate DTS emulator for local development
The template scaffolding should ensure the DTS emulator Docker container is available for local development:
docker pull mcr.microsoft.com/dts/dts-emulator:latest
docker run --name dtsemulator -d -p 8080:8080 -p 8082:8082 mcr.microsoft.com/dts/dts-emulator:latest
- Port 8080 — emulator endpoint (used by the connection string)
- Port 8082 — built-in monitoring dashboard (http://localhost:8082)
Consider adding a VS Code task or tasks.json entry to start the emulator automatically, so F5 works out of the box without manual Docker commands.
6. Templates to Update
The following Durable Functions template categories need to be updated to use DTS as the default backend. These templates span multiple repos and surfaces (VS Code, CLI, Portal).
Repo: Azure/azure-functions-templates
| Template | Languages |
|---|---|
| DurableFunctionsOrchestration | C# (Isolated, 2.x), Python, TypeScript, JavaScript, Java |
| DurableFunctionsOrchestrator | C# (Isolated, 2.x), Python, TypeScript, JavaScript, PowerShell |
| DurableFunctionsHttpStart | C# (Isolated, 2.x), Python, TypeScript, JavaScript, PowerShell |
| DurableFunctionsActivity | C# (2.x), Python, TypeScript, JavaScript, PowerShell |
| DurableFunctionsEntityClass | C# (Isolated, 2.x) |
| DurableFunctionsEntityFunction | C# (Isolated, 2.x) |
| DurableFunctionsEntity | Python, TypeScript, JavaScript |
| DurableFunctionsEntityHttp | C# (2.x) |
| DurableFunctionsEntityHttpStart | C# (2.x), TypeScript, JavaScript |
Repo: Azure/azure-functions-templates-mcp-server
| Template | Language |
|---|---|
| DurableFunctionsOrchestration | C# |
| DurableFunctionsEntityClass | C# |
| DurableFunctionsEntityFunction | C# |
| DurableFunctions | Java |
7. Acceptance Criteria
- New Durable Functions projects created from VS Code templates use DTS as the default backend
- host.json is pre-configured with azureManaged storage provider
- Non-.NET templates include extension bundle [4.*,
5.0.0) - .NET isolated templates reference Microsoft.Azure.Functions.Worker.Extensions.DurableTask v1.16.3+
- local.settings.json includes emulator connection string and task hub name
- DTS emulator is downloaded and configured for local development
- F5 local debugging experience works seamlessly with the emulator
- Documentation/comments in generated files guide users on switching to a cloud DTS resource for deployment
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in Azure/azure-functions-templates and Azure/azure-functions-templates-mcp-server by inspecting the listed Durable Functions template categories and their generated host.json, local.settings.json, and project package references. Run the relevant template-generation and local F5 flow, then verify that DTS is the default, the emulator is configured, and the documented acceptance criteria are met.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- azure, csharp, docker, java, javascript, powershell, python, typescript, vscode
- Domain
- cloud, devops, tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100