What's New - Connectivity Studio 2026.1 (5.84)
Internal version number: 5.84
Key changes:
- .NET 10 and VS 2026 support
- OPC UA Server: Access Control
Targeting
- .NET runtimes: Added support for .NET 10.
- The primary development tool is now Visual Studio 2026.
- Windows 11 version 22H2 (x64) removed from the list of supported operating systems.
- Windows 10 version 1809 (x64) removed from the list of supported operating system
Technology
- OPC UA Client-Server parts are now based on OPC Foundation UA-.NETStandard 1.5.378.106.
- The installation program now uses Inno Setup 6.7.1.
Packaging
- Added assemblies OpcLabs.BaseLibPrimitives, OpcLabs.EasyOpcUAPrimitives and OpcLabs.EasyOpcUACore, and moved parts of OpcLabs.EasyOpcUA assembly into them. Also, added the corresponding COM type libraries. This change is largely invisible to most .NET developers, because they reference the NuGet packages, and not the individual assemblies. It is also does not affect the source code itself in COM languages. However, in COM language or tools that import type libraries, such as C++, Object Pascal (Delphi), Visual Basic 6.0 or Visual Basic for Applications (VBA), the developer needs to add reference to the new type libraries. Also, during application deployment for COM, the new assemblies and possibly also type libraries need to be installed.
- The OpcCmd, UADemoPublisher, and SparkplugCmd utilities are now also published as Docker images.
- The code analyzers have been moved from the Visual Studio extension into a NuGet package, OpcLabs.Analyzers. Read more about code analyzers further down in this article.
Delivery
-
The Docker images for OpcCmd, UADemoPublisher, and SparkplugCmd are publicly available on Docker Hub
Component Improvements
OPC UA
- Updated classes in OpcLabs.EasyOpc.UA.AddressSpace.Standard namespace (such as UAObjectsIds) to reflect enhancements up to OPC UA 1.05.06.
- Added newly introduced certificate types to the UACertificateTypeIds class.
OPC UA Client-Server
- Added UAPermissions and UARolePermissions types, and their intrinsic conversions from/to OPC UA PermissionType and RolePermissionType. This makes it easier to read and write RolePermissions and UserRolePermissions attributes of nodes.
- Added UANodeDescriptor.ToString(Boolean) method overload, allowing to specify whether full or brief string representation should be returned for the node descriptor.
OPC UA Client
- It is now (finally) possible to specify certificate acceptance policy differently for each endpoint, by setting the UAEndpointDescriptor.CertificateAcceptancePolicy to a non-null UACertificateAcceptancePolicy object.
- Added useful extension methods:
- IEasyUAClient.NodeExists: Determines whether a node exists in an OPC-UA server.
- IEasyUAClient.ReadOne: Reads an OPC-UA attribute from a single node, returning attribute data result.
- IEasyUAClient.ReadOneValue and ReadOneValue<TValue>: Reads the value of an attribute from a single OPC-UA node, returning value result. In the generic overloads, converts the value to the specified type.
- IEasyUAClient.ReadOneValueNonNull<TValue>: Reads the value of an attribute from a single OPC-UA node, returning value result, converts the value to the specified type and ensures it is not null.
- IEasyUAClient.ReadOptionalValue<TValue>: Reads the value of an attribute, returning value result, converting the value to the specified type and returning null if the node does not exist.
- IEasyUAClient.ReadValue<TValue>: Reads the value of an attribute and converts it to the specified type.
- IEasyUAClient.ReadValueNonNull<TValue>: Reads the value of an attribute and converts it to the specified type, ensuring it is not null.
- Added static UANodeId.KEPServerEX method for easy creation of OPC UA node IDs when using Kepware KEPServerEX.
- Added property UAClientServerEngineParameters.AllowNoneSecurityPolicy. This property determines globally whether security policy None will be allowed.
OPC UA Server
- Added IEasyUAServer.UserIdentityTokenTypes property, which gets or sets the user identity token types that the server exposes and that clients can use for authentication. It can be used to enable/disable e.g. the anonymous or username identity tokens.
- Added EasyUAServer.UserManagers property. The property contains Anonymous and NameAndPassword user managers, which are used to control authentication and authorization for the OPC UA server.
- The name&password user manager allows your code to create, modify and delete users together with their passwords, and also assign them to security roles.
- The default implementation of the name&password user manager (the MemoryNameAndPasswordUserManager class) allows the contents of the user manager be loaded from or saved to a stream or a file, in JSON format.
- Added EasyUAServer.VerifyUser event, which is raised to verify and authenticate a user's identity token. This event allows custom logic to be implemented for verifying user identity tokens presented during client connections (if the logic provided by user managers is not sufficient for the specific scenario).
- Added EasyUAServer.GetIdentityContextSecurityRoleIds event, which is raised to determine the security role IDs for a given user identity context. This event allows custom logic to be implemented for determining which security roles should be assigned to a user based on their identity context. If the event is not handled, the server will use the configured user managers to determine the security roles.
- Added UAServerNode.PermissionAssignment property, which defines what permissions are assigned to specific roles. The effective permissions are calculated by combining these with inherited permissions based on PermissionsInheritanceType property. The inheritance can be disabled, or the node can inherit its permissions from the parent node, or from the namespace.
- Added EasyUAServer.ObjectsNamespaceDefaultPermissionAssignment property, which gets or sets the default permission assignment for the objects namespace. Custom nodes under the Objects folder inherit permissions specified in this property, if their PermissionsInheritanceType is set to Namespace.
- Using the new ServerOperationContext property and its members like the SecurityPrincipal property, available in the event arguments for read, write and subscription-related methods and events, the developer can customize the permission authorization if the specific scenario requires it.
OPC UA Administration and PKI
- Added new property UAObtainCertificateArguments.ForceUpdateCertificate (defaults to true). When obtaining certificates from the Certificate Manager (CM), by setting it to false, it is now possible to specify that the CM should first be asked whether the certificate needs to be updated (using the OPC UA GetCertificateStatus method).
- Added method IEasyUACertificateManagement.CheckRevocationStatus. Checks the revocation status of the specified certificate using the provided Global Discovery Server (GDS) endpoint descriptor.
- Added method IEasyUACertificateManagement.RevokeCertificate. Revokes a certificate that was previously issued by the Certificate Manager.
- Added method IEasyUAClientServerApplication.RevokeOwnCertificatesOrCertificatePack. Revokes the own certificates or certificate pack issued by the Certificate Manager (CM).
-
The custom connection property "0:MqttTopicPrefix" is interpreted as the <Prefix> part of the topic convention.
-
More relaxed decoding of JSON messages, allowing to process messages from publishers not fully conforming with the OPC UA specification.
Component Refactorings
OPC UA Client
- Renamed UserIdentity class to UserIdentityInfo. Correspondingly, renamed UserIdentity property in objects like UAEndpointDescriptor to UserIdentityInfo.
Development Productivity
- The code analyzers (now contained in OpcLabs.Analyzers NuGet package) are referenced from the OpcLabs.QuickOpc and Opclabs.OpcWizard packages. This means that they are in effect automatically whenever these NuGet packages are referenced (used in your projects). It is not necessary to have the Connectivity Software Visual Studio extension installed.
- Code analyzers now also work in Visual Studio Code.
- Code analyzers now also work in command-line builds.
Tools and Online Services
Connectivity Explorer
- Added "Certificate Acceptance Policy" command on OPC UA endpoint node, allowing the user to specify the policy used with the chosen endpoint.
- Added "View Server Certificate" command on OPC UA session endpoint node, allowing the user to view the certificate the server is associating with this session endpoint.
- Added "Revoke Certificate pack" command on OPC UA Client-Server root node, allowing the user to revoke the certificate pack issued by the Certificate Manager (CM).
OpcCmd Utility
OPC UA Client
- Added --applicationName|-an command-line option to the uaClient discover globalApplications command. The options allows you to specify the ApplicationName (or filter with the LIKE syntax) of the applications to be returned.
OPC UA Server
- Added commands to manage users and their permissions: uaServer users, uaServer users addFrom, uaServer users nameAndPassword loadFromFile and uaServer users nameAndPassword saveToFile.
- Under uaServer, use mesh addFrom instead of addMesh subcommand.
Examples
Platform: .NET
OPC
- Added over 20 client code examples in C# with KEPServerEX, for OPC Classic (Data Access) and OPC UA.
OPC UA Client-Server
- Added C# example for the EasyUAClient.SubscribeMultipleDataChanges method.
Sparkplug
- Added example showing how to locally store the data updates when the edge node is offline and automatically push the stored data to the broker when the edge node is back online.
Documentation and Help
- Added Getting Started procedures for creating OPC UA and OPC DA console applications for .NET Framework (in Visual Studio)
- Improved visuals and navigation in User's Guide, added clarifications, especially in Getting Started and Examples sections.
- Improved Knowledge Base visuals and navigation, updated and streamlined Categories and Table of Contents.
Other
Sparkplug
- Bug fixes