Skip to content

Modernize shared client controls: Controls.Net4 (Managed Session + new Subscription Engine) #770

Description

@romanett

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

  1. Managed Session: establish/own connections through ManagedSession (via ManagedSessionFactory/ISessionFactory) with built-in reconnect; keep browse/read surfaces typed as ISession.
  2. 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).
  3. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions