Download Latest Version 1.7.0 source code.tar.gz (1.2 MB)
Email in envelope

Get an email when there's a new version of SDK .NET

Home / 1.6.0
Name Modified Size InfoDownloads / Week
Parent folder
1.6.0 source code.tar.gz 2025-04-17 1.1 MB
1.6.0 source code.zip 2025-04-17 1.5 MB
README.md 2025-04-17 3.8 kB
Totals: 3 Items   2.6 MB 1

Get from NuGet and read the README

Highlights

New Event Loop Algorithm

A significant change was made to the event loop internals to allow for proper expectations on tasks and wait conditions. Specifically for most users, the biggest difference is that only one WaitConditionAsync will be resolved at a time before the tasks continue. So now if you have multiple coroutines/tasks with:

:::csharp
await Workflow.WaitConditionAsync(() => !locked);
locked = true;

That kind of a mutex now works, whereas before it would wake up all wait conditions at once. So before you could not guarantee that the wait condition was satisfied on the line after the wait condition, but now you can.

This change can cause backwards incompatible history, so we took care to make sure past workflows still use the previous algorithm. See https://github.com/temporalio/sdk-dotnet/pull/432 for more details.

💥 BREAKING CHANGE - Removed assumed use-worker-versioning in DI when build ID present

This is a breaking change only for those that used non-GA versioning and use build IDs specifically in their AddHostedTemporalWorker calls. We previously assumed that the simple presence of a build ID was enough to opt-in to this non-GA versioning (which is being replaced with a newer form of versioning anyways). We now no longer assume this, so for any users relying on this unstable form of versioning, UseWorkerVersioning worker option will have to be explicitly set to true instead of relying on it being done implicitly when build ID is present.

This only affects a very small subset of users trying out a pre-release form of versioning. See https://github.com/temporalio/sdk-dotnet/pull/432 for more details.

MUSL-based Builds Supported

We now publish Linux-musl builds for x64 to NuGet which means users can use Alpine-based .NET docker images.

Serialization Context Available For Converters/Codecs

Payload converters, failure converters, and payload codecs can now implement IWithSerializationContext that will have WithSerializationContext called when needing to do context-specific conversion for workflows or activities. A common use case for this is to allow codecs to have different encryption keys per workflow ID or namespace. See https://github.com/temporalio/sdk-dotnet/pull/446 for more details.

Specific Changes

2025-02-28 - bbbfad1 - Add advanced signal-handling tests (#418) 2025-03-17 - 612fe2f - Use RawValue for built-in query response (#424) 2025-03-17 - 7829fd3 - Allow unaltered payload response from codec (#425) 2025-03-18 - 8631656 - add protected constructors for metric instrumentation in Temporalio.Common namespace (#431) 2025-03-18 - fc0fd7b - change readme activity examples from scheduletoclose to starttoclose (#433) 2025-03-19 - bac42d3 - Apply modern event loop algorithm with new SDK flag (#432) 2025-04-09 - 5cb605e - Add Workflow.Unsafe.WithTracingEventListenerDisabled (#443) 2025-04-09 - 9ac9d69 - Increase visibility on some client constructs and minor docs updates (#434) 2025-04-10 - 0ef89ac - Add ActivityDefinition.CreateWithoutAttribute overload (#451) 2025-04-10 - 409e53f - Remove assumed use-worker-versioning in DI when build ID present (#452) 2025-04-10 - 6c2a78f - Provide MUSL-based build (#447) 2025-04-10 - fc4ea01 - Allow absent payloads on some responses (#449) 2025-04-15 - 6dbf752 - Serialization context for converters and codecs (#446) 2025-04-16 - 6a0eb69 - Update Core (with changes needed) and update version to 1.6.0 (#453) 2025-04-17 - 464b895 - Custom histogram metric buckets (#456) 2025-04-17 - 4fed10a - Expose root execution (#454) 2025-04-17 - 5531bfe - proposed readme nits (#455)

Source: README.md, updated 2025-04-17