mirror of
https://github.com/OPCFoundation/UA-.NETStandard.git
synced 2026-10-29 15:11:53 +08:00
170 lines
8.4 KiB
Markdown
170 lines
8.4 KiB
Markdown
# OPC UA .NET Standard Stack
|
||
|
||
[](https://github.com/OPCFoundation/UA-.NETStandard/releases)
|
||
[](https://www.nuget.org/packages/OPCFoundation.NetStandard.Opc.Ua/)
|
||
[](https://opcfoundation.visualstudio.com/opcua-netstandard/_build/latest?definitionId=14&branchName=master)
|
||
[](https://opcfoundation.visualstudio.com/opcua-netstandard/_test/analytics?definitionId=14&contextType=build)
|
||
[](https://codecov.io/gh/OPCFoundation/UA-.NETStandard)
|
||
|
||
> 🆕 **This is version 2.0 of the OPC UA .NET Standard Stack (current `master`).**
|
||
>
|
||
> Looking for the supported 1.x release? It lives on the
|
||
> [`master378`](https://github.com/OPCFoundation/UA-.NETStandard/tree/master378)
|
||
> branch (last release: `1.5.378`). All new feature work happens here on
|
||
> `master`; `master378` continues to receive security and critical-bug
|
||
> fixes for the 1.x line.
|
||
|
||
The official OPC Foundation reference implementation of OPC UA for
|
||
.NET — a certified, cross-platform stack with client, server, PubSub,
|
||
GDS, complex types, and source-generated tooling. Used in production
|
||
across industrial control, manufacturing, energy, and IoT systems.
|
||
|
||
## 📦 What it is
|
||
|
||
- **A full-stack OPC UA implementation** — Core / Client / Server /
|
||
PubSub / GDS / LDS / Complex Types / Device Integration libraries
|
||
built on .NET, with UA-TCP and HTTPS transports.
|
||
- **Cross-platform** — runs on .NET 10, .NET 9, .NET 8 (LTS),
|
||
.NET Framework 4.8, and .NET Standard 2.1; ships
|
||
Native-AOT-friendly assemblies.
|
||
- **Certified for compliance** — the reference server has been
|
||
certified through an OPC Foundation Certification Test Lab and is
|
||
continuously verified against the latest
|
||
[Compliance Test Tool (CTT)](https://opcfoundation.org/developer-tools/certification-test-tools/opc-ua-compliance-test-tool-uactt/).
|
||
- **Companion-spec coverage** — Part 9 (Alarms & Conditions), Part 11
|
||
(Historical Access), Part 13 (Aggregates), Part 16 (State Machines),
|
||
Part 17 (Alias Names), Part 18 (Role Management), Part 20 (File
|
||
Transfer), Part 100 (Device Integration), OPC 10100-1 (WoT
|
||
Connectivity).
|
||
- **Modern developer surface** — first-class `Microsoft.Extensions.DependencyInjection`
|
||
hosting (`services.AddOpcUa()`), fluent server + client builders,
|
||
source-generated NodeManagers and DataTypes, and an MCP server so
|
||
LLMs / Copilot can drive an OPC UA client.
|
||
|
||
For the full feature breakdown see
|
||
**[OPC UA Profiles and Facets](docs/Profiles.md)** and the
|
||
**[What's New in 2.0](docs/WhatsNewIn2.0.md)** tour.
|
||
|
||
## 🚀 Getting started
|
||
|
||
You need the [.NET 10 SDK](https://dotnet.microsoft.com/download/dotnet/10.0)
|
||
to build the repo. From the repository root:
|
||
|
||
```bash
|
||
dotnet restore UA.slnx
|
||
dotnet build UA.slnx
|
||
```
|
||
|
||
For the supported target frameworks and platform notes see
|
||
the [Developer Guide](docs/DeveloperGuide.md#packages-platform-support-and-versioning). The official NuGet packages
|
||
are published to nuget.org under the `OPCFoundation.NetStandard`
|
||
prefix — the meta package
|
||
[OPCFoundation.NetStandard.Opc.Ua](https://www.nuget.org/packages/OPCFoundation.NetStandard.Opc.Ua/)
|
||
pulls in everything, or pick the split
|
||
`OPCFoundation.NetStandard.Opc.Ua.Core` / `.Client` / `.Server` /
|
||
`.Bindings.Https` packages directly. Preview builds for every successful
|
||
`master` build are available in the
|
||
[Azure DevOps opcua-preview feed](https://opcfoundation.visualstudio.com/opcua-netstandard/_packaging?_a=feed&feed=opcua-preview%40Local).
|
||
|
||
### Sample applications
|
||
|
||
Each sample has its own `README.md` with build and run instructions.
|
||
|
||
**Reference applications**
|
||
|
||
- [Console Reference Server](samples/ConsoleReferenceServer/README.md) —
|
||
the certified reference server (with Quickstarts, CTT, and Mono
|
||
configs). Also ships as a
|
||
[Docker container](docs/ContainerReferenceServer.md).
|
||
- [Console Reference Client](samples/ConsoleReferenceClient/README.md) —
|
||
cross-platform reference client demonstrating sessions, subscriptions,
|
||
browsing, and method calls.
|
||
- [Console LDS Server](samples/ConsoleLdsServer) — a standalone
|
||
Local Discovery Server built on `Opc.Ua.Lds.Server`.
|
||
|
||
**PubSub samples**
|
||
|
||
- [Console Reference PubSub Client](samples/ConsoleReferencePubSubClient/README.md) —
|
||
one executable with `publisher`, `subscriber`, and `external` (external-server
|
||
adapter) modes across the supported transport profiles.
|
||
|
||
**Minimal / Device-Integration samples**
|
||
|
||
- [Minimal Calc Server](samples/MinimalCalcServer) — minimal
|
||
server built on the source-generated NodeManager pipeline (Calc
|
||
model).
|
||
- [Minimal Boiler Server](samples/MinimalBoilerServer) — minimal
|
||
Boiler-model server with the fluent state-machine builder;
|
||
Native-AOT publishable.
|
||
- [Pump Device Integration Server](samples/PumpDeviceIntegrationServer/README.md) —
|
||
minimal Device Integration (Part 100) server using
|
||
`Opc.Ua.Di.Server`'s fluent builder.
|
||
|
||
More sample projects are maintained in the companion
|
||
[OPC UA .NET Samples](https://github.com/OPCFoundation/UA-.NETStandard-Samples)
|
||
repository.
|
||
|
||
### Developer tools
|
||
|
||
- [OPC UA MCP Server](tools/Opc.Ua.Mcp/README.md) — installable .NET tool and container that exposes OPC UA client operations as MCP tools for LLMs and Copilot.
|
||
|
||
## 🔧 Migrating from 1.5.378 to 2.0
|
||
|
||
The 2.0 release introduces breaking API changes, and comes with a full
|
||
[prescriptive migration guide](docs/MigrationGuide.md) that links to
|
||
[per-area documentation](docs/migrate/2.0.x/README.md) covering
|
||
telemetry, packages, source generation, types, encoders, node states,
|
||
identity, certificates, configuration, sessions / subscriptions,
|
||
alarms / model change, and TimeProvider.
|
||
|
||
Most of the mechanical migration work is automated:
|
||
|
||
- **`OPCFoundation.NetStandard.Opc.Ua.MigrationAnalyzer` NuGet** —
|
||
install it in your project to get analyzer warnings (`UA0001`–`UA0022`)
|
||
+ one-click code fixes for the patterns in the guide. Setup steps
|
||
are in the package's
|
||
[NugetREADME.md](tools/Opc.Ua.MigrationAnalyzer/NugetREADME.md).
|
||
- **Migration agent skill** — the
|
||
[`opcua-v20-migration`](.agents/skills/opcua-v20-migration/SKILL.md)
|
||
skill walks Copilot / Claude / any coding agent through installing
|
||
the NuGet, running `dotnet format analyzers` to apply auto-fixes,
|
||
and handling the small residual manual patterns. The skill knows
|
||
which sub-doc to load for each symptom so it stays context-efficient.
|
||
|
||
If you are still on 1.x and not ready to upgrade, stay on the
|
||
[`master378`](https://github.com/OPCFoundation/UA-.NETStandard/tree/master378)
|
||
branch — it continues to receive security and critical-bug fixes.
|
||
|
||
## 🤝 Contributing and license
|
||
|
||
Community contributions are welcome. Fork the repository, make your
|
||
changes on a branch, and open a pull request; see
|
||
[CONTRIBUTING.md](CONTRIBUTING.md) for the contribution workflow.
|
||
|
||
Contributors must sign the OPC Foundation
|
||
[Contributor License Agreement (CLA)](https://opcfoundation.org/license/cla/ContributorLicenseAgreementv1.0.pdf).
|
||
The CLA "I AGREE" gate is presented automatically on your first PR.
|
||
|
||
The project is licensed under the
|
||
[OPC Foundation MIT License](LICENSE.txt). Report security
|
||
vulnerabilities via the process documented in
|
||
[SECURITY.md](SECURITY.md).
|
||
|
||
## 📚 Further reading
|
||
|
||
- [Documentation index](docs/README.md) — every per-feature doc with a
|
||
one-line description.
|
||
- [What's New in 2.0](docs/WhatsNewIn2.0.md) — narrative tour of the
|
||
1.5.378 → 2.0 changes grouped by theme and layer.
|
||
- [OPC UA Profiles and Facets](docs/Profiles.md) — facets / transports /
|
||
security policies the stack implements.
|
||
- [Migration Guide](docs/MigrationGuide.md) — prescriptive
|
||
per-version migration reference (links to
|
||
[`docs/migrate/2.0.x/`](docs/migrate/2.0.x/README.md)).
|
||
- [OPC UA Online Reference](https://reference.opcfoundation.org/) —
|
||
the official OPC 10000 series specification index.
|
||
- [OPC UA .NET Samples](https://github.com/OPCFoundation/UA-.NETStandard-Samples) —
|
||
companion repository with more sample applications.
|
||
- [Preview NuGet feed](https://opcfoundation.visualstudio.com/opcua-netstandard/_packaging?_a=feed&feed=opcua-preview%40Local) —
|
||
prerelease builds from Azure DevOps.
|