e693fa6ce3
Introduces transaction support. Operations can now be executed inside a TransactionScope providing atomicity. Supported operations for transactions: `SendAsync`, `CompleteAsync`, `DeferAsync`, `DeadLetterAsync`, `AbandonAsync` Transaction cannot work across connections. Hence, to be able to Send and Receive in a single transaction, `ServiceBusConnection` object has been exposed. Each of the client entities now accepts an already created connection. Sample usage: ```csharp var connection = new ServiceBusConnection(ConnectionString); var sender = new MessageSender(connection, QueueName); var receiver = new MessageReceiver(connection, QueueName); var receivedMessage = await receiver.ReceiveAsync(); using (var ts = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled)) { await receiver.CompleteAsync(receivedMessage.SystemProperties.LockToken); await sender.SendAsync(message).ConfigureAwait(false); ts.Complete(); // Or, ts.Dispose(); } await sender.CloseAsync(); await receiver.CloseAsync(); await connection.CloseAsync(); ``` |
||
---|---|---|
.github | ||
build | ||
src/Microsoft.Azure.ServiceBus | ||
test/Microsoft.Azure.ServiceBus.UnitTests | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
CODEOWNERS | ||
Directory.Build.props | ||
LICENSE | ||
Microsoft.Azure.ServiceBus.sln | ||
README.md | ||
appveyor.yml | ||
service-bus.png | ||
thirdpartynotice.txt |
README.md
Microsoft Azure Service Bus Client for .NET
Build/Package | Status |
---|---|
master | |
dev | |
Microsoft.Azure.ServiceBus |
This is the next generation Service Bus .NET client library that focuses on queues & topics. If you are looking for Event Hubs and Relay clients, follow the below links:
Azure Service Bus is an asynchronous messaging cloud platform that enables you to send messages between decoupled systems. Microsoft offers this feature as a service, which means that you do not need to host any of your own hardware in order to use it.
Refer to the online documentation to learn more about Service Bus.
This library is built using .NET Standard 1.3. For more information on what platforms are supported see .NET Platforms Support.
How to provide feedback
See our Contribution Guidelines.
How to get support
See our Support Guidelines
FAQ
Where can I find examples that use this library?
https://github.com/Azure/azure-service-bus/tree/master/samples
How do I run the unit tests?
In order to run the unit tests, you will need to do the following:
-
Deploy the Azure Resource Manager template located at /build/azuredeploy.json by clicking the following button:
Running the above template will provision a standard Service Bus namespace along with the required entities to successfully run the unit tests.
-
Add an Environment Variable named
azure-service-bus-dotnet/connectionstring
and set the value as the connection string of the newly created namespace. Please note that if you are using Visual Studio, you must restart Visual Studio in order to use new Environment Variables.
Once you have completed the above, you can run dotnet test
from the /test/Microsoft.Azure.ServiceBus.UnitTests
directory.
Can I manage Service Bus entities with this library?
The standard way to manage Azure resources is by using Azure Resource Manager. In order to use functionality that previously existed in the .NET Framework Service Bus client library, you will need to use the Microsoft.Azure.Management.ServiceBus
library. This will enable use cases that dynamically create/read/update/delete resources. The following links will provide more information on the new library and how to use it.