What's new in QuickOPC 2023.2: Difference between revisions

From OPC Labs Knowledge Base
 
(9 intermediate revisions by the same user not shown)
Line 9: Line 9:


= Targeting =  
= Targeting =  
* '''Python (with help of the Python.NET library) on Windows is now officially supported.'''
* '''Python (with help of the [https://pythonnet.github.io/ Python.NET library]) on Windows is now officially supported.'''
* '''PyCharm is listed as one of the primary development environments.'''
* '''[https://www.jetbrains.com/pycharm/ PyCharm] is listed as one of the primary development environments.'''
* Windows Server 2012 R2 (x64) is no longer supported.
* 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.
* 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.
Line 18: Line 18:


= Licensing =
= 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).'''
* '''In .NET applications, added a possibility to deploy the license key in a file located in the file system (the so-called [https://opclabs.doc-that.com/files/onlinedocs/QuickOpc/2023.2/User%27s%20Guide%20and%20Reference-QuickOPC/webframe.html#File%20License%20Store.html File License Store]).'''


= Packaging =
= Packaging =
Line 25: Line 25:


= Delivery =
= Delivery =
* '''The Python packages ([https://pypi.org/project/opclabs-quickopc/  opclabs_quickopc] etc.) are available on the Python Package Index (https://pypi.org/ ).'''
* '''The [https://opclabs.doc-that.com/files/onlinedocs/QuickOpc/2023.2/User%27s%20Guide%20and%20Reference-QuickOPC/webframe.html#Python%20Packages.html Python packages] ([https://pypi.org/project/opclabs-quickopc/  opclabs_quickopc] etc.) are available on the Python Package Index (https://pypi.org/ ).'''
* The Setup program installs a copy of Python packages (opclabs_quickopc etc.) locally.
* The Setup program installs a copy of Python packages (opclabs_quickopc etc.) locally.
<!--
<!--
Line 96: Line 96:
* 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).
* 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 ==
== Platform: .NET ==
* '''Added a set of more than 270 .NET examples in Python using the Python.NET package (https://github.com/pythonnet/pythonnet ).''' The previously provided smaller set of OPC Python examples using the Python for Windows (pywin32) extensions package (over COM API) remains in the product and continues to work, but we recommend using the Python.NET approach.
* '''Added a set of more than 270 .NET examples in Python using the Python.NET package (https://github.com/pythonnet/pythonnet )''' (for illustration, see the [https://opclabs.doc-that.com/files/onlinedocs/QuickOpc/2023.2/User%27s%20Guide%20and%20Reference-QuickOPC/webframe.html#Examples%20-%20OPC%20Unified%20Architecture%20-%20Read%20a%20single%20value.html very basic OPC UA example]). The previously provided smaller set of OPC Python examples using the Python for Windows (pywin32) extensions package (over COM API) remains in the product and continues to work, but we recommend using the Python.NET approach.
* OPC client and subscriber examples in Python on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-Python .
<!--
<!--
== OPC Classic ==
== OPC Classic ==
Line 107: Line 108:
= Documentation and Help =
= Documentation and Help =
* Methods and properties of all commonly used types are now consistently annotated with exceptions they may throw.
* 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 [https://opclabs.doc-that.com/files/onlinedocs/QuickOpc/2023.2/User%27s%20Guide%20and%20Reference-QuickOPC/webframe.html#Getting%20Started%20in%20Python.html Getting Started] articles etc.
* 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 [https://opclabs.doc-that.com/files/onlinedocs/QuickOpc/2023.2/User%27s%20Guide%20and%20Reference-QuickOPC/webframe.html#Getting%20Started%20in%20Python.html Getting Started] articles, a dedicated [https://opclabs.doc-that.com/files/onlinedocs/QuickOpc/2023.2/User%27s%20Guide%20and%20Reference-QuickOPC/webframe.html#Programming%20in%20Python.html Programming in Python] article, a new [https://www.opclabs.com/products/quickopc/languages-and-tools/python landing page], etc.
* Added Knowledge Base article [https://kb.opclabs.com/Inside_the_Python_support_in_QuickOPC Inside the Python support in QuickOPC].
<!--
<!--
== COM Components ==
== COM Components ==
-->
-->
= 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.
<br>
<br>

Latest revision as of 11:33, 7 December 2023

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.