• Stars
    star
    1,906
  • Rank 24,201 (Top 0.5 %)
  • Language
    C#
  • License
    Other
  • Created over 8 years ago
  • Updated 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

OPC Unified Architecture .NET Standard

Official OPC UA .NET Standard Stack from the OPC Foundation

Overview

This OPC UA reference implementation is targeting the .NET Standard specification.

.NET Standard allows to develop apps that run on all common platforms available today, including Linux, iOS, Android (via Xamarin) and Windows 7/8/8.1/10/11 (including embedded/IoT editions) without requiring platform-specific modifications.

One of the reference implementations inside this project has been certified for compliance through an OPC Foundation Certification Test Lab to prove its high quality. Fixes and enhancements since the certification process have been tested and verified for compliance using the latest Compliance Test Tool (CTT).

Furthermore, cloud applications and services (such as ASP.NET, DNX, Azure Websites, Azure Webjobs, Azure Nano Server and Azure Service Fabric) are also supported.

More samples based on the official Nuget packages can be found in the OPC UA .NET Standard Samples repository. For development there is also a preview Nuget feed available. For local testing a Docker container of the Reference Server is available for preview and release builds.

For more information and license terms, see here.

Features included

Core and Libraries

  • Fully ported Core OPC UA Stack and Libraries (Client, Server, Configuration, Complex Types & GDS assemblies).
  • Reference sample Server and Client.
  • X.509 Certificate support for client and server authentication.
  • SHA-2 support (up to SHA512) including security profile Basic256Sha256, Aes128Sha256RsaOaep and Aes256Sha256RsaPss for configurations with high security needs.
  • Anonymous, username and X.509 certificate user authentication.
  • UA-TCP & HTTPS transports (client and server).
  • Reverse Connect for the UA-TCP transport (client and server).
  • Folder & OS-level (X509Store) Certificate Stores with Global Discovery Server and Server Push support.
  • Sessions and Subscriptions.
  • A PubSub library with samples.

New in 1.4.368

  • Improved support for Logging with ILogger and EventSource.
  • Support for custom certificate stores with refactored ICertificateStore and CertificateStoreType interface.
  • Client and Server support for TransferSubscriptions.
  • How to use Container support with reference server.

Samples and Nuget packages

Project Information

General Project Info

Github top language Github stars Github forks Github size Github release Nuget Downloads

Build Status

Azure DevOps Github Actions

Code Quality

Test Status CodeQL Coverage Status

Getting Started

All the tools you need for .NET Standard come with the .NET Core tools. See Get started with .NET Core for what you need.

How to build and run the reference samples in Visual Studio on Windows

Note: Since .NET Core 2.1 is end of life,

  • VS 2017 has only limited support for .NET 4.8.
  • VS 2019 is fully supported with .NET 4.8 and up to .NET Core 3.1 (end of life).
  • VS 2022 is the current supported version, including .NET 6.0 (LTS).
  1. Open the UA Reference.sln solution file using Visual Studio.
  2. Choose a project in the Solution Explorer and set it with a right click as Startup Project.
  3. Hit F5 to build and execute the sample.

How to build and run the console samples on Windows, Linux and iOS

This section describes how to run the ConsoleReferenceServer sample application.

Please follow instructions in this article to setup the dotnet command line environment for your platform. As of today .NET Core SDK 3.1 is required for Visual Studio 2019 and .NET SDK 6.0 is required for Visual Studio 2022.

Prerequisites

  1. Once the dotnet command is available, navigate to the root folder in your local copy of the repository and execute dotnet restore 'UA Reference.sln'. This command calls into NuGet to restore the tree of dependencies.

Start the server

  1. Open a command prompt.
  2. Navigate to the folder Applications/ConsoleReferenceServer.
  3. To run the server sample type dotnet run --project ConsoleReferenceServer.csproj -a.
    • The server is now running and waiting for connections.

Remarks

Self signed certificates for the sample applications

All required application certificates for OPC UA are created at the first start of each application in a directory or OS-level certificate store and remain in use until deleted from the store. Please read Certificates for more information about certificates and stores

Local Discovery Server

By default all sample applications are configured to register with a Local Discovery Server (LDS). A reference implementation of a LDS for Windows can be downloaded here. To setup trust with the LDS the certificates need to be exchanged or registration will fail.

Contributing

We strongly encourage community participation and contribution to this project. First, please fork the repository and commit your changes there. Once happy with your changes you can generate a 'pull request'.

You must agree to the contributor license agreement before we can accept your changes. The CLA and "I AGREE" button is automatically displayed when you perform the pull request. You can preview CLA here.

More Repositories

1

UA-Java-Legacy

This repository is provided by OPC Foundation as legacy support for an Java version for OPC UA.
Java
355
star
2

UA-.NET-Legacy

OPC Foundation Unified Architecture .NET Reference Implementations
C#
330
star
3

UA-.NETStandard-Samples

C#
246
star
4

UA-Nodeset

UA Nodeset
C#
205
star
5

UA-ModelCompiler

ModelCompiler converts XML files into C# and ANSI C
C#
149
star
6

UA-IIoT-StarterKit

Samples and tutorials to illustrate how to build OPC UA PubSub applications.
C#
128
star
7

UA-LDS

Local Discovery Server
C
45
star
8

Misc-Tools

Miscellaneous utilities
C#
42
star
9

UA-CloudLibrary

OPC UA Information Model database with a REST and GraphQL interface, as well as user management. The global instance of this (hosted by the OPC Foundation) can be found at https://uacloudlibrary.opcfoundation.org.
C#
37
star
10

UA-CloudViewer

A tool to manage OPC UA information models ("industrial digital twins"). UA Cloud Viewer is a tool used in Industrial IoT scenarios to bridge the gap from OT to IT. OPC UA is the standard interface for vendor-neutral Operational Technology (OT) interoperability in factories, plants and renewable energy farms.
JavaScript
32
star
11

UA-EdgeTranslator

An industrial connectivity edge application translating from proprietary protocols to OPC UA leveraging the W3C Web of Things (WoT) thing descriptions.
C#
26
star
12

UA-CloudCommander

A cross-platform OPC UA cloud command & control reference implementation leveraging MQTT and Kafka. It runs in a Docker container and executing commands, reads and writes on on-prem OPC UA servers from the cloud.
C#
20
star
13

UA-CloudDashboard

A cross-platform OPC UA cloud dashboard reference implementation leveraging MQTT. It runs in a Docker container and displays OPC UA PubSub telemetry data, read directly from an MQTT broker or Azure EventHub/IoT Hub. It supports both JSON and binary payloads as well as OPC UA Complex Types decoding.
JavaScript
19
star
14

opcfoundation.github.io

About the OPC Foundation and OPC Technology
CSS
11
star
15

UA-CloudMetaverse

OPC UA Metaverse reference implementation leveraging Unity
ShaderLab
11
star
16

UA-CloudAction

An OPC UA Cloud-based Action which calls UA Cloud Commander on the Edge via Kafka.
C#
4
star