What's new in QuickOPC 2023.2

From OPC Labs Knowledge Base
Jump to navigation Jump to search
See also: Versions; Previous version: What's new in QuickOPC 2023.1

Internal version number: 5.72

Key changes:

  • Support for Python.NET
  • User Interface Runtime in .NET 6+


Targeting

  • Python (with help of the Python.NET library) on Windows is now officially supported.
  • PyCharm is listed as one of the primary development environments.
  • Windows Server 2012 R2 (x64) is no longer supported.
  • Provided workaround for a change made by Microsoft in some Visual Studio 2022 revision after 17.4.0 that breaks QuickOPC VS Toolbox/designer support. As a consequence of the workaround, the VS extension now requires at least Visual Studio 17.6.3.

Technology

  • OPC UA Client-Server parts based on OPC Foundation UA-.NETStandard 1.4.372.56.

Licensing

  • In .NET applications, added a possibility to deploy the license key in a file located in the file system (the so-called File License Store).

Packaging

  • Added assemblies OpcLabs.BaseLibComponents, OpcLabs.EasyOpcClassicComponents and OpcLabs.EasyOpcUAComponents, and moved some top-level (those that appear in Visual Studio toolbox) components to them. Also, added 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 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.
  • In addition to NuGet packages, for ease of use in Python, the software is now also packaged in Python packages. The main package name is opclabs_quickopc. The packages hide away from the developer the fact that behind the scenes, Python.NET is used to wrap the .NET types and make them available to Python.

Delivery

Component Improvements

OPC Alarms&Events

  • Added AEEventData.ActiveTimeTicks property, and added alternate extension overloads of the IEasyAEClient.AcknowledgeCondition method. The new property and extension method overloads represent the event active time in UTC ticks rather than as DateTime. This is useful with Python.NET, which represents .NET DateTime as 'datetime' Python object, and thus reduces the required resolution (100 nanoseconds) to microseconds.

User Interface

  • In runtime, all user interface features (such as controls, dialogs, and live binding; Windows Forms and WPF) are now supported under .NET 6+. However, designing them in Visual Studio is only possible in .NET Framework (4.7.2-4.8.1) projects. In order to achieve visual design for .NET 6+ projects, the developer can make two project files over the same set of source files, one targeting .NET Framework and one targeting .NET 6+, and use the project that targets .NET Framework for visual design tasks.
  • The controls for password input now have an "eye" icon to their right, allowing the user to reveal the actual password characters in the field. Clicking the "eye" icon again hides the password again; this also happens automatically after 5 seconds.

Examples

Platform: COM

  • Examples that use Python over the COM API remain in the product, but such usage is now deprecated. The recommendation is to use the new Python support (via Python.NET).

Platform: .NET

Documentation and Help

  • Methods and properties of all commonly used types are now consistently annotated with exceptions they may throw.
  • The documentation has been updated to take into account the usage from Python (using Python.NET). Python is now treated as "first-class citizen", with its own Getting Started articles, a dedicated Programming in Python article, a new landing page, etc.
  • Added Knowledge Base article Inside the Python support in QuickOPC.

Deprecation

  • We are announcing the future deprecation and removal of WPF user interface controls from the product. The ability to invoke self-contained UI dialogs (such as for OPC browsing, or OPC UA application administration) from WPF applications will remain.