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
<PackageReference Include="RapidRedPanda.ISBM.ClientAdapter" Version="2.2.0" />
<PackageVersion Include="RapidRedPanda.ISBM.ClientAdapter" Version="2.2.0" />
<PackageReference Include="RapidRedPanda.ISBM.ClientAdapter" />
paket add RapidRedPanda.ISBM.ClientAdapter --version 2.2.0
#r "nuget: RapidRedPanda.ISBM.ClientAdapter, 2.2.0"
#:package RapidRedPanda.ISBM.ClientAdapter@2.2.0
#addin nuget:?package=RapidRedPanda.ISBM.ClientAdapter&version=2.2.0
#tool nuget:?package=RapidRedPanda.ISBM.ClientAdapter&version=2.2.0
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
- Package ID:
RapidRedPanda.ISBM.ClientAdapter - Current version:
2.2.0 - License: MIT
- Documentation and samples: RapidRedPanda.ISBM.ClientAdapter.SDK.Samples
Target Frameworks
RapidRedPanda.ISBM.ClientAdapter 2.2.0 ships package assets for:
netstandard2.0net8.0net10.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.
Useful Links
License
MIT
| Product | Versions 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. |
-
.NETStandard 2.0
- Newtonsoft.Json (>= 13.0.1)
-
net10.0
- Newtonsoft.Json (>= 13.0.1)
-
net8.0
- Newtonsoft.Json (>= 13.0.1)
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.
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.