Skip to content

Releases: OPCFoundation/UA-.NETStandard

OPC UA 1.05 Maintenance Update

18 Nov 16:38
a2e3fc8

Choose a tag to compare

Pre-release
This release is based on the 1.05.06 Nodeset.
It contains important bug fixes which were found after the last 1.05.377 release, as well as breaking API changes.

## Changes:

- Introduced telemetry context and proper use of ILogger.
- Improve thread safe Utils methods for incrementing identifiers.
- Obsolete Synchronous Certificate Validator Methods.
- Move from .net 9 to .net 10 SDK and build new target framework .net 10.
- Restructured core and built in types into base assembly and nuget.
- Pulled ActivityTraceFlags into IClientBase.

### Server Specific:

- Pass SecureChannelContext explicitly.
- Obsolete APM & Synchronous Methods.
- Configured Thread Pool for better Server Performance.
- Refactor Publishing to work with TAP.
- Refactor SessionPublishQueue for improved throughput by removing locking on Subscription enumeration.
- Include domains and applicationName in ServerCertificate for CreateSigningRequest Method with parameter regeneratePrivateKey = true.
- Complete IAsyncNodeManager Interface with support for sync Calls using SyncNodeManagerAdapter.
- Add Async MonitoredItem Management methods to MasterNodeManager & IAsyncNodeManager.
- Implement Service Members of IAsyncNodeManager in MasterNodeManager.
- INodeManager: Propagate MonitoredItemId using Class MonitoredItemIdFactory instead of ref globalIdCounter.
- Extended MasterNodeManager with support for ReadAsync, WriteAsync, HistoryReadAsync, HistoryWriteAsync, TranslateBrowsePathAsync, ConditionRefreshAsync.
- Extended StandardServer with ActivateSessionAsync, CreateSessionAsync, FindServersAsync, GetEndpointsAsync, CloseSessionAsync.
- Improve SubscriptionManager throughput by removing lock on subscription dictionary lookups.
- Implement async transportlistener callback.
- Refactor MasterNodeManager NamespaceManagers Property to use ConcurrentDictionary for lock free lookups.
- Add an Explicit deterministic load test to test Server Performance.
- Allow non OPC-UA conform SubjectName values to AddSecurityConfigurationStores

### Client Specific:

- Obsolete APM calls.
- Set default timout hint based on OperationTimeout of the TransportChannel.

### Fixes:

- Fix memory leak of Monitored Items in CustomNodeManager2.
- Fix JsonDecoder for Unions.
- Fix NodeId.Parse() to reject invalid identifiers without type prefix.
- Fix log level for expected client disconnection scenarios (BadNoSubscription and related status codes).
- Fix client Close method to properly wait for outstanding publish requests.
- Fix InvalidCastException in GetBrowseName methods for Attributes, DataTypes, ReferenceTypes, and StatusCodes.
- Fix TranslateBrowsePath to NodeIds synchronous path in MasterNodeManager.
- Fix WriteArray in encoders to also write null.
- Fix HistoryRead bit not set in Server object EventNotifier when history capabilities are enabled

Released packages

OPCFoundation.NetStandard.Opc.Ua
OPCFoundation.NetStandard.Opc.Ua.Core
OPCFoundation.NetStandard.Opc.Ua.Security.Certificates
OPCFoundation.NetStandard.Opc.Ua.Configuration
OPCFoundation.NetStandard.Opc.Ua.Server
OPCFoundation.NetStandard.Opc.Ua.Client
OPCFoundation.NetStandard.Opc.Ua.Client.ComplexTypes
OPCFoundation.NetStandard.Opc.Ua.Bindings.Https
OPCFoundation.NetStandard.Opc.Ua.PubSub

