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
MatchConditionstoSettingSelectorwhich allows specifying request conditions toGetConfigurationSettingsrequests.
Azure AI Search 11.6.0-beta.3 Changelog
Features Added
- Added the
VectorSearch.Compressionsproperty, which can be utilized to configure options specific to the compression method used during indexing or querying. - Added the
SearchField.IsStored,VectorSearchField.IsStored, andVectorSearchFieldAttribute.IsStoredproperty. 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
sbyteandint16toSearchFieldDataType.
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
MicrosoftTeamsAppIdentifieris 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
MessageTemplateClientandNotificationMessagesClientto supportTokenCredentialauthentication 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
CommunicationMessagesClientOptionsto include a new service versionV2024_02_01and expandedCommunicationMessagesModelFactorywith factory methods for new model types.
Breaking Changes
- Removed the
SendMessageOptionsclass in favor of more granular method overloads (NotificationContentsubclasses) inNotificationMessagesClient. - Changed the way to construct MessageTemplate including message template bindings and values.
- Changed
MessageTemplateItemclass to support polymorphism, with the introduction of a child classWhatsAppMessageTemplateItemcontaining WhatsApp-specific template contracts. - Added
GeoPositionstruct 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
GetRehydrationTokentoOperationfor 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
BaseClassifierIdtoBuildDocumentClassifierContent. - Added property
BaseClassifierIdtoDocumentClassifierDetails. - Added property
WarningstoDocumentModelDetails. - Added property
WarningstoDocumentClassifierDetails. - Added property
SelectionGrouptoDocumentFieldType. - Added property
ValueSelectionGrouptoDocumentField. - Added member
CompletedtoOperationDetails.
Breaking Changes
DocumentIntelligenceClientandDocumentIntelligenceAdministrationClientnow target service API version2024-02-29-preview. Support for2023-10-31-previewhas been removed.- Renamed class
AIDocumentIntelligenceModelFactorytoDocumentIntelligenceModelFactory. - Renamed class
AzureAIDocumentIntelligenceClientOptionstoDocumentIntelligenceClientOptions. - Renamed class
AIDocumentIntelligenceClientBuilderExtensionstoDocumentIntelligenceClientBuilderExtensions. - In
DocumentField: - Renamed property
ValueArraytoValueList. - Renamed property
ValueIntegertoValueLong. - Renamed property
ValueNumbertoValueDouble. - Renamed property
ValueObjecttoValueDictionary. - In
DocumentFieldType: - Renamed property
ArraytoList. - Renamed property
IntegertoLong. - Renamed property
NumbertoDouble. - Renamed property
ObjecttoDictionary. - Renamed class
FontStyletoDocumentFontStyle. - Renamed class
FontWeighttoDocumentFontWeight. - In
DocumentClassifierDetails, renamed propertiesCreatedDateTimeandExpirationDateTimetoCreatedOnandExpiresOn, respectively. - In
DocumentModelDetails, renamed propertiesCreatedDateTimeandExpirationDateTimetoCreatedOnandExpiresOn, respectively. - In
OperationDetails, renamed propertiesCreatedDateTimeandLastUpdatedDateTimetoCreatedOnandLastUpdatedOn, respectively. - In
QuotaDetails, renamed propertyQuotaResetDateTimetoQuotaResetsOn. - In
DocumentBarcodeKind: - Renamed property
EAN13toEan13. - Renamed property
EAN8toEan8. - Renamed property
ITFtoItf. - Renamed property
MicroQRCodetoMicroQrCode. - Renamed property
PDF417toPdf417. - Renamed property
QRCodetoQrCode. - Renamed property
UPCAtoUpca. - Renamed property
UPCEtoUpce.
Event Grid 4.22.0 Changelog
Features Added
- Added new Storage Task Assignment system events.
- Added new AVS system events.
- Added
Metadataproperty toAcsChatThreadCreatedEventDatasystem event.
Event Hubs 5.11.0 Changelog
Features Added
- Added a
CheckpointPositionstruct toAzure.Messaging.EventHubs.Processorto use when updating a checkpoint. The specified position indicates that an event processor should begin reading from the next event. Added newUpdateCheckpointAsyncoverloads toCheckpointStore,PluggableCheckpointStoreEventProcessor<TPartitionandEventProcessor<TPartition>that accept theCheckpointPositionstruct instead of individual values for offset and sequence number.
Breaking Changes
- The type of several existing values in the
EventData.SystemPropertiescollection 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
UpdateCheckpointAsyncmethod 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
IsRunningwas 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.Amqpdependency 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
CheckpointPositionstruct to use when updating a checkpoint. The specified position indicates that an event processor should begin reading from the next event. Added newUpdateCheckpointAsyncoverloads toEventProcessorClientandBlobCheckpointStorethat accept theCheckpointPositionstruct instead of individual values for offset and sequence number.
Breaking Changes
- The type of several existing values in the
EventData.SystemPropertiescollection 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
UpdateCheckpointAsyncmethod 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
IsRunningwas 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.Amqpdependency 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
sasTokenparameter is now optional inKeyVaultBackupClient.StartBackupandStartBackupAsync. Managed Identity will be used instead ifsasTokenis null. - The
sasTokenparameter is now optional inKeyVaultBackupClient.StartRestoreandStartRestoreAsync. Managed Identity will be used instead ifsasTokenis null. - The
sasTokenparameter is now optional inKeyVaultBackupClient.StartSelectiveKeyRestoreandStartSelectiveKeyRestoreAsync. Managed Identity will be used instead ifsasTokenis null.
Breaking Changes
KeyVaultBackupOperation,KeyVaultRestoreOperation, andKeyVaultSelectiveKeyRestoreOperationnow throw aRequestFailedExceptionwith a different error message - but a rawResponsewith 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.X509ThumbprintStringto return the hexadecimal string representation of the SHA-1 hash of the certificate.CertificateProperties.X509Thumbprinthas been hidden but is still available.
Breaking Changes
- Renamed tags reported on
CertificateClientactivities to following OpenTelemetry attribute naming conventions: certificatetoaz.keyvault.certificate.nameversiontoaz.keyvault.certificate.versionissuertoaz.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.
KeyRotationPolicyActionperforms case-insensitive comparisons since Key Vault and Managed HSM return different cases for “rotate”.
Features Added
- Added
CryptographyClient.CreateRSAandCreateRSAAsyncto create anRSAimplementation backed by Key Vault or Managed HSM. Use this anywhere anRSAorAsymmetricAlgorithmis required. (#3545) - Added
KeyProperties.HsmPlatformto get the underlying HSM platform.
Breaking Changes
- Renamed tags reported on
KeyClient,KeyResolver,CryptographyClient, andRemoteCryptographyClientactivities to follow OpenTelemetry attribute naming conventions: keytoaz.keyvault.key.idoraz.keyvault.key.namedepending on the value being reportedversiontoaz.keyvault.key.version
Key Vault - Secrets 4.6.0 Changelog
Breaking Changes
- Renamed tags reported on
SecretClientactivities to follow OpenTelemetry attribute naming conventions: secrettoaz.keyvault.secret.nameversiontoaz.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
AzureChatExtensionDataSourceResponseCitationfor a more structured representation of citation data. - Correspondingly, updated
AzureChatExtensionsMessageContext: - Replaced
MessageswithCitationsof typeAzureChatExtensionDataSourceResponseCitation. - Added
Intentas a string type. - Renamed “AzureCognitiveSearch” to “AzureSearch”:
AzureCognitiveSearchChatExtensionConfigurationis nowAzureSearchChatExtensionConfiguration.AzureCognitiveSearchIndexFieldMappingOptionsis 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
GenerateSpeechFromTextexposes 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.comclient 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 addedEnableLiveMetricsproperty is set totrueby default. This property can be set tofalseto 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_SAMPLINGenvironment 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
ServiceBusSessionProcessoras it is not necessary unless theServiceBusSessionProcessorOptions.SessionIdsproperty is set.
Service Bus 7.17.4 Changelog
Bugs Fixed
- When creating a new
ServiceBusMessagefrom 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
ExtractResponsemethod toPipelineMessageto enable returning an undisposedPipelineResponsefrom protocol methods. - Added
CreateAsyncfactory method toClientResultExceptionto allow creating exceptions in an async context. - Added an implicit cast from
stringtoApiKeyCredential. - Added an implicit cast from
ClientResult<T>toT.
Breaking Changes
- Changed
HttpClientPipelineTransport.SharedandClientRetryPolicy.Defaultfrom static readonly fields to static properties. - Changed
PipelineResponse.Contentproperty from abstract to virtual. - Removed the
ResponseBufferingPolicyand moved response buffering functionality intoPipelineTransport.
WebJobs Extensions - Event Hubs 6.1.0 Changelog
Bugs Fixed
- The
SystemPropertiesbinding 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.