Skip to content
  • There are no suggestions because the search field is empty.

Guidelines and Precautions for Upgrading to OPC Data Client Version 2021.1

Version 2021.1 contains changes that will require you to manage your upgrade more carefully than some releases. This FAQ outlines those considerations.

Users of OPC Data Client are strongly advised to follow software development and change management best practices. This includes but is not limited to
  • Backups of their project source code separate from your working copy you plan to upgrade,
  • Reviewing release notes & current system requirements carefully, and
  • Testing recompiled applications before deploying them to the field. 
  • If you are skipping multiple versions in your upgrade, you must review all release notes between the version your code is based on and the version you plan to upgrade to.
  • It is the developer's responsibility to provide a fully tested updated version of your custom application with all required dependent files.

Product support does not include fixing problems that can be shown to be a result of failure to follow good change management and development practices involving your custom code.

Changes of note specific to this version

In each release, we are careful to try and avoid making changes that would require our developers to make code or other changes other than updating runtime binaries. Sometimes due to advancements in supporting platforms, compilers or other technologies, or to provide new features and support of significant value, changes are made that cause a release to require additional work.  
Significant changes that can affect your application that you should carefully evaluate are listed below. 

Support for .NET 5.0

  • It is not required that you upgrade to .NET 5.0 to use OPC Data Client 2021.1
  • If you plan to upgrade your application to this newer version of .NET, you should expect to need to re-test your application more than a minor change 
  • You may need to update what version of Visual Studio you use.

Optional Use New Feature - Intrinsic Component Configuration. (details in documentation)

  • This feature adds the ability to set parameters that affect the main OPC Data Client components externally using environment variables, appsetting files, etc.
  • The feature enables you or your users to make changes to the behavior for specific situations without you having to recompile your custom application, or build a settings/setup screen into your application. 
  • Although use of this feature is optional, it did require adding a dependency on Microsoft Platform Extensions, which affects your runtime deployment file list.

Deployment Requirements for all users upgrading from earlier versions:

You may have to add a reference to Microsoft.Extensions.Configuration.Abstractions and possibly also Microsoft.Extensions.DependencyInjection.Abstractions assembly (both available under Assemblies\net47 under the product installation directory) to your project.
  • Affected projects are ones where the OPC Data Client components have been instantiated by a code generated by Visual Studio designer, e.g. Windows Forms projects where you have placed some OPC Data Client components from the VS Toolbox onto the design area.
  • When instantiating new components in this way in OPC Data Client 2021.1, the necessary assembly references are added automatically.
IMPORTANT: Assemblies that are only used internally are no longer embedded inside the OPC Data Client assemblies (this mechanism was used under .NET Framework to reduce the number of files that need to be deployed) 
    • The assemblies that you need to include with your compiled application distribution will be placed in the compiler output folder
    • Read more about this in the Installing Assemblies (.NET) topic of the Application Deployment section of the product documentation
    • If you fail to address this issue, your users will not be able to run your updated application. If they contact us for support, they will be redirected to you to obtain a proper installer or deployment fileset from you. 

Component Refactorings

Please review the Version 2021.1 release notes Component Refactoring section carefully on all releases. This part of the release notes outlines areas that may result in the need for you to change code. We try to keep breaking changes to a minimum but sometimes it is not possible.  Specifically in this release you must pay attention to these changes.
This is NOT an exhaustive list, but the ones we felt the need to call attention to. 

OPC Classic - changes to ReadItemValue and ReadItemMultipleValues methods

    • Note these are the methods that just return a value, as opposed to the ReadItem and ReadMultiple methods that return value, quality, and timestamp (VQT). Those methods are NOT affected by this change.
    • Prior to Version 2021.1, the ReadItemValue and ReadItemMultipleValues methods would return a value regardless of whether the OPC Quality was Good or not. The reason we prefer that users use the ReadItem and ReadMultiple methods is that they can then inspect the OPC Quality and communicate values to their application or users in a way that helps the user decide if they wish to use the value
    • Starting with Version 2021.1, the ReadItemValue and ReadItemMultipleValues methods will only return a value if the OPC Quality is Good (Hex C0, Decimal 192), otherwise they will not return values. 
    • Users using the ReadItemValue and ReadItemMultipleValues methods should consider changing to using the ReadItem and ReadMultiple methods or adding logic to handle the change in behavior on the ReadItemValue and ReadItemMultipleValues methods.

OPC UA

      • Certificate store paths that were previously specified in UACertificateAcceptancePolicy are now set in the UAClientApplicationParameters.ApplicationManifest, with slightly different property names.
      • Replaced several properties in UAClientApplicationParameters object by a single ApplicationManifest property. Use the following table, also found in the release notes, to upgrade your code that uses these UAClientApplicationParameters properties.
Old New
ApplicationName ApplicationManifest.ApplicationName
ApplicationUriString ApplicationManifest.ApplicationUriString
ProductUriString ApplicationManifest.ProductUriString
ApplicationCertificateSubject ApplicationManifest.InstanceCertificateSubject
ApplicationCertificateStore ApplicationManifest.InstanceOwnStorePath