What's new in QuickOPC 2018.3

From QuickOPC Knowledge Base
Jump to: navigation, search


See also: Versions; Previous version: What's new in QuickOPC 2018.2

Internal version number: 5.54

Key changes:

  • Support for .NET Standard
  • Specialized client objects


Targeting

  • QuickOPC now also targets .NET Standard. Supported runtime currently is .NET Core (2.0.5, 2.0.6, 2.0.7 or 2.1.2) on Microsoft Windows and Linux, although other runtimes and operating systems may work as well. Only OPC UA and OPC XML-DA specifications are supported when targeting .NET Standard. See Development Platforms in the documentation, for a table of functionalities available on each platform. In newly created licenses, the .NET Standard development platform is available in Professional and Ultimate editions.
  • Development tools: For .NET Standard development, besides Visual Studio 2017, .NET Core CLI tools, JetBrains Rider and Visual Studio Code (with C# extension) are among the intended primary development tools.
  • .NET runtimes: Removed .NET Framework 4.5.2 from the list of supported .NET runtimes (use .NET Framework 4.6.2 instead).
  • .NET runtimes: Removed .NET Framework 4.6 from the list of supported .NET runtimes (use .NET Framework 4.6.2 instead).
  • Development tools: Visual Studio 2012 removed from the list of primary development tools. It will likely still work for most tasks, though.

Technology

Delivery

  • When targeting .NET Standard, the only delivery vehicle for the libraries themselves is the NuGet feed from http://www.nuget.org. The installer (Windows only) is still used for other parts of the product. Explanation to this decision can be found here: Why is delivery over NuGet feed used for .NET Core?
  • Examples for .NET Standard are provided in form of downloadable .ZIP and .TGZ archives (if you are on Windows, you also still get them through the QuickOPC installer). Links to the example archive files are in the documentation (in the Examples section), and on the Web site.

Licensing

  • It is now possible to embed the license key as managed resource in one of application's assemblies. When this approach chosen, no additional licensing-related steps are needed in order to run the application when deployed on the target machine.
  • The LMConsole utility now uses non-zero exit codes to indicate execution errors. The list of exit codes is in the documentation.
  • OPC UA method calls (the Method Service Set, represented in QuickOPC by EasyUAClient.CallMethod and CallMultipleMethods methods) are no longer available in the Standard edition (applies to new license keys only).
  • OPC UA Alarms & Conditions support is no longer available in the Standard edition (applies to new license keys only).
  • OPC UA network discovery (using LDS-ME) is no longer available in the Standard edition (applies to new license keys only).

Installation and Uninstallation

  • The installation packages (for Windows) have been renamed to contain "Windows" in their name, e.g. QuickOPC-2018.3-Windows-Full.exe.
  • The installers are now built using Inno Setup version 5.6.1.

Component Improvements

  • Added new members to the UAAttributeId enumeration, in order to cover the changed made in OPC UA 1.04. The new attribute IDs are: DataTypeDefinition, Permissions, UserPermissions and RolePermissions.
  • Querying for OPC UA applications using global discovery now also uses the new QueryApplications GDS method (in addition to the QueryServers method, marked as depreciated in newer OPC UA specifications).
  • Added AllowSha1SignedCertificates property to the UACertificateAcceptancePolicy class. Determines whether certificates signed with SHA-1 message digest algorithm can be accepted.
  • Added MinimumCertificateKeySize property to the UACertificateAcceptancePolicy class. Determines the minimum length of the certificate's public key.
  • Added UseCustomHttpsCertificateValidation property to the UAClientEngineParameters class. Determines whether the certificates used for HTTPS communication will be validated by the component, or using the system default rules.
  • When performing OPC UA application discovery on a given host, endpoint URLs with schemes that are known to be not supported by the OPC UA stack or .NET runtime are silently skipped, resulting in faster discovery and better error diagnostic in some cases.
  • Error messages resulting from OPC UA SDK actions now contain a report, detailing the exceptions and SDK traces gathered during the action.
  • Added overloads of extension methods IEasyUAClient.ReadMultiple and ReadMultipleValues, allowing to make the reads specifying an array of node descriptors (and read the Value attribute), or an array of attribute IDs (on a single node).
  • Added a boolean Flat property to the UAGlobalApplicationDiscoveryQuery class, and an overload with a boolean flat argument to the DiscoverGlobalServers extension method.
  • Added a ToInt32 method to UAServiceResult, and an implicit conversion from UAServiceResult to an integer. The method and the conversion take the code bits of the service result, making it easier to access this most important piece of the service result, and e.g. compare it against expected error code values.
  • Added extension methods WithAnonymousIdentity, WithKerberosIdentity, WithUserNameIdentity and WithX509CertificateIdentity to the UAEndpointDescriptor class. These methods return a copy of the endpoint descriptor with the specified token info in its user identity, allowing to add user identitites to endpoint descriptor in an easy way.
  • Added an implicit conversion from UAMessageSecurityModes to UAEndpointSelectionPolicy.
  • In COM interfaces, added methods that accept and return lists instead of arrays (affects EasyDAClient, EasyAEClient, EasyUAClient objects). This allows the data be prepared and processed by COM tools and languages that lack sufficient support for arrays of objects, such as PowerScript (PowerBuilder). Also, added an ElasticVector object for that purpose, which allows construction of such lists.

Specialized Client Objects

  • Added a new EasyUAGlobalDiscoveryClient component, a specialized client object for OPC UA global discovery. It contains methods to communicate with the OPC UA Global Discovery Server (GDS) using its information model for global discovery, making the work of assembling the proper OPC UA method parameters and retrieving the results. The methods allow querying for applications and/or servers, and registering, unregistering or updating application registrations in the GDS. The object can be derived from existing IEasyUAClient using the new AsGlobalDiscoveryClient extension method, or it can be instantiated standalone.
  • Added a new EasyUACertificateManagementClient component, a specialized client object for OPC UA certificate management. It contains methods to communicate with the OPC UA Global Discovery Server (GDS) using its information model for certificate management, making the work of assembling the proper OPC UA method parameters and retrieving the results. The methods allow getting certificate groups, requesting key pairs or certificate signing and obtaining the results, retrieving trust lists, and more. The object can be derived from existing IEasyUAClient using the new AsCertificateManagementClient extension method, or it can be instantiated standalone.

Services

  • Added a new IEasyUAClientApplication service that can be obtained from the EasyUAClient object. This service allows management of the OPC UA client application. It has high-level properties and method for tasks related to maintaining application registrations in the GDS servers, obtaining instance certificate from GDS, refreshing application trust lists from GDS, etc.

Component Refactorings

  • Renamed one of the DiscoverGlobalServers method overloads to DiscoverGlobalApplications.
  • Setting an OPC UA certificate acceptance policy specific to an endpoint is no longer supported, as it cannot be reliably implemented due to limitations of the underlying UA stack. You can set the certificate acceptance policy globally.

Specialized Client Objects

  • Extension methods on IEasyUAClient for Alarms and Conditions have been moved to a new EasyUAAlarmsAndConditionsClient component. The object can be derived from existing IEasyUAClient using the new AsAlarmsAndConditionsClient extension method, or it can be instantiated standalone.

User Interface

  • Added Console Interaction Provider, automatically selected in user-interactive applications that have no GUI windows. With it, console-based applications can now interact with the user for accepting HTTPS and instance certificates, approving certificate domain mismatches, etc.
  • The Node Information Pane in browsing dialogs and controls now displays a little "Copy to clipboard" icon next to pieces of data that are commonly copied.

OPC Browsing in Point Editor (Connectivity Explorer and Live Binding configuration)

  • The Point Editor now contains Actions pane (at the right side), which mainly repeats the commands available on the context menu, in order to make them more easily accessible.
  • On the OPC UA root node, a new "View Instance Certificate" command allows the user to inspect the current instance certificate used by the client application.
  • Discovery using the OPC UA Global Discovery Server (GDS) is now possible. When a server is returned with the GDS capability indication, it is visually distinguished using a different icon and a "*GDS" text appended to its display name. It is also possible to mark any OPC UA endpoint as being a GDS, by the "Treat As GDS" command in the browse control. Nodes under the GDS can be organized by Host, Application, or Discovery Endpoint.
  • Under the OPC UA root node, a special node labeled "Default GDS" appears, for the default GDS endpoint configured on the EasyUAClient component.
  • OPC UA endpoint nodes that are treated as GDS have an additional "Set As Default GDS" command, allowing them be used as the default GDS in subsequent operations.
  • On the GDS node, a new group of commands labeled "GDS Registration" appears, with following commands:
    • "Register this client". Creates an application registration in the GDS, assigning it a new application ID. Existing registrations with the same application URI are removed first.
    • "Update this client registration". Updates an application registration in the GDS, keeping its application ID. A new registration is created if the application is not yet registered in the GDS. Preexisting registrations with the same application URI are removed.
    • "Unregister this client". Removes an application registration from the GDS, if it exists. All existing registrations for the application URI are removed.
    • "Find this client registration". Finds and displays all registrations for this application URI in the GDS.
  • On the GDS node, a new group of commands labeled "Certificate Manager (CM)" appears, with following commands:
    • "Obtain new certificate". Obtains a new application instance certificate from the certificate manager, and stores it for subsequent usage.
    • "Refresh own trust lists". Retrieves the current trust lists for the application from the certificate manager, and refreshes own certificate stores accordingly.
  • On the OPC UA root node, a new command "GDS & CM Operations" leads to a sub-menu with application registration and certificate management commands that operate on the default GDS.

Developer Tool Integration

Excel Option

Instrumentation

  • Improved OPC UA logging associated with HTTPS certificate validation.

Tools

Connectivity Explorer

  • In the Point Editor window (Browse tab), context menu on the "OPC Unified Architecture" node now has a command that allows configuring the global Endpoint Selection Policy (applies when a specific policy is not set on the endpoint).
  • In the Point Editor window (Browse tab), context menu on the "OPC Unified Architecture" node now has a command that allows configuring the global Certificate Acceptance Policy.
  • In the Live Point Data window, the row context menu now has a "View Arguments" command, which allows the user to view the current inputs, outputs or results in a property grid. This command can also be invoked on multiple selected rows, in which case the viewer dialog includes a set of navigator controls as well.
  • In the Live Point Data window, the row context menu now has a "To Point Editor" command, which allows to navigate to the Point Editor and set its current point to the point of the data row chosen.

Documentation and Help

  • Documentation was updated to cover the support for .NET Standard. See Transitioning from .NET Framework to .NET Standard for areas that specifically need attention.
  • COM Reference has been enhanced with links to .NET Reference and interlinks, and TLBIDs, CLSIDs, IIDs and other GUIDs, ProgIDs, DISPIDs and similar information.

Examples

  • The documentation examples in .NET have been consistently updated to show proper error handling practices.
  • Added large number of examples in VB.NET.
  • Added COM examples in PowerScript (PowerBuilder)

Bonus Material

  • Added UA Configuration Tool (from OPC Foundation) to the installed Bonus Material. Main usage of this tool in relation to QuickOPC is to manage the OPC UA certificates.