Version 2.0 introduces a major architectural change from pre-generated code files to runtime source generation and more efficient memory use, with several major breaking changes requiring changes to your applications.
This folder includes all of the 1.5.378 → 2.0 migration content as a set of focused sub-documents so you can read only the parts that affect your application. Start with the Migration sub-doc index below to find the sub-doc that matches the symptom you are seeing.
Automate the migration. Add the
OPCFoundation.NetStandard.Opc.Ua.MigrationAnalyzeranalyzer package to your projects to receive analyzer warnings and one-click fixes for many of the patterns in these sub-docs. Rule IDsUA0001–UA0020map directly to the type-safety patterns described intypes.md.
Pro TIP. Point your favorite coding agent at the
opcua-v20-migrationskill, which knows when to load each sub-doc and runs the codefixer for you.
Find the row that matches the error / API surface you are dealing with and read only the listed sub-doc. The agent skill uses the same table; loading a single sub-doc keeps the context window small.
| When you hit… | Read |
|---|---|
CS0029 / CS1503 / CS0266 on NodeId, Variant, DataValue, ExtensionObject, QualifiedName, LocalizedText, ArrayOf<T> / MatrixOf<T>, ByteString, StatusCode, XmlElement, EnumValue; [Obsolete] warnings on built-in type APIs (analyzer UA0001–UA0020) |
types.md |
Loggers (Utils.LogX, Utils.Trace), removed static logger helpers (Utils.SetLogger / Utils.SetLogLevel), telemetry context, constructor ITelemetryContext parameter changes, OLD-vs-NEW snippets, fluent DI registration (AddOpcUa().AddLogging().AddMetrics()), breaking-changes inventory, migration utilities |
telemetry.md |
OPCFoundation.NetStandard.Opc.Ua.* package upgrade, TFM changes, Newtonsoft removal |
packages.md |
Source-generated *Collection shims, NodeManager generator, default of boolean properties, project structure |
source-generation.md |
IEncodeableFactoryBuilder, IType, JSON / XML / binary encoders, EncodeableFactory.GlobalFactory, IJsonEncodeable, ComplexTypes namespace move |
encoders.md |
CustomNodeManager, NodeState clone / read / write helpers, OnAfterCreate(CancellationToken), INodeManager3, INodeCache.InvalidateNode, generics on BaseVariableState / BaseVariableTypeState, predefined-node processing |
node-states.md |
IUserIdentityTokenHandler, IClientIdentityProvider, IUserTokenAuthenticator, IAccessTokenProvider, ITokenIssuer, IIdentityClaims, caller-supplied secrets, secret store |
identity.md |
CertificateValidator, ref-counted Certificate wrapper, CertificateManager, ICertificateProvider, obsoleted X509Certificate2 direct-exposure APIs |
certificates.md |
ApplicationConfiguration changes, Data-Contract serializer removal, ParseExtension / UpdateExtension signature, session / browser state persistence |
configuration.md |
Session → ManagedSession, V2 subscription engine, GDS-client Task → ValueTask modernisation, removed obsolete GDS APIs, durable subscriptions, PubSub, reverse-connect |
sessions-subscriptions.md |
UaPubSubApplication.Create*, IUaPubSubConnection, UaPubSubConfigurator, IUaPublisher, AMQP transport, JsonEncodingMode.Reversible/NonReversible, PubSub JSON encoder changes, DataSetFieldContentMask RawData / timestamp behaviour |
pubsub.md |
AlarmConditionState state-transition behaviour, auto-emitted GeneralModelChangeEvent, ModelChangeAggregator, INodeCache.InvalidateNode triggered by model change |
alarms-model-change.md |
DateTime.UtcNow, Timer, deterministic time in tests; System.TimeProvider adoption |
timeprovider.md |
ITransportListener.Open / Close removed, using var listener = … no longer compiles, custom ITransportListenerFactory / ITransportListenerCertificateRotation implementers need the new async method names |
transport-listener-async.md |
telemetry.md— Telemetry and Loggingpackages.md— Package, Target Framework, and Dependency Changessource-generation.md— Source Generationtypes.md— Improved Type Safetyencoders.md— Encoders and Complex Typesnode-states.md— Node States andINodeCacheidentity.md— Identity, Token Handlers, and Secretscertificates.md— Certificates andICertificateProviderconfiguration.md— Configuration and State Persistencesessions-subscriptions.md— Sessions, GDS Client, and Subscriptionspubsub.md— PubSub (Part 14): breaking API, transport, JSON, and field-encoding changesalarms-model-change.md— Alarms and Address-Space Model Changestimeprovider.md— Time and Timer Abstraction (TimeProvider)transport-listener-async.md— AsyncITransportListenerAPI (issue #3923)
- Migration Guide landing page — index across
all versions, including the small
1.05.377→1.05.378and1.04→1.05legacy notes. - What's New in 2.0 — narrative tour of the 2.0 changes, grouped by theme and layer.
- Profiles — facet / profile coverage of the 2.0 release.