Benefits

From OPC Labs Knowledge Base
Revision as of 15:53, 30 January 2018 by User (talk | contribs) (→‎API Design)


Support

  • We respond to every post on our Online Forums (http://www.opclabs.com/forum/index).
  • As opposed to many other vendors, our technical support is public, which means that any possible issues are visible on the Web and you can find them - and an advise on how to resolve them - without having to become a customer first. If your issue involves sensitive or confidential information, we can provide support to you via email.

Costs

  • no need to pay yearly to OPCF to stay closed-source. It gets cheaper to purchase the toolkit rather than paying annual OPC Foundation fees.
  • Perpetual license

API Design

The libraries are CLS-compliant
CLS (Common Language Specification) by Microsoft makes it possible to interact seamlessly with code written in all kinds of .NET-based languages, and that means not just C# (or VB.NET). Other OPC libraries are not CLS compliant.
  • "Made for .NET"
  • method overloads for short code
  • clear exception model
  • equality/operators

Developer Friendliness

  • debugger: does not show unnecessary private fields
  • Help integration
  • Intellisense
  • slow down UA keep-alive mechanisms when debugging


Goodies

  • formatting feature
  • assemblies have strong names
  • our installable and all bineries are code-signed (some security environments do not allow any unsigned code; OPCF does not sign).


Notices

QuickOPC infers the data type in OPC UA writes.
OPC UA is quite picky regarding the data type upon writes, and any difference (such as sending an unsigned integer instead of signed, or simply sending 8 bits instead of 16 or so) results in an error. Other libraries let you on your own, and your code must somehow figure out what the right type is. QuickOPC infers the correct data type, and performs a conversion before the write if necessary, all without you even having to be aware of that.
QuickOPC adjusts the OPC UA keep-alive timing in debugger.
OPC UA has built-in mechanisms that monitor the client-server connection for liveliness. That is good in production, but it also means that when you put a breakpoint into an OPC UA program, you are likely to encounter a broken connection when you resume the execution - because there was no communication while the program was paused. Other toolkits ignore this issue; QuickOPC detects the debugger, and attempts to adjust the parameters so that the execution can be paused for extended periods of time.


  • connectivity explorer
  • Comprehensive Reference
  • Interoperability tested
  • Visual binding


  • Binary/xml serialization
  • Typesafe (strong typing)/generics
  • Low-ceremony API
  • Highly intuitive toolkit
  • .NET and COM interfaces are largely identical
  • API has high expressive power
  • OPC DA Quality Decoder included
  • Excel integration
  • Simple licensing - no hassles with lost licenses "tied" to a hardware
You do not have to create XML configuration files in order to make your program work.
Most other libraries will show you how to write a code, and then tell you it won't actually run, until you also place a specially crafted XML configuration file into your project, *and* also make a change to your app.config file to point to the first XML file. QuickOPC does not require any of that.
Pre-installation of OPC Core Components is not required.
For OPC Classic, QuickOPC does not require you to have the right version OPC Foundation's OPC Core Components installed on the client computer. Other toolkits require that, often resulting in struggle to obtain the version OPC Core Components that works on given computer.
Pre-installation of UA Certificate Generator is not required.
For OPC UA, QuickOPC does not require you to have the right version of OPC Foundation's UA Certificate Generator tool installed on the client computer. With other toolkits, you cannot just write client code, run it and expect it to work - because an OPC UA client needs a certificate to communicate securely, and other SDKs won't generate it for you unless you install the UA Certificate Generator first.
No need to create or assign an OPC UA certificate by a manual process.
As opposed to many other tools, QuickOPC will automatically (by default) create an OPC UA certificate for your application and then use it is subsequent runs. You do not have to do anything manually, or in your code, in this respect.
You can specify namespace URIs for OPC UA nodes
... and not namespaces indices. This is important, because the server can can change namespace indices between sessions. Other toolkits largely ignore this, and even give you examples where the node is specified with a hard-coded namespace index. Proper way of doing this is to look up the namespace index that corresponds to namespace URI, but that complicates the user code a lot. QuickOPC does this for you.
  • any node/item descriptor can specify either a node ID, or browse path, or both
  • UA complex data
  • NuGet
Deployment of applications is easy and fully documented.
QuickOPC has only very few requirements on the target system (such as the presence of the .NET Framework), but the dependencies it has are clearly stated in a dedicated section of the User's Guide, and explained.
Installer that actually works.
QuickOPC comes with a production installer that can be used to only install the parts that are necessary in run-time. The installer installs files into a well documented and controllable directory (as opposed to OPC Foundation's installer that installs files to undocumented directories that the user cannot control, but does not install anything into the directory the user enters...).
The product has stable release process.
It is not uncommon to see unexpected, undocumented behavior and content changes between builds of OPC Foundation's software, especially in relation to the installers. QuickOPC only changes between the builds of the same version are for bug fixes. All other modifications only go to a newly released version, and even then the changes are limited and well controlled and documented.
OPC XML-DA servers are accessible through the same component as OPC DA.
With QuickOPC, the same component and API is used to work with "Classic" OPC DA Servers, as with the OPC XML-DA Servers. Just use the URL in place of server's ProgID, and your code can work with XML-DA. Other libraries require you to write different code for OPC XML-DA versus OPC-DA.
  • Consistence -> Conventions (link to)
Examples are not just in C#.
The examples that come with QuickOPC cover many different languages, not just C#. Specifically, the second most covered language is VB.NET. Other .NET-based libraries typically come with C# developers in mind only.