RapidRedPanda.ISBM.ClientAdapter 2.2.0

dotnet add package RapidRedPanda.ISBM.ClientAdapter --version 2.2.0
                    
NuGet\Install-Package RapidRedPanda.ISBM.ClientAdapter -Version 2.2.0
                    
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="RapidRedPanda.ISBM.ClientAdapter" Version="2.2.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="RapidRedPanda.ISBM.ClientAdapter" Version="2.2.0" />
                    
Directory.Packages.props
<PackageReference Include="RapidRedPanda.ISBM.ClientAdapter" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add RapidRedPanda.ISBM.ClientAdapter --version 2.2.0
                    
#r "nuget: RapidRedPanda.ISBM.ClientAdapter, 2.2.0"
                    
#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.
#:package RapidRedPanda.ISBM.ClientAdapter@2.2.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=RapidRedPanda.ISBM.ClientAdapter&version=2.2.0
                    
Install as a Cake Addin
#tool nuget:?package=RapidRedPanda.ISBM.ClientAdapter&version=2.2.0
                    
Install as a Cake Tool

RapidRedPanda.ISBM.ClientAdapter

RapidRedPanda.ISBM.ClientAdapter is a .NET client library for working with ISBM 2.0 services in Open Industrial Interoperability Ecosystem (OIIE) scenarios. It provides a developer-friendly adapter for ISA-95 ISBM 2.0 message bus implementations, including publication, subscription, request/response, and channel management workflows.

Package Information

Target Frameworks

RapidRedPanda.ISBM.ClientAdapter 2.2.0 ships package assets for:

  • netstandard2.0
  • net8.0
  • net10.0

Core Capabilities

  • Channel management
  • Publication workflows
  • Subscription/read publication workflows
  • Request/response workflows
  • Synchronous and asynchronous APIs
  • MessageContent media type handling
  • Basic and custom authentication support

Quick Start

The example below opens a publication session, posts one JSON object message to a topic, and closes the session.

using RapidRedPanda.ISBM.ClientAdapter;
using RapidRedPanda.ISBM.ClientAdapter.ResponseType;

string hostAddress = "https://example.com/isbm/2.0";
string channelId = "Demo.Channel";

ProviderPublicationService publicationProvider = new ProviderPublicationService();

OpenPublicationSessionResponse openResponse =
    publicationProvider.OpenPublicationSession(hostAddress, channelId);

PostPublicationResponse postResponse = publicationProvider.PostPublication(
    hostAddress,
    openResponse.SessionID,
    "Demo.Topic",
    "{\"value\":1}");

publicationProvider.ClosePublicationSession(hostAddress, openResponse.SessionID);

string messageId = postResponse.MessageID;

MessageContent Media Type Handling

When MediaType is omitted, empty, or whitespace, message content is treated as native JSON object content. In native JSON-object mode, the content must parse as a JSON object and is sent without mediaType.

XML, plain text, and JSON string payloads should provide explicit MediaType values, such as application/xml, text/plain, or application/json.

using RapidRedPanda.ISBM.ClientAdapter.EndpointOptions;

PostPublicationOptions options = new PostPublicationOptions
{
    MediaType = "application/xml"
};

publicationProvider.PostPublication(
    hostAddress,
    sessionId,
    "Demo.Topic",
    "<message><value>1</value></message>",
    options);

PostRequestOptions.MediaType and PostResponseOptions.MediaType are also supported for request/response workflows.

FilterExpression Options

Subscription sessions and provider request sessions can include ISBM REST filterExpressions. ApplicableMediaTypes is List<string> and serializes as a JSON string array aligned with the ISBM 2.0 REST wire format.

using System.Collections.Generic;
using RapidRedPanda.ISBM.ClientAdapter.EndpointOptions;

OpenSubscriptionSessionOptions options = new OpenSubscriptionSessionOptions
{
    FilterExpressions = new List<FilterExpression>
    {
        new FilterExpression
        {
            ApplicableMediaTypes = new List<string>
            {
                "application/json"
            },
            ExpressionString = new ExpressionString
            {
                Expression = "$.DataArea.Show.Measurement[?(@.value > 100)]",
                Language = "JsonPath",
                LanguageVersion = "1.0"
            }
        }
    }
};

LanguageVersion, ApplicableMediaTypes, and Namespaces are optional. Namespace entries serialize with REST field names prefix and name.

FilterExpression xmlFilter = new FilterExpression
{
    ApplicableMediaTypes = new List<string>
    {
        "application/xml"
    },
    ExpressionString = new ExpressionString
    {
        Expression = "/x:Root/x:Measurement[x:Value > 100]",
        Language = "XPath",
        LanguageVersion = "1.0"
    },
    Namespaces = new List<FilterExpressionNamespace>
    {
        new FilterExpressionNamespace
        {
            Prefix = "x",
            Name = "urn:example"
        }
    }
};

The adapter serializes FilterExpression values according to the ISBM 2.0 REST schema. The adapter does not evaluate filters locally. Backend filtering support depends on the Host implementation, and Host support requires a Host version that accepts and persists filterExpressions.

Migration note: existing callers using ApplicableMediaType objects should replace them with string entries.

Old:

ApplicableMediaTypes = new List<ApplicableMediaType>
{
    new ApplicableMediaType { MediaType = "application/json" }
}

New:

ApplicableMediaTypes = new List<string>
{
    "application/json"
}

Documentation and Samples

This README is a quick start for the NuGet package. Full interface documentation, complete service-by-service examples, toolkit scenarios, and advanced option validation are maintained in the RapidRedPanda ISBM ClientAdapter SDK Samples repository:

https://github.com/claire-wong/RapidRedPanda.ISBM.ClientAdapter.SDK.Samples

Release Notes

RapidRedPanda.ISBM.ClientAdapter 2.2.0 aligns the FilterExpression REST wire format with ISBM 2.0. ApplicableMediaTypes is now represented as string entries, and languageVersion, applicableMediaTypes, and namespaces remain optional.

RapidRedPanda.ISBM.ClientAdapter 2.1.2 omits empty PostRequest expiry values while preserving explicit expiry and MessageContent media type behavior.

License

MIT

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  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 is compatible.  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.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on RapidRedPanda.ISBM.ClientAdapter:

Package Downloads
MCEGold.Data.Services.Connector

This NuGet library simplifies the process of connecting data clients to MCEGold Data Services, offering an easy-to-use interface for secure and reliable data exchange. It streamlines tasks such as authentication, data retrieval, and error handling, ensuring seamless integration with MCEGold data sources that are compatible with the Open Industrial Interoperability Ecosystem (OIIE).

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.2.0 2,096 9/13/2026
2.0.2.4 1,582 9/3/2024
2.0.2.3 969 5/19/2024
2.0.1.2 2,600 1/4/2024

RapidRedPanda.ISBM.ClientAdapter 2.2.0 aligns FilterExpression serialization with the ISBM 2.0 REST schema. ApplicableMediaTypes now uses string media type entries; existing callers using ApplicableMediaType objects should update to string entries.