Azure SDK for .NET (March 2024)
The Azure SDK team is pleased to announce our March 2024 client library releases.
44 packages released this month.
Stable Packages (18)
-
Communication Common
-
Communication Messages
-
Core - Client - Core
-
Event Grid
-
Event Hubs
-
Event Hubs - Event Processor
-
Key Vault - Administration
-
Key Vault - Certificates
-
Key Vault - Keys
-
Key Vault - Secrets
-
Resource Management - Batch
-
Resource Management - Communication
-
Resource Management - Compute
-
Resource Management - Confluent
-
Resource Management - IoT Firmware Defense
-
Resource Management - Recovery Services Site Recovery
-
Resource Management - Redis Enterprise
-
WebJobs Extensions - Event Hubs
Patch Updates (9)
-
Azure client library integration for ASP.NET Core
-
Blob Storage Key Store for .NET Data Protection
-
Event Hubs
-
Event Hubs - Event Processor
-
Key Encryptor for .NET Data Protection
-
Resource Management - Resource Manager
-
Secrets Configuration Provider for .NET
-
Service Bus
-
WebJobs Extensions - Service Bus
Beta Packages (15)
-
App Configuration
-
Azure AI Search
-
Communication Phone Numbers
-
Defender EASM
-
Document Intelligence
-
Health Insights
-
Image Analysis
-
OpenAI Assistants
-
OpenAI Inference
-
OpenTelemetry AspNetCore
-
Resource Management - Chaos
-
Resource Management - NetApp Files
-
Resource Management - Resource Mover
-
Resource Management - Support
-
System.ClientModel
Release highlights
App Configuration 1.4.0-beta.1 Changelog
Features Added
- Added property
MatchConditions
toSettingSelector
which allows specifying request conditions toGetConfigurationSettings
requests.
Azure AI Search 11.6.0-beta.3 Changelog
Features Added
- Added the
VectorSearch.Compressions
property, which can be utilized to configure options specific to the compression method used during indexing or querying. - Added the
SearchField.IsStored
,VectorSearchField.IsStored
, andVectorSearchFieldAttribute.IsStored
property. It represent an immutable value indicating whether the field will be persisted separately on disk to be returned in a search result. This property is applicable only for vector fields. - Added support for
sbyte
andint16
toSearchFieldDataType
.
Azure client library integration for ASP.NET Core 1.7.2 Changelog
Bugs Fixed
- Fix several issues related to ThreadPool starvation for synchronous scenarios
Blob Storage Key Store for .NET Data Protection 1.3.3 Changelog
Bugs Fixed
- Fix several issues related to ThreadPool starvation for synchronous scenarios
Communication Common 1.3.0 Changelog
Features Added
- Added support for a new communication identifier
MicrosoftTeamsAppIdentifier
. - Introduction of
MicrosoftTeamsAppIdentifier
is a breaking change. It will impact any code that previously depended on the use of UnknownIdentifier with rawIDs starting with28:orgid:
,28:dod:
, or28:gcch:
.
Communication Messages 1.0.0 Changelog
Features Added
- Introduced additional constructors for
MessageTemplateClient
andNotificationMessagesClient
to supportTokenCredential
authentication methods. - Introduced a variety of Notification Content models such as
MediaNotificationContent
,TemplateNotificationContent
, andTextNotificationContent
, enabling more polymorphic notification types. - Introduced a variety of message template value models such as
MessageTemplateDocument
,MessageTemplateImage
,MessageTemplateVideo
, etc., enabling more polymorphic message template values. - Added new namespace specific to WhatsApp message templates, including
WhatsAppMessageTemplateBindings
,WhatsAppMessageTemplateBindingsButton
, andWhatsAppMessageButtonSubType
, etc. - Updated
CommunicationMessagesClientOptions
to include a new service versionV2024_02_01
and expandedCommunicationMessagesModelFactory
with factory methods for new model types.
Breaking Changes
- Removed the
SendMessageOptions
class in favor of more granular method overloads (NotificationContent
subclasses) inNotificationMessagesClient
. - Changed the way to construct MessageTemplate including message template bindings and values.
- Changed
MessageTemplateItem
class to support polymorphism, with the introduction of a child classWhatsAppMessageTemplateItem
containing WhatsApp-specific template contracts. - Added
GeoPosition
struct to encapsulate geographic coordinates into a single entity. This change affects any functionality that previously required separate latitude and longitude inputs.
Communication Phone Numbers 1.3.0-beta.4 Changelog
Other changes
- Added unmerged beta releases
Core - Client - Core 1.38.0 Changelog
Features Added
- Add
GetRehydrationToken
toOperation
for rehydration purpose.
Defender EASM 1.0.0-beta.1 Changelog
- Defender Azure EASM (External Attack Surface Management) client library for Java. This package contains Microsoft Azure EASM client library.
Document Intelligence 1.0.0-beta.2 Changelog
Features Added
- Added property
BaseClassifierId
toBuildDocumentClassifierContent
. - Added property
BaseClassifierId
toDocumentClassifierDetails
. - Added property
Warnings
toDocumentModelDetails
. - Added property
Warnings
toDocumentClassifierDetails
. - Added property
SelectionGroup
toDocumentFieldType
. - Added property
ValueSelectionGroup
toDocumentField
. - Added member
Completed
toOperationDetails
.
Breaking Changes
DocumentIntelligenceClient
andDocumentIntelligenceAdministrationClient
now target service API version2024-02-29-preview
. Support for2023-10-31-preview
has been removed.- Renamed class
AIDocumentIntelligenceModelFactory
toDocumentIntelligenceModelFactory
. - Renamed class
AzureAIDocumentIntelligenceClientOptions
toDocumentIntelligenceClientOptions
. - Renamed class
AIDocumentIntelligenceClientBuilderExtensions
toDocumentIntelligenceClientBuilderExtensions
. - In
DocumentField
: - Renamed property
ValueArray
toValueList
. - Renamed property
ValueInteger
toValueLong
. - Renamed property
ValueNumber
toValueDouble
. - Renamed property
ValueObject
toValueDictionary
. - In
DocumentFieldType
: - Renamed property
Array
toList
. - Renamed property
Integer
toLong
. - Renamed property
Number
toDouble
. - Renamed property
Object
toDictionary
. - Renamed class
FontStyle
toDocumentFontStyle
. - Renamed class
FontWeight
toDocumentFontWeight
. - In
DocumentClassifierDetails
, renamed propertiesCreatedDateTime
andExpirationDateTime
toCreatedOn
andExpiresOn
, respectively. - In
DocumentModelDetails
, renamed propertiesCreatedDateTime
andExpirationDateTime
toCreatedOn
andExpiresOn
, respectively. - In
OperationDetails
, renamed propertiesCreatedDateTime
andLastUpdatedDateTime
toCreatedOn
andLastUpdatedOn
, respectively. - In
QuotaDetails
, renamed propertyQuotaResetDateTime
toQuotaResetsOn
. - In
DocumentBarcodeKind
: - Renamed property
EAN13
toEan13
. - Renamed property
EAN8
toEan8
. - Renamed property
ITF
toItf
. - Renamed property
MicroQRCode
toMicroQrCode
. - Renamed property
PDF417
toPdf417
. - Renamed property
QRCode
toQrCode
. - Renamed property
UPCA
toUpca
. - Renamed property
UPCE
toUpce
.
Event Grid 4.22.0 Changelog
Features Added
- Added new Storage Task Assignment system events.
- Added new AVS system events.
- Added
Metadata
property toAcsChatThreadCreatedEventData
system event.
Event Hubs 5.11.0 Changelog
Features Added
- Added a
CheckpointPosition
struct toAzure.Messaging.EventHubs.Processor
to use when updating a checkpoint. The specified position indicates that an event processor should begin reading from the next event. Added newUpdateCheckpointAsync
overloads toCheckpointStore
,PluggableCheckpointStoreEventProcessor<TPartition
andEventProcessor<TPartition>
that accept theCheckpointPosition
struct instead of individual values for offset and sequence number.
Breaking Changes
- The type of several existing values in the
EventData.SystemProperties
collection have been changed so that they are properly represented as .NET string types. Previously, the underlying AMQP types were unintentionally returned, forcing callers to callToString()
to read the value.
This is a behavioral breaking change that will impacts only those callers who were explicitly casting system property values to AmqpAddress
or AmqpMessageId
before calling ToString()
. The affected system properties are:
- MessageId
- CorrelationId
- To
-
ReplyTo
- The base implementations of both
UpdateCheckpointAsync
method overloads inPluggableCheckpointStoreEventProcessor<TPartition>
andEventProcessor<TPartition>
now choose sequence number over offset when writing a checkpoint and both values are provided. Previously, writing a checkpoint prioritized offset over sequence number. There is no behavioral change for those using the official checkpoint store implementations.
Bugs Fixed
-
Load balancing is no longer blocked when event processing for a lost partition does not honor the cancellation token. Previously, long-running processing could cause delays in load balancing that resulted in ownership not being renewed for all partitions.
-
Adjusted retries to consider an unreachable host address as terminal. Previously, all socket-based errors were considered transient and would be retried.
-
Fixed a race condition that could lead to a synchronization primitive being double-released if
IsRunning
was called concurrently while starting or stopping an event processor. -
Fixed an issue with event processor validation where an exception for quota exceeded may inappropriately be surfaced when starting the processor.
-
In the rare case that an event processor’s load balancing and health monitoring task cannot recover from an error, it will now properly surrender ownership when processing stops.
-
Reduced the timeout for transient service failures when starting the buffered producer. This ixed an issue where the buffered producer appeared to hang for an extended period of time when starting if it had issues querying Event Hub metadata for the first time.
-
Fixed the logic used to set the TimeToLive value of the AmqpMessageHeader for received messages to be based on the difference of the AbsoluteExpiryTime and CreationTime properties of the AmqpMessageProperties.
Event Hubs 5.11.1 Changelog
Other Changes
- Updated the
Microsoft.Azure.Amqp
dependency to 2.6.5, which includes several bug fixes. A notable fix addresses an obscure race condition when a cancellation token is signaled while service operations are being invoked concurrently which caused those operations to hang.
Event Hubs - Event Processor 5.11.0 Changelog
Features Added
- Added a
CheckpointPosition
struct to use when updating a checkpoint. The specified position indicates that an event processor should begin reading from the next event. Added newUpdateCheckpointAsync
overloads toEventProcessorClient
andBlobCheckpointStore
that accept theCheckpointPosition
struct instead of individual values for offset and sequence number.
Breaking Changes
- The type of several existing values in the
EventData.SystemProperties
collection have been changed so that they are properly represented as .NET string types. Previously, the underlying AMQP types were unintentionally returned, forcing callers to callToString()
to read the value.
This is a behavioral breaking change that will impacts only those callers who were explicitly casting system property values to AmqpAddress
or AmqpMessageId
before calling ToString()
. The affected system properties are:
- MessageId
- CorelationId
- To
-
ReplyTo
- The base implementations of both
UpdateCheckpointAsync
method overloads inPluggableCheckpointStoreEventProcessor<TPartition>
andEventProcessor<TPartition>
now choose sequence number over offset when writing a checkpoint and both values are provided. Previously, writing a checkpoint prioritized offset over sequence number. There is no difference in behavior for normal usage scenarios.
Bugs Fixed
-
Fixed a race condition that could lead to a synchronization primitive being double-released if
IsRunning
was called concurrently while starting or stopping the processor. -
Fixed a bug in which cancellation honored by the processor was interpreted as an error surfaced by developer code and a warning was inappropriately emitted to the error handler.
-
Fixed an issue with event processor validation where an exception for quota exceeded may inappropriately be surfaced when starting the processor.
-
In the rare case that an event processor’s load balancing and health monitoring task cannot recover from an error, it will now properly surrender ownership when processing stops.
Event Hubs - Event Processor 5.11.1 Changelog
Other Changes
- Updated the
Microsoft.Azure.Amqp
dependency to 2.6.5, which includes several bug fixes. A notable fix addresses an obscure race condition when a cancellation token is signaled while service operations are being invoked concurrently which caused those operations to hang.
Health Insights 1.0.0-beta.1 Changelog
- Initial preview of the Azure.Health.Insights.RadiologyInsights client library.
Image Analysis 1.0.0-beta.2 Changelog
Breaking Changes
The imageContent parameter for the Analyze(BinaryData imageData, …) method has been renamed to imageData. The imageContent parameter for the Analyze(Uri imageUri, …) method has been renamed to imageUri
Key Encryptor for .NET Data Protection 1.2.3 Changelog
Bugs Fixed
- Fix several issues related to ThreadPool starvation for synchronous scenarios
Key Vault - Administration 4.4.0 Changelog
Bugs Fixed
- When a Key Vault is moved to another tenant, the client is reauthenticated.
Features Added
- The
sasToken
parameter is now optional inKeyVaultBackupClient.StartBackup
andStartBackupAsync
. Managed Identity will be used instead ifsasToken
is null. - The
sasToken
parameter is now optional inKeyVaultBackupClient.StartRestore
andStartRestoreAsync
. Managed Identity will be used instead ifsasToken
is null. - The
sasToken
parameter is now optional inKeyVaultBackupClient.StartSelectiveKeyRestore
andStartSelectiveKeyRestoreAsync
. Managed Identity will be used instead ifsasToken
is null.
Breaking Changes
KeyVaultBackupOperation
,KeyVaultRestoreOperation
, andKeyVaultSelectiveKeyRestoreOperation
now throw aRequestFailedException
with a different error message - but a rawResponse
with more details - when the service returns an error response. (#41855)
Key Vault - Certificates 4.6.0 Changelog
Bugs Fixed
- When a Key Vault is moved to another tenant, the client is reauthenticated.
Features Added
- Added
CertificateProperties.X509ThumbprintString
to return the hexadecimal string representation of the SHA-1 hash of the certificate.CertificateProperties.X509Thumbprint
has been hidden but is still available.
Breaking Changes
- Renamed tags reported on
CertificateClient
activities to following OpenTelemetry attribute naming conventions: certificate
toaz.keyvault.certificate.name
version
toaz.keyvault.certificate.version
issuer
toaz.keyvault.certificate.issuer.name
Key Vault - Keys 4.6.0 Changelog
Bugs Fixed
- When a Key Vault is moved to another tenant, the client is reauthenticated.
KeyRotationPolicyAction
performs case-insensitive comparisons since Key Vault and Managed HSM return different cases for “rotate”.
Features Added
- Added
CryptographyClient.CreateRSA
andCreateRSAAsync
to create anRSA
implementation backed by Key Vault or Managed HSM. Use this anywhere anRSA
orAsymmetricAlgorithm
is required. (#3545) - Added
KeyProperties.HsmPlatform
to get the underlying HSM platform.
Breaking Changes
- Renamed tags reported on
KeyClient
,KeyResolver
,CryptographyClient
, andRemoteCryptographyClient
activities to follow OpenTelemetry attribute naming conventions: key
toaz.keyvault.key.id
oraz.keyvault.key.name
depending on the value being reportedversion
toaz.keyvault.key.version
Key Vault - Secrets 4.6.0 Changelog
Breaking Changes
- Renamed tags reported on
SecretClient
activities to follow OpenTelemetry attribute naming conventions: secret
toaz.keyvault.secret.name
version
toaz.keyvault.secret.version
OpenAI Assistants 1.0.0-beta.3 Changelog
Bugs Fixed
- Incorporates a specification fix for message image file content that caused generated image file IDs (e.g. from the Code Interpreter tool) to not properly appear in messages
OpenAI Inference 1.0.0-beta.14 Changelog
Breaking Changes
“On Your Data” changes:
- Introduced a new type
AzureChatExtensionDataSourceResponseCitation
for a more structured representation of citation data. - Correspondingly, updated
AzureChatExtensionsMessageContext
: - Replaced
Messages
withCitations
of typeAzureChatExtensionDataSourceResponseCitation
. - Added
Intent
as a string type. - Renamed “AzureCognitiveSearch” to “AzureSearch”:
AzureCognitiveSearchChatExtensionConfiguration
is nowAzureSearchChatExtensionConfiguration
.AzureCognitiveSearchIndexFieldMappingOptions
is nowAzureSearchIndexFieldMappingOptions
.- Check the project README for updated code snippets.
Features Added
- Text-to-speech using OpenAI TTS models is now supported. See OpenAI’s API reference or the Azure OpenAI quickstart for detailed overview and background information.
- The new method
GenerateSpeechFromText
exposes this capability onOpenAIClient
. - Text-to-speech converts text into lifelike spoken audio in a chosen voice, together with other optional configurations.
- This method works for both Azure OpenAI and non-Azure
api.openai.com
client configurations
OpenTelemetry AspNetCore 1.2.0-beta.1 Changelog
Features Added
-
Added Azure Container Apps resource detector. (#41803)
-
Added
Azure.Monitor.OpenTelemetry.LiveMetrics
, enabling the sending of live metrics data. The newly addedEnableLiveMetrics
property is set totrue
by default. This property can be set tofalse
to disable live metrics. (#41872) -
Added an experimental feature for logs emitted within an active tracing context to follow the Activity’s sampling decision. The feature can be enabled by setting
OTEL_DOTNET_AZURE_MONITOR_EXPERIMENTAL_ENABLE_LOG_SAMPLING
environment variable totrue
. (#41665)
Resource Management - Batch 1.4.0 Changelog
Resource Management - Chaos 1.1.0-beta.1 Changelog
Resource Management - Communication 1.2.0 Changelog
Resource Management - Compute 1.4.0 Changelog
Resource Management - Confluent 1.2.0 Changelog
Resource Management - IoT Firmware Defense 1.0.0 Changelog
Resource Management - NetApp Files 1.5.0-beta.1 Changelog
Resource Management - Recovery Services Site Recovery 1.2.0 Changelog
Resource Management - Redis Enterprise 1.1.0 Changelog
Resource Management - Resource Manager 1.10.2 Changelog
Resource Management - Resource Mover 1.1.2-beta.1 Changelog
Resource Management - Support 1.1.0-beta.4 Changelog
Secrets Configuration Provider for .NET 1.3.1 Changelog
Bugs Fixed
- Fix several issues related to ThreadPool starvation for synchronous scenarios
Service Bus 7.17.3 Changelog
Bugs Fixed
- Fixed draining of credits when prefetch is enabled.
- No longer drain credits when using the
ServiceBusSessionProcessor
as it is not necessary unless theServiceBusSessionProcessorOptions.SessionIds
property is set.
Service Bus 7.17.4 Changelog
Bugs Fixed
- When creating a new
ServiceBusMessage
from an existingServiceBusReceivedMessage
, diagnostic properties will now be properly reset. Previously, they were incorrectly retained which led to the new message being indistinguishable from the old in traces.
System.ClientModel 1.1.0-beta.2 Changelog
Features Added
- Added
ExtractResponse
method toPipelineMessage
to enable returning an undisposedPipelineResponse
from protocol methods. - Added
CreateAsync
factory method toClientResultException
to allow creating exceptions in an async context. - Added an implicit cast from
string
toApiKeyCredential
. - Added an implicit cast from
ClientResult<T>
toT
.
Breaking Changes
- Changed
HttpClientPipelineTransport.Shared
andClientRetryPolicy.Default
from static readonly fields to static properties. - Changed
PipelineResponse.Content
property from abstract to virtual. - Removed the
ResponseBufferingPolicy
and moved response buffering functionality intoPipelineTransport
.
WebJobs Extensions - Event Hubs 6.1.0 Changelog
Bugs Fixed
- The
SystemProperties
binding will now return certain item as string values instead of an AMQP structure that requires callingToString()
to read. The affected system properties are: - MessageId
- CorelationId
- To
-
ReplyTo
- Avoid race condition when determining whether to checkpoint when the host is in the process of shutting down.
WebJobs Extensions - Event Hubs 6.2.0 Changelog
Other Changes
-
Adjusted checkpointing logic to no longer write a checkpoint when the listener is shutting down. This was necessary to prevent potential data loss from occurring when shutting down Function retries. Because the trigger cannot know if the Function host would have retried a failure if it were not shutting down, we cannot assume that it is safe to checkpoint. This change ensures that the batch of events being processed when shut down was requested will be retried by another instance or the next time the Function app is run.
-
Updated the
Azure.Messaging.EventHubs
, which includes a new build of the AMQP transport library. The notable bug fix addresses an obscure race condition when a cancellation token is signaled while service operations are being invoked concurrently which caused those operations to hang.
WebJobs Extensions - Service Bus 5.13.6 Changelog
Other Changes
- Updated the
Azure.Messaging.ServiceBus
, which includes a new build of the AMQP transport library. One notable but fix addresses an obscure race condition when a cancellation token is signaled while service operations are being invoked concurrently which caused those operations to hang. Another notable fix is for an obscure race condition that occurred when attempting to complete a message which caused the operation to hang.
Latest Releases
View all the latest versions of .NET packages here.
Installation Instructions
To install any of our packages, please search for them via Manage NuGet Packages...
in Visual Studio (with Include prerelease
checked) or copy these commands into your terminal:
$> dotnet add package Azure.AI.DocumentIntelligence --version 1.0.0-beta.2
$> dotnet add package Azure.AI.OpenAI --version 1.0.0-beta.14
$> dotnet add package Azure.AI.OpenAI.Assistants --version 1.0.0-beta.3
$> dotnet add package Azure.AI.Vision.ImageAnalysis --version 1.0.0-beta.2
$> dotnet add package Azure.Analytics.Defender.Easm --version 1.0.0-beta.1
$> dotnet add package Azure.Communication.Common --version 1.3.0
$> dotnet add package Azure.Communication.Messages --version 1.0.0
$> dotnet add package Azure.Communication.PhoneNumbers --version 1.3.0-beta.4
$> dotnet add package Azure.Core --version 1.38.0
$> dotnet add package Azure.Data.AppConfiguration --version 1.4.0-beta.1
$> dotnet add package Azure.Extensions.AspNetCore.Configuration.Secrets --version 1.3.1
$> dotnet add package Azure.Extensions.AspNetCore.DataProtection.Blobs --version 1.3.3
$> dotnet add package Azure.Extensions.AspNetCore.DataProtection.Keys --version 1.2.3
$> dotnet add package Azure.Health.Insights.RadiologyInsights --version 1.0.0-beta.1
$> dotnet add package Azure.Messaging.EventGrid --version 4.22.0
$> dotnet add package Azure.Messaging.EventHubs --version 5.11.0
$> dotnet add package Azure.Messaging.EventHubs --version 5.11.1
$> dotnet add package Azure.Messaging.EventHubs.Processor --version 5.11.0
$> dotnet add package Azure.Messaging.EventHubs.Processor --version 5.11.1
$> dotnet add package Azure.Messaging.ServiceBus --version 7.17.3
$> dotnet add package Azure.Messaging.ServiceBus --version 7.17.4
$> dotnet add package Azure.Monitor.OpenTelemetry.AspNetCore --version 1.2.0-beta.1
$> dotnet add package Azure.ResourceManager --version 1.10.2
$> dotnet add package Azure.ResourceManager.Batch --version 1.4.0
$> dotnet add package Azure.ResourceManager.Chaos --version 1.1.0-beta.1
$> dotnet add package Azure.ResourceManager.Communication --version 1.2.0
$> dotnet add package Azure.ResourceManager.Compute --version 1.4.0
$> dotnet add package Azure.ResourceManager.Confluent --version 1.2.0
$> dotnet add package Azure.ResourceManager.IotFirmwareDefense --version 1.0.0
$> dotnet add package Azure.ResourceManager.NetApp --version 1.5.0-beta.1
$> dotnet add package Azure.ResourceManager.RecoveryServicesSiteRecovery --version 1.2.0
$> dotnet add package Azure.ResourceManager.RedisEnterprise --version 1.1.0
$> dotnet add package Azure.ResourceManager.ResourceMover --version 1.1.2-beta.1
$> dotnet add package Azure.ResourceManager.Support --version 1.1.0-beta.4
$> dotnet add package Azure.Search.Documents --version 11.6.0-beta.3
$> dotnet add package Azure.Security.KeyVault.Administration --version 4.4.0
$> dotnet add package Azure.Security.KeyVault.Certificates --version 4.6.0
$> dotnet add package Azure.Security.KeyVault.Keys --version 4.6.0
$> dotnet add package Azure.Security.KeyVault.Secrets --version 4.6.0
$> dotnet add package Microsoft.Azure.WebJobs.Extensions.EventHubs --version 6.1.0
$> dotnet add package Microsoft.Azure.WebJobs.Extensions.EventHubs --version 6.2.0
$> dotnet add package Microsoft.Azure.WebJobs.Extensions.ServiceBus --version 5.13.6
$> dotnet add package Microsoft.Extensions.Azure --version 1.7.2
$> dotnet add package System.ClientModel --version 1.1.0-beta.2
Feedback
If you have a bug or feature request for one of the libraries, please file an issue in our repo.