Sub-issue of #755.
Why
Samples/Controls.Net4 ("UA Sample Controls") supplies the session tree, browse tree, subscription and monitored-item dialogs used by the UA Sample Client (Samples/Client.Net4). It still uses raw Session and the classic Subscription/MonitoredItem engine (see SubscriptionDlg.cs: new Subscription(session.DefaultSubscription), session.AddSubscription, per-item Notification).
Scope (files)
Sessions/SessionTreeCtrl.cs
Sessions/BrowseTreeCtrl.cs
Subscriptions/SubscriptionDlg.cs
Subscriptions/CreateMonitoredItemsDlg.cs
Subscriptions/MonitoredItemDlg.cs
Subscriptions/MonitoredItemConfigCtrl.cs
Tasks
- Managed Session: establish/own connections through
ManagedSession (via ManagedSessionFactory/ISessionFactory) with built-in reconnect; keep browse/read surfaces typed as ISession.
- New Subscription Engine: migrate subscription creation and monitored-item add/remove to the V2
ISubscriptionManager/IManagedSubscription engine (MonitoredItems.TryAdd(name, MonitoredItemOptions, out _), MonitoredItems.TryRemove(handle), ISubscriptionNotificationHandler). Preserve the tree/dialog UX (state, publish-status display).
- Keep control public APIs source-compatible where feasible; note breaking changes in the PR.
References
Acceptance criteria
Controls.Net4 builds against 2.0.x.
- No classic-engine or
SessionReconnectHandler usage remains in these files.
- The UA Sample Client can browse, create a subscription, add/remove monitored items, and see live updates through the modernized controls.
Dependencies
None — foundation issue for the UA Sample Client. Can proceed in parallel with the ClientControls.Net4 foundation issue.
Sub-issue of #755.
Why
Samples/Controls.Net4("UA Sample Controls") supplies the session tree, browse tree, subscription and monitored-item dialogs used by the UA Sample Client (Samples/Client.Net4). It still uses rawSessionand the classicSubscription/MonitoredItemengine (seeSubscriptionDlg.cs:new Subscription(session.DefaultSubscription),session.AddSubscription, per-itemNotification).Scope (files)
Sessions/SessionTreeCtrl.csSessions/BrowseTreeCtrl.csSubscriptions/SubscriptionDlg.csSubscriptions/CreateMonitoredItemsDlg.csSubscriptions/MonitoredItemDlg.csSubscriptions/MonitoredItemConfigCtrl.csTasks
ManagedSession(viaManagedSessionFactory/ISessionFactory) with built-in reconnect; keep browse/read surfaces typed asISession.ISubscriptionManager/IManagedSubscriptionengine (MonitoredItems.TryAdd(name, MonitoredItemOptions, out _),MonitoredItems.TryRemove(handle),ISubscriptionNotificationHandler). Preserve the tree/dialog UX (state, publish-status display).References
Acceptance criteria
Controls.Net4builds against 2.0.x.SessionReconnectHandlerusage remains in these files.Dependencies
None — foundation issue for the UA Sample Client. Can proceed in parallel with the
ClientControls.Net4foundation issue.