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
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="ServerTools.ServerCommands" Version="1.0.5.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add ServerTools.ServerCommands --version 1.0.5.1
#r "nuget: ServerTools.ServerCommands, 1.0.5.1"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// 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:

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.
  1. 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.
  2. Implement the Task<ICloudCommands> InitializeAsync(CommandContainer Container, ConnectionOptions ConnectionOptions) method to ramp up the service and initialize all the infrastructure to support the activities.
  3. Implement the ClearAllAsync() method to ramp down the service and undo what the InitializeAsync 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
  1. 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
  1. 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

Feedback

ServerCommands is released as open source under the MIT license. Bug reports and contributions are welcome at the GitHub repository.

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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.

Version Downloads Last updated
1.0.5.1 660 8/21/2022
1.0.5 570 8/21/2022
1.0.4 599 7/6/2022
1.0.3.3 582 7/5/2022
1.0.0 279 12/2/2021

Some release notes