What's Changed

  • [Server] Refactor MasterNodeManager NamespaceManagers Property to use ConcurrentDictionary for lock free lookups by @romanett in #3190
  • [Server] Implement async transportlistener callback by @romanett in #3184
  • [Server] Improve SubscriptionManager throughput by removing lock on subscription dictionary lookups by @romanett in #3189
  • Make IAsyncNodeManager experimental / Remove deprecated ICertificateStoreMembers / Rename IApplicationConfigurationBuilderCreate.Create to CreateAsync by @romanett in #3187
  • [Server] Extend MasterNodeManager with support for ReadAsync, WriteAsync, HistoryReadAsync, HistoryWriteAsync, TranslateBrowsePathAsync, ConditionRefreshAsync by @romanett in #3188
  • Retry to reactivate session on BadNoCommunication and BadConnectionClosed. by @mrsuciu in #3197
  • [Server] Fix TranslateBrowsePath to NodeIds sync path in MasterNodeManager by @romanett in #3195
  • Update Microsoft nuget packages to 9.0.9 Versions by @romanett in #3205
  • Fix ExtendedNodeId not correctly json encoded #3209 by @marcschier in #3211
  • [Server] INodeManager: Propagate MonitoredItemId using Class MonitoredItemIdFactory instead of ref globalIdCounter by @romanett in #3207
  • [Server] Implement Service Members of IAsyncNodeManager in MasterNodeManager by @romanett in #3204
  • [Server] Add Async MonitoredItem Management methods to MasterNodeManager & IAsyncNodeManager by @romanett in #3217
  • Improve thread safe Utils methods for incrementing identifiers by @romanett in #3221
  • [Server] Complete IAsyncNodeManager Interface with support for sync Calls using SyncNodeManagerAdapter by @romanett in #3218
  • Introduce telemetry context and proper use of ILogger by @marcschier in #3213
  • Bump Nerdbank.GitVersioning from 3.7.115 to 3.8.118 by @dependabot[bot] in #3231
  • Bump BenchmarkDotNet from 0.15.3 to 0.15.4 by @dependabot[bot] in #3232
  • Add API back as Obsolete for samples to compile (almost) unchanged. by @marcschier in #3234
  • More missing obsoleted API to support better porting by @marcschier in #3237
  • Bump Microsoft.NET.Test.Sdk from 17.14.1 to 18.0.0 by @dependabot[bot] in #3238
  • Fix InvalidCastException in GetBrowseName methods for Attributes, DataTypes, ReferenceTypes, and StatusCodes by @Copilot in #3242
  • Immutable Encodeable factory and lookup performance improvements by @marcschier in #3241
  • Improve test stability of ValidateTransfer test, ensure thread safety in MonitoredItem by @marcschier in #3243
  • Refactor string usage for secrets (#394) by @marcschier in #3250
  • Fix log level for expected client disconnection scenarios (BadNoSubscription and related status codes) by @Copilot in #3255
  • Fix: Update Dockerfile to target .NET 9.0 by @Navaneethnanda in #3246
  • [Client] Set default timout hint based on OperationTimeout of the TransportChannel by @romanett in #3178
  • Bump github/codeql-action from 3 to 4 by @dependabot[bot] in #3260
  • Bump NUnit3TestAdapter from 5.1.0 to 5.2.0 by @dependabot[bot] in #3261
  • Replace deprecated Uri.DnsSafeHost with Uri.IdnHost by @Copilot in #3256
  • Fix WriteArray in encoders to also write null. by @marcschier in #3266
  • Make GDS tests stable and add better logging to unit tests by @marcschier in #3271
  • Allow non OPC-UA conform SubjectName values to AddSecurityConfigurationStores by @mrsuciu in #3229
  • Check bounds for switched on values and roslyn cleanup by @marcschier in #3264
  • Fix HistoryRead bit not set in Server object EventNotifier when history capabilities are enabled by @Copilot in #3252
  • [Server] Include domains and applicationName in ServerCertificate for CreateSigningRequest Method with parameter regeneratePrivateKey = true by @romanett in #3263
  • Fix client Close method to properly wait for outstanding publish requests by @Copilot in https://github.com/OPCFoundation/UA-.NETStandar...
Read more

OPC UA 1.05 Maintenance Update

14 Nov 10:31
c09d97c

Choose a tag to compare

OPC UA 1.05 Maintenance Update

22 Sep 11:58
f646405

Choose a tag to compare

Breaking Changes:

Server

  • IMonitoredItem Interface extended & used instead of MonitoredItem Class
  • New ISession Interface instead of Session Class
  • ISesssionManager, ISubscriptionManager, ISubscription & IServerInternal interfaces extended

Core

  • ICertificateStore Async Methods now have async suffixes, old names deprecated
  • All obsolete Methods removed

Client

  • All sync methods are now marked as deprecated
  • DataTypeDictionaries moved into the ComplexTypes Package. If the helper methods of the Session were used we recommend to use the complex type system as a replacement that can handle all servers from OPC UA Spec 1.0 - 1.0.05.
  • NodeCache now has an async interface (to have access to the ITypeTable interface use the .TypeTree property or AsNodeTable method

ApplicationInstance

  • Methods Returning a task have asyny suffixes

GDS Client

  • sync apis marked as deprecated

Bug Fixes:

Server

  • Fix Subscription Keepalive being sent on first publish
  • Handle unsent requests on closed SecureChannel to be sent on new channel of the same session

Client

  • Disable Subscription cleanup if subscriptions are being created
  • Fix subscription leaking due to not completed PublishResponseMessageWorkerAsync tasks
  • Fix subscription leaking due to not completed PublishResponseMessageWorkerAsync tasks

New features:

Server

  • Support for async method calls by implementing IAsyncNodeManager interface (see ConfigurationNodeManager for an example usage)
  • New Task based Request Queue
  • New generated Code with async Method Call handlers & async Service Calls
  • New extended CustomNodeManager with support for SamplingGroup Mechanism

GDS Client

  • exposes async APIS and marks sync apis as deprecated

Client

  • New LRU NodeCache added & used in ComplexType System

Released packages

OPCFoundation.NetStandard.Opc.Ua
OPCFoundation.NetStandard.Opc.Ua.Core
OPCFoundation.NetStandard.Opc.Ua.Security.Certificates
OPCFoundation.NetStandard.Opc.Ua.Configuration
OPCFoundation.NetStandard.Opc.Ua.Server
OPCFoundation.NetStandard.Opc.Ua.Client
OPCFoundation.NetStandard.Opc.Ua.Client.ComplexTypes
OPCFoundation.NetStandard.Opc.Ua.Bindings.Https
OPCFoundation.NetStandard.Opc.Ua.PubSub

What's Changed

  • Update GDS Client to use async Client API and deprecate sync Calls. by @romanett in #3164
  • Bump actions/checkout from 4 to 5 by @dependabot[bot] in #3165
  • Fix nuget and official build and additional smaller analzyer fixes by @marcschier in #3166
  • remove sync client calls from async client tests by @romanett in #3168
  • Make GDS Tests use ECC for connection. Update Certificate wait check to use polling mechanism. by @romanett in #3167
  • removing strong namer which does not work and fork async add auto and… by @marcschier in #3175
  • [Tests] Remove net 462 CI / Add TestContext Logging support for GDS Tests / Fix Tests for netstandard by @romanett in #3170
  • Make sync client api obsolete by @marcschier in #3174
  • Optimize reflection-based lookups using caches by @marcschier in #3179
  • Move newly introduced AsyncNodeTable and AsyncTypeTree interfaces to core by @marcschier in #3182

Full Changelog: 1.5.376.244...1.5.377.21

OPC UA 1.05 Maintenance Update

04 Sep 11:08
6d52547

Choose a tag to compare

Breaking Changes:

Server

  • IMonitoredItem Interface extended & used instead of MonitoredItem Class
  • New ISession Interface instead of Session Class
  • ISesssionManager, ISubscriptionManager, ISubscription & IServerInternal interfaces extended

Core

  • ICertificateStore Async Methods now have async suffixes, old names deprecated
  • All obsolete Methods removed

Client

  • All sync methods are now marked as deprecated
  • DataTypeDictionaries moved into the ComplexTypes Package. If the helper methods of the Session were used we recommend to use the complex type system as a replacement that can handle all servers from OPC UA Spec 1.0 - 1.0.05.
  • NodeCache now has an async interface (to have access to the ITypeTable interface use the .TypeTree property or AsNodeTable method

ApplicationInstance

  • Methods Returning a task have asyny suffixes

GDS Client

  • sync apis marked as deprecated

Bug Fixes:

Server

  • Fix Subscription Keepalive being sent on first publish
  • Handle unsent requests on closed SecureChannel to be sent on new channel of the same session

Client

  • Disable Subscription cleanup if subscriptions are being created
  • Fix subscription leaking due to not completed PublishResponseMessageWorkerAsync tasks
  • Fix subscription leaking due to not completed PublishResponseMessageWorkerAsync tasks

New features:

Server

  • Support for async method calls by implementing IAsyncNodeManager interface (see ConfigurationNodeManager for an example usage)
  • New Task based Request Queue
  • New generated Code with async Method Call handlers & async Service Calls
  • New extended CustomNodeManager with support for SamplingGroup Mechanism

GDS Client

  • exposes async APIS and marks sync apis as deprecated

Client

  • New LRU NodeCache added & used in ComplexType System

Released packages

OPCFoundation.NetStandard.Opc.Ua
OPCFoundation.NetStandard.Opc.Ua.Core
OPCFoundation.NetStandard.Opc.Ua.Security.Certificates
OPCFoundation.NetStandard.Opc.Ua.Configuration
OPCFoundation.NetStandard.Opc.Ua.Server
OPCFoundation.NetStandard.Opc.Ua.Client
OPCFoundation.NetStandard.Opc.Ua.Client.ComplexTypes
OPCFoundation.NetStandard.Opc.Ua.Bindings.Https
OPCFoundation.NetStandard.Opc.Ua.PubSub

What's Changed

  • Update GDS Client to use async Client API and deprecate sync Calls. by @romanett in #3164
  • Bump actions/checkout from 4 to 5 by @dependabot[bot] in #3165
  • Fix nuget and official build and additional smaller analzyer fixes by @marcschier in #3166
  • remove sync client calls from async client tests by @romanett in #3168
  • Make GDS Tests use ECC for connection. Update Certificate wait check to use polling mechanism. by @romanett in #3167
  • removing strong namer which does not work and fork async add auto and… by @marcschier in #3175
  • [Tests] Remove net 462 CI / Add TestContext Logging support for GDS Tests / Fix Tests for netstandard by @romanett in #3170
  • Make sync client api obsolete by @marcschier in #3174
  • Optimize reflection-based lookups using caches by @marcschier in #3179
  • Move newly introduced AsyncNodeTable and AsyncTypeTree interfaces to core by @marcschier in #3182

Full Changelog: 1.5.376.244...1.5.377.11-preview

OPC UA 1.05 Maintenance Update

31 Jul 09:42
91c1a02

Choose a tag to compare

1.05.376 July Release

This release is based on the 1.05.05 Nodeset with generated files from the ModelCompiler.
It contains important bug fixes which were found after the last 1.05.376 release, as well as new features.

Enhancements:

  • Enhance enum definition handling and validation.
  • Use Central Package Management for Nuget Packages.

New Features:

  • Implement Support for PEM Public Keys in Directory Certificate Store.
  • Allow to modify sensitivity of KeepAliveStopped on Client.
  • Add support for Async Service Calls in the generated files.

Fixes:

  • Fix Client removing subscription if publish response is received before createSubscriptionResponse.
  • Fix Subscription Diagnostics DataChangeNotificationsCount being calcualted incorrectly.

NET6.0 target removed

  • The NET6.0 outdated target has been removed since it is superseded by NET8.0.

Released packages

OPCFoundation.NetStandard.Opc.Ua
OPCFoundation.NetStandard.Opc.Ua.Core
OPCFoundation.NetStandard.Opc.Ua.Security.Certificates
OPCFoundation.NetStandard.Opc.Ua.Configuration
OPCFoundation.NetStandard.Opc.Ua.Server
OPCFoundation.NetStandard.Opc.Ua.Client
OPCFoundation.NetStandard.Opc.Ua.Client.ComplexTypes
OPCFoundation.NetStandard.Opc.Ua.Bindings.Https
OPCFoundation.NetStandard.Opc.Ua.PubSub

What's Changed

  • [Server] Fix Subscription Diagnostics DataChangeNotificationsCount being calcualted incorrectly by @romanett in #3119
  • [Client] Fix removal of Subscription if PublishResponse is received before CreateSubscriptionResponse by @romanett in #3120
  • Remove net6 / Label Pubsub Package as Release / Update Nuget Packages by @romanett in #3121
  • Use Central Package Management for Nuget Packages by @romanett in #3122
  • Enhance enum definition handling and validation by @marcschier in #3124
  • [Client] Allow to modify sensitivity of KeepAliveStopped by @romanett in #3105
  • Implement Support for PEM Public Keys in Directory Certificate Store by @romanett in #3088
  • Update for 1.5.5 release with Async Service Calls by @opcfoundation-org in #3116
  • Remove net6.0 left-overs. by @mrsuciu in #3130
  • Merge master to release/1.5.376 by @mrsuciu in #3131

Full Changelog: 1.5.376.235...1.5.376.244

OPC UA 1.05 Maintenance Update

26 Jun 11:21
faeb581

Choose a tag to compare

1.05.376 June Release

It contains important bug fixes which were found after the last 1.05.376 release, as well as a couple of new features.

Enhancements:

  • Enhance role permission validation on server.

New Features:

  • Allow to define a custom StringComparsion for Equals Operator.
  • Implement Support for client requested "mul" locale.

Fixes:

  • Fix XML Encoding and decoding of Matrix element to conform to specification.
  • Fix closing of shared Transport Channel in Recreate Scenario on client.
  • Fix Regression - Sampling Group disposing m_shutdownEvent in Shutdown Method on server.

Released packages

OPCFoundation.NetStandard.Opc.Ua
OPCFoundation.NetStandard.Opc.Ua.Core
OPCFoundation.NetStandard.Opc.Ua.Security.Certificates
OPCFoundation.NetStandard.Opc.Ua.Configuration
OPCFoundation.NetStandard.Opc.Ua.Server
OPCFoundation.NetStandard.Opc.Ua.Client
OPCFoundation.NetStandard.Opc.Ua.Client.ComplexTypes
OPCFoundation.NetStandard.Opc.Ua.Bindings.Https
OPCFoundation.NetStandard.Opc.Ua.PubSub

What's Changed

  • Fix XML Encoding and decoding of Matrix Element in Variant to conform to spec by @romanett in #3053
  • Bump Microsoft.Extensions.Logging and Microsoft.NETFramework.ReferenceAssemblies by @dependabot in #3057
  • Bump NUnit.Console and Microsoft.NETFramework.ReferenceAssemblies by @dependabot in #3058
  • Bump Microsoft.Extensions.Configuration and Microsoft.NETFramework.ReferenceAssemblies by @dependabot in #3060
  • Add version System.Diagnostics.DiagnosticSource to match Microsoft.Extensions.Logging.Abstractions version by @mrsuciu in #3061
  • [Server] Add Back removed Public QueueEvent(EventFieldList fields) Method to MonitoredItem by @romannet in #3064
  • Bump Microsoft.Extensions.Configuration, Microsoft.Extensions.Configuration.EnvironmentVariables and Microsoft.NETFramework.ReferenceAssemblies by @dependabot in #3066
  • Bump Serilog, Serilog.Sinks.File and Microsoft.NETFramework.ReferenceAssemblies by @dependabot in #3067
  • Update to latest nuget packages by @mrsuciu in #3069
  • Disable strongname warning for net8.0 and net9.0 for MQTTnet latest unsigned assembly by @mrsuciu in #3073
  • [Server] Enhance role permission validation by @romanett in #3047
  • [Client] Fix closing of shared Transport Channel in Recreate Scenario / Add missing event Handler to Session Constructor / Call RenewUserIdentity on Session.ReCreate by @romanett in #3055
  • Fix XML Encoding of Null Variant to conform to spec by @romanett in #3062
  • [Server] [Regression] fix Sampling Group disposing m_shutdownEvent in Shutdown Method. Fix double call of Shutdown Method by @romanett in #3070
  • Make RelativePath.Parse throw SRE if NamespaceIndexes cannot be found by @romanett in #3071

Full Changelog: 1.5.376.213...1.5.376.235

OPC UA 1.05 Maintenance Update

23 Apr 11:18
f3f01d0

Choose a tag to compare

1.05.376 April Release

This release is based on the 1.05.04 Nodeset with generated files from the ModelCompiler.
The focus of this release is on the added support for Durable Subscriptions, support for the 1.05.04 Nodeset and bug fixes.

Breaking Changes:

  • Updated XML-Encoding / XML-Decoding of Matrix Element in Variant to conform to Specification
  • Interface extensions in the Server to support Durable Subscriptions
  • A valid CertificateStore Configuration is now enforced on Startup

Potential breaking changes that can affect modelling tools:

  • The UANodeSet includes a new optional attribute DesignToolOnly.

New Features:

  • 1.05.04 Nodeset Update
  • Allow setting a temporary Context for using IEncoders in custom code
  • Add Support for Durable Subscriptions by implementing needed persistence code in custom Interfaces. Sample Implementations are present in the console reference Server Docs

Fixes:

  • Fix ValueRank for Base Variable State
  • UserIdentityToken now uses UTF-8 Encoded byte Array for storing unencrypted PW

Released packages

OPCFoundation.NetStandard.Opc.Ua
OPCFoundation.NetStandard.Opc.Ua.Core
OPCFoundation.NetStandard.Opc.Ua.Security.Certificates
OPCFoundation.NetStandard.Opc.Ua.Configuration
OPCFoundation.NetStandard.Opc.Ua.Server
OPCFoundation.NetStandard.Opc.Ua.Client
OPCFoundation.NetStandard.Opc.Ua.Client.ComplexTypes
OPCFoundation.NetStandard.Opc.Ua.Bindings.Https
OPCFoundation.NetStandard.Opc.Ua.PubSub

What's Changed

  • Bump Microsoft.Extensions.Logging and Microsoft.NETFramework.ReferenceAssemblies by @dependabot in #3015
  • Bump Microsoft.Extensions.Configuration and Microsoft.NETFramework.ReferenceAssemblies by @dependabot in #3019
  • [Server] [Client] Return BadIdentityTokenInvalid if use of anonymous identity token is not allowed by @romanett in #3012
  • Enable Durable Subscriptions by @romanett in #2978
  • 1.05.04 final release fixes by @opcfoundation-org in #2893
  • Bump BouncyCastle.Cryptography and Microsoft.NETFramework.ReferenceAssemblies by @dependabot in #3034
  • Bump Microsoft.Extensions.Logging and Microsoft.NETFramework.ReferenceAssemblies by @dependabot in #3038
  • [Server] Restore durable subscriptions on Server Restart by @romanett in #3025
  • Bump Microsoft.Extensions.Configuration and Microsoft.NETFramework.ReferenceAssemblies by @dependabot in #3039
  • Enforce Valid Certificate Store configuration by @romanett in #3023
  • Make UserIdentityToken internally use byte Array instead of string for storing unencrypted password. by @romanett in #3035
  • [Console Reference Server] Implement file based queues for durable Subscriptions by @romanett in #3042
  • Set default value for the ValueRank attribute of BaseVariableState and BaseVariableTypeState to ValueRanks.Any as in the specification by @mrsuciu in #3049
  • Allow setting the context in a temporary using scope for IEncoder instances by @mrsuciu in #3044
  • Update version.json by @mrsuciu in #3050
  • Fix XML Encoding and decoding of Matrix Element in Variant to conform… by @romanett in #3054

Full Changelog: 1.5.375.457...1.5.376.213

OPC UA 1.05.375 Maintenance Update

26 Feb 14:14
733ec5d

Choose a tag to compare

1.05.375 Maintenance Update

This release is based on the 1.05.03 Nodeset with generated files from the ModelCompiler.
It contains important bug fixes which were found after the last 1.05.375 ECC release.

Improvements and bug fixes

  • Various smaller bug fixes.
  • Fix: SecurityToken renewal
  • Remove oldest channel if not used by session
  • Fix reconnect when ReverseConnection is used
  • Add support for SupportsFilteredRetain
  • By default set NoDelay and Lingerstate to 5 sec (thanks @sxleixer)
  • Fix RegisterWithDiscoveryServer method not using a certificate for the secure channel

Released packages

OPCFoundation.NetStandard.Opc.Ua
OPCFoundation.NetStandard.Opc.Ua.Core
OPCFoundation.NetStandard.Opc.Ua.Security.Certificates
OPCFoundation.NetStandard.Opc.Ua.Configuration
OPCFoundation.NetStandard.Opc.Ua.Server
OPCFoundation.NetStandard.Opc.Ua.Client
OPCFoundation.NetStandard.Opc.Ua.Client.ComplexTypes
OPCFoundation.NetStandard.Opc.Ua.Bindings.Https
OPCFoundation.NetStandard.Opc.Ua.PubSub

What's Changed

Full Changelog: 1.5.375.443...1.5.375.457