ServerTools.ServerCommands
1.0.5.1
dotnet add package ServerTools.ServerCommands --version 1.0.5.1
NuGet\Install-Package ServerTools.ServerCommands -Version 1.0.5.1
<PackageReference Include="ServerTools.ServerCommands" Version="1.0.5.1" />
paket add ServerTools.ServerCommands --version 1.0.5.1
#r "nuget: ServerTools.ServerCommands, 1.0.5.1"
// Install ServerTools.ServerCommands as a Cake Addin #addin nuget:?package=ServerTools.ServerCommands&version=1.0.5.1 // Install ServerTools.ServerCommands as a Cake Tool #tool nuget:?package=ServerTools.ServerCommands&version=1.0.5.1
About
ServerCommands facilitates running of units of code or commands remotely. It incorporates principles of messaging architectures used by most messaging tools and frameworks, like Azure Service Bus, AWS SQS, RabbitMQ, or Azure Storage Queues, Apache Kafka without any of the knowledge and configuration expertise to manage such installations and configurations.
This library (ServerTools.ServerCommands ) is the core library that is used by all the specicif implementations (currently, for Azure Service Bus and Azure Storage Queues).
In itself this library does not provide any specific functionality, unless you want to extend from it and create your own implementations of any services that are not listed below.
FOR SPECIFIC VERSIONS OF THIS GO HERE:
- Azure Storage Queues
- Azure Service Bus
- AWS SQS (coming soon)
- RabbitMQ (coming soon)
- Apache Kafka (coming soon)
MORE INFO AND HOW TO USE:
More documentation is available at the ServerCommands.
How to extend this library and create your own implementation
If you want to extend this library, you will need to implement the ICloudCommands
interface. Creating a messaging platform and architecture from scratch is a daunting task so I suggest you work with some of the existing implementations libraries and services above, before creating your own.
The implementation goes as follows:
- Create the ramp up / ramp down functionality.
- Need to extent your own implementation of the
ConnectionOptions
class. This provides any connectivity details to the library, and things like Retry-Policies and logger details. - Implement the
Task<ICloudCommands> InitializeAsync(CommandContainer Container, ConnectionOptions ConnectionOptions)
method to ramp up the service and initialize all the infrastructure to support the activities. - Implement the
ClearAllAsync()
method to ramp down the service and undo what theInitializeAsync
does. Note: Create a parameterless empty constructor, and do not add anything to the contrustor, as most of these ramp-up calls need to be async.
- Create command functionality
- Need to implement the following self-explanatory methods that posts, executes commands and handle the deadletter queue..
PostCommandAsync<T>(dynamic CommandContext, CommandMetadata PreviousMatadata = new())
,PostCommandAsync(Type type, dynamic CommandContext, CommandMetadata PreviousMatadata = new())
,PostCommandAsync(string type_name, dynamic CommandContext, CommandMetadata PreviousMatadata = new())
,PostCommandAsync(Message message)
.ExecuteCommandsAsync(int timeWindowinMinutes = 1)
,HandleCommandsDlqAsync(Func<Message, bool> ValidateProcessing = null, int timeWindowinMinutes = 1)
.
- Create response functionality
- Need to implement the following self-explenatory methods that posts, executes responses and handle the deadletter queue.
PostResponseAsync<T>(dynamic ResponseContext, CommandMetadata OriginalCommandMetadata)
,PostResponseAsync(Type ResponseType, dynamic ResponseContext, CommandMetadata OriginalCommandMetadata)
,ExecuteResponsesAsync(int timeWindowinMinutes = 1)
,HandleResponsesDlqAsync(Func<Message, bool> ValidateProcessing = null, int timeWindowinMinutes = 1)
.
Key Features
- Enhanced simplicity
- Asynchroneous remote execution
- Batching and correlation of commands
- Commands with remote response execution
- High performance
- Supports .NET 6.0
Related Packages
Feedback
ServerCommands is released as open source under the MIT license. Bug reports and contributions are welcome at the GitHub repository.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. |
-
net6.0
- DryIoc.dll (>= 5.2.1)
- Microsoft.Extensions.Logging (>= 6.0.0)
- NewtonSoft.Json (>= 13.0.1)
- Polly (>= 7.2.3)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on ServerTools.ServerCommands:
Package | Downloads |
---|---|
ServerTools.ServerCommands.AzureStorageQueues
ServerCommands facilitates running of units of code or commands remotely. It incorporates principles of messaging architectures used by most messaging tools and frameworks, like Azure Service Bus, AWS SQS, RabbitMQ, or Azure Storage Queues, or Apache Kafka without any of the knowledge and configuration expertise to manage such installations and configurations. More documentation is available at https://github.com/hgjura/ServerTools.ServerCommands. |
|
ServerTools.ServerCommands.AzureServiceBus
ServerCommands facilitates running of units of code or commands remotely. It incorporates principles of messaging architectures used by most messaging tools and frameworks, like Azure Service Bus, AWS SQS, RabbitMQ, or Azure Storage Queues, or Apache Kafka without any of the knowledge and configuration expertise to manage such installations and configurations. More documentation is available at https://github.com/hgjura/ServerTools.ServerCommands. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Some release notes