What's new in QuickOPC 2018.2

From QuickOPC Knowledge Base
Jump to: navigation, search


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

Internal version number: 5.53

Key changes:

  • Miscellaneous improvements


Targeting

  • Added official support for .NET Framework 4.7.1.
  • Added official support for .NET Framework 4.7.2.
  • Added support for Windows Server version 1709 (x64) and Windows Server 2016 Core (x64), with limitations. Only runtime (no development) is supported under Server Core systems, and some minor features in the GUI (such as launching a browser from the controls or dialogs, or browsing for computers directly) may not not work. For details, consult the documentation.
  • Development tools: Visual Studio 2017 Community added to the list of primary development tools.
  • Removed Windows 8.1 from the list of supported operating systems
  • Removed .NET Framework 4.6.1 (but not 4.6 or 4.5.2) from the list of supported .NET runtimes.

Technology

  • Updated to newer BoxedApp SDK: 2018.2.

Licensing

  • The OpcLabs.BaseLibForms assembly now uses Krypton software library, and if you redistribute this assembly, you need to comply with its license terms (permissive license that, in principle, only requires a proper attribution). Krypton software license terms are included in the documentation.
  • The (GUI-based) License Manager utility and the (console-based) LMConsole utility now (in addition to .BIN files) also accept license key files with .TXT extension (in Base64 format).

Installation and Uninstallation

  • Significantly reduced the size of the full installer by moving the documentation file for Visual Studio integration to a Web location instead. The installer downloads this file automatically when needed.
  • The Full Installer gives a warning when run on Server Core system (such as Windows Server version 1709), suggesting that the user should use the Production Installer instead.

Component Improvements

  • Added ServerCertificateByteArray and ServerCertificate properties to the UAEndpointDescriptor class. This allows the developer to specify the server certificate needed for secure channel communication (specifying the server certificate is normally not needed, unless you want to improve the time needed for connection or the server does not support the GetEndpoints service).
  • With precisely specified effective endpoint selection policy, when no OPC UA security is to be used, or when the server certificate is presented in the endpoint descriptor, the component now (by default) connects to the server without a call to the discovery (GetEndpoints service). This makes the connection process faster, and allows (insecure) connections to servers that do not support the GetEndpoints service.
  • Added a boolean DiscardOldest property to UAMonitoringParameters. The value specifies whether to discard the oldest notification when a new notification is to be queued into a full queue. Default is 'true' (i.e. gives the same behavior as in previous versions).
  • Added UACallArguments constructor overloads that accept an array of TypeCode as an argument (previously, just array of Type was supported).
  • Performance improvements in OPC UA when large number of elements is involved in Read, Write, CallMethod or Subscribe.

OPC UA Discovery

  • Added UALocalEndpointDiscoveryQuery class as a type of discovery query, and a corresponding DiscoverLocalEndpoints method. Allows perfoming a query using the GetEndpoints OPC UA service on the specified discovery endpoint, and returns the endpoints discovered.
  • Added DiscoveryUriStrings collection to the UADiscoveryElement class. Contains possibly multiple discovery URLs for an application. The existing DiscoveryUriString property is now derived from this collection, and contains a non-empty string if the collection contains precisely one discovery URL.
  • Added EndpointSelectionPolicy, EndpointUriString, ServerCertificate and ServerCertificateByteArray properties to the UADiscoveryElement class. In addition, when information contained in these properties is provided as a result from discovery, the methods and operators that convert UADiscoveryElement to UAEndpointDescriptor will copy it over to the endpoint descriptor, assuring that the endpoint with the same properties will be used.
  • Added a boolean Flat property to the UALocalApplicationDiscoveryQuery class, and overloads with a boolean flat argument to the DiscoverLocalApplications, DiscoverLocalServers and FindLocalApplications methods. This property or parameter determines whether one element will be returned for each discovery URL.

OPC UA Endpoint Selection

  • Added a TransportProfileUriString property to the UAEndpointSelectionPolicy class. When not an empty string, specifies the required transport profile string of the endpoint.
  • Added a TransportProfileDisplayName property to the UAEndpointSelectionPolicy class. When not an empty string, specifies the display name of the required transport profile of the endpoint.
  • Added a DataEncodingName property to the UAEndpointSelectionPolicy class. Specifies the name of the data encoding of the endpoint (Binary, XML, or an empty string for both).
  • Added a ProtocolName property to the UAEndpointSelectionPolicy class. Specifies the name of the protocol of the endpoint (HTTP, HTTPS, TCP, or an empty string for any of them).
  • Added a RequireAuthentication property to the UAEndpointSelectionPolicy class. Specifies whether authentication of the communication parties is required.
  • Added a RequireConfidentiality property to the UAEndpointSelectionPolicy class. Specifies whether communication confidentiality is required (usually provided by encryption).
  • Added a RequireIntegrity property to the UAEndpointSelectionPolicy class. Specifies whether communication integrity is required (usually provided by signing).
  • Added a RejectObsoleteSecurityPolicies property to the UAEndpointSelectionPolicy class. Specifies whether endpoints with obsolete security policies will be rejected.
  • Added an EndpointSelectionPolicy property to the UAEndpointDescriptor class. When set to non-null, it overrides the endpoint selection policy specified in the session parameters, and allows to specify the policy just for this endpoint.
  • Added a SecurityPolicyDisplayName property to the UAEndpointSelectionPolicy. When not an empty string, specifies the display name of the required security policy of the endpoint.
  • Added static NoMessageSecurity property to the UAEndpointSelectionPolicy class. Contains and endpoint selection policy that only allows connections with no message security.
  • Added static GuaranteedIntegrity property to the UAEndpointSelectionPolicy class. Contains and endpoint selection policy that guarantees communication integrity.
  • Added static GuaranteedIntegrityExcludingObsolete property to the UAEndpointSelectionPolicy class. Contains and endpoint selection policy that guarantees communication integrity, excluding obsolete security policies.
  • Added static GuaranteedIntegrityAndConfidentiality property to the UAEndpointSelectionPolicy class. Contains and endpoint selection policy that guarantees integrity and confidentiality, excluding obsolete security policies.
  • For easier usage, added various constructor overloads to the UAEndpointSelectionPolicy class.
  • Added SecurityPolicyUri and TransportProfileUri properties to the UAEndpointSelectionPolicy. They correspond to the SecurityPolicyUriString and TransportProfileUriString properties, but allow to work with values typed as System.Uri (and not a string).
  • Added a read-only IsPrecise property to the UAEndpointSelectionPolicy. Determines whether the endpoint selection policy specifies (together with a URL) a precise endpoint.
  • Added static class UATransportProfileUriStrings, with list of OPC UA transport profile URI strings.

Component Refactorings

OPC UA Discovery

  • The UADiscoveryElementCollection is no longer keyed by the discovery URL of the discovery element, and has been turned into a regular collection.
  • Renamed various types, according to following table.
Old name New name
UAApplicationElement UADiscoveryElement
UAApplicationElementCollection UADiscoveryElementCollection
UAEndpointDiscoveryQuery UALocalApplicationDiscoveryQuery
UAGlobalDiscoveryQuery UAGlobalApplicationDiscoveryQuery
UALocalDiscoveryQuery UALocalApplicationDiscoveryQuery
UANetworkDiscoveryQuery UANetworkServerDiscoveryQuery
UAQueryServersFilter UAQueryApplicationsFilter
  • Renamed some properties, according to following table.
Old name New name
UAEndpointDialog.ApplicationElement UAEndpointDialog.DiscoveryElement
UAHostAndEndpointDialog.ApplicationElement UAHostAndEndpointDialog.DiscoveryElement
  • Renamed various methods on IEasyUAClient, _EasyUAClient, EasyUAClient, IEasyUAClientExtension, according to following table.
Old name New name
DiscoverApplications(UADiscoveryQuery) Discover
DiscoverApplications - other overloads DiscoverLocalApplications
DiscoverServers DiscoverLocalServers
DiscoverServersOnNetwork DiscoverNetworkServers
FindApplications FindLocalApplications
QueryServers DiscoverGlobalServers

User Interface

OPC UA Endpoint Browsing

  • In Connectivity Explorer and in Live Binding configuration, new nodes appear in browsing that allow OPC UA network discovery using LDS-ME (Local Discovery Server with Multicast Extensions).
  • The context menu on OPC UA endpoint nodes now contains an additional "Endpoint Selection Policy..." command, allowing the user to influence the endpoint selection on specific node only.
  • The context menu on OPC UA endpoint nodes now contains an additional "Certificate Acceptance Policy..." command, allowing the user to influence how the certificates are accepted on that specific endpoint only.
  • Browsing for OPC UA endpoints now shows the discovery endpoints in two levels, instead in a flat level. The first level are the OPC UA applications (servers), and on the second level, the actual discovery endpoints for each server are listed.
  • Browsing for OPC UA endpoints: On the context menu for OPC UA Host nodes, there are now radio buttons that allow the user to choose how the sub-nodes will be shown: Either organized by OPC UA applications, or a flat list of discovery URIs.
  • Browsing for OPC UA endpoints: It is now possible to browse the session endpoints (with their security policy, transport profile etc.). The user can switch to the them using the context or Tools menu on the level of application (server) nodes, or discovery endpoints.
  • Added context menu entries that allow the user to choose how the discovery endpoints or session endpoints will be displayed. For discovery endpoints, the options (depending on context) are URL/URL, Application Name/Scheme. For session endpoints, the options are URL, Policy Specifier/Scheme, Policy Specifier/Policy, Mode, Profile.
  • The URLs in the endpoint browsing UI are shortened (by replacing the host name by "...") whenever the host name is evident from the ancestor node, making it easier to read, and fit into the view.
  • The User Identity dialog (available through context menu on OPC UA endpoint nodes) now contains an an additional Properties tab with detailed settings organized in a property grid.
  • The User Identity command, and other context menu commands son the OPC UA endpoint nodes that modify some endpoint parameters, now have a visual distinction when the corresponding parameters differ from the default. The non-default value is indicated by a blue square border around the icon associated with the command.

OPC UA Endpoint Selection Policy Editor

  • Introduced "OPC UA Endpoint Selection Policy" editor, with lots of options to influence the policy.
  • The user can specify the policy using individual controls for policy aspects such as message security mode, security policy name, data encoding etc. Alternatively, a policy from a set of pre-defined policies can be easily chosen, ranging from no message security up to a fully secured policy.
  • The editor includes policy security ranking algorithm which immediately shows whether and when the policy provides communication authentication, confidentiality and/or integrity. In addition, the user can check a box next to each of these security objectives, and require the policy to fulfill the associated objective.
  • The editor includes a policy analyzer which immediately show errors, warning and informational messages associated with the current policy settings.
  • The Advanced and Properties tabs of the editor allow the user to influence every detailed aspect of the policy.

Developer Tool Integration

  • When OPC UA client session parameters or OPC UA endpoint descriptor are presented in Visual Studio property grid, the developer can invoke the OPC UA Endpoint Selection Policy Editor to comfortably view and modify the policy options.
  • When a UAQualifiedName is presented in Visual Studio property grid, it is possible to enter its string representation directly into the property grid row.
  • When UAMonitoringParameters.EncodingName is presented in Visual Studio property grid, it is possible to use a drop-down to select from the two commonly used values ("Default Binary" or "Default XML").

Excel Option

  • Added a new documentation topic explaining the installation of the Excel Option (the choices to be made in the Setup program).

Instrumentation

  • Added warning log entry when OPC UA application name contains improper characters.
  • Added informational log entry when the effective endpoint selection policy has warnings.
  • Added informational log entry listing the parameters of the preselected (and normalized) OPC UA endpoint.
  • Added informational log entry listing the parameters of the endpoint when it has been synthetised (without preselection).

Tools

Connectivity Explorer

  • The main application windows (Point Editor, Parameters Editor, and Live Point Data) are now part of a docking workspace that allows you to arrange them in various ways (drag-and-drop to move between the cells, or dock, make floating or auto-hidden) or close.
  • Added a Solution Navigator bar (initially docked at the left edge of the application window) to switch between main functionalities of the program.
  • Added new windows, Address Space browse and Address Space Graph, and ability to navigate to them from the nodes in Point Editor. The new windows allow visualizing the address space of OPC Classic and OPC UA server in different ways.
  • The Event Records window (opens as floating window initially) can now be docked and/or manipulated in a similar way as the main application windows.
  • Added commands under the View menu to open or re-open the individual main application windows (Point Editor, Parameters Editor, and Live Point Data).
  • Added Window -> Reset Window Layout command, to restore the original structure of application windows.
  • Data change filter for OPC-UA Attribute Point can now be comfortably edited, without having to switch to Properties tab. This includes all trigger choices, deadband type choices, and the actual absolute or percentual deadband value (using a numerical up-down control, or a slider).
  • Percent deadband for OPC-DA Item Point can now be comfortably edited, using a numerical up-down control, or a slider, and without having to switch to Properties tab.
  • The Event Records window now has icons next to connectivity log entries, corresponding to the entry type (Error, Warning, Information, Success Audit or Failure Audit).
  • The "View entry" button in Event Records window, when used on Connectivity log entries, now leads to a viewer where the log entry is displayed in a user-friendly manner.
  • Drop-down combos for point type now include an icon that corresponds to the selected point type.
  • Enriched some menu commands by icons.

Documentation and Help

  • Improved navigation for examples.
  • As described above (Installation and Uninstallation), the Visual Studio help contents is now downloaded from a Web location.

Examples

  • Added C# examples where so far only COM-based examples existed.
  • Improved Delphi (Object Pascal) examples with proper use of automatic reference counting (ARC) and explicit object deallocation (prevent memory leaks).