Cross-Process UI Data Binding With Synchronized View Model Proxies

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing user interface platforms are inadequate for developing application components that execute across separate processes or on remote machines, leading to reduced responsiveness and unfamiliarity for developers.

Innovation Solution

Implementing user interface functionality extension using declarative definition, data binding, and data synchronization to share UI across processes, enabling traditional development techniques like WPF while avoiding interface delays.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If user interface functionality is shared across separate processes using traditional remote replication technologies, then user interface can be accessed across processes, but responsiveness is reduced and interface glitches may propagate

Engineering Contradiction:
Improveuser interface sharing across processesVSAvoidinterface stability and responsiveness
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The system segments the user interface into independent view model instances for each process, with each process having its own view model that is data-bound to the shared executable's user interface. This segmentation isolates interface glitches to individual processes and prevents propagation across process boundaries, while maintaining responsive performance through independent process execution.

Inventive Principle:
Principle #1Segmentation

2Reliability

If user interface controls are instantiated in separate processes, then process isolation is achieved, but user interface platform inadequacy for cross-process development persists

Engineering Contradiction:
Improveprocess isolationVSAvoiduser interface development capability
Core Design Contradiction:
ReliabilityVSEase of manufacture

Solution Approach 1:

The system creates a universal user interface control that can be instantiated in any process while maintaining consistent data binding behavior. The view model proxy mechanism provides multi-functionality by enabling the same user interface control to operate across different process boundaries with uniform data binding semantics, making the UI platform adequate for cross-process development while preserving process isolation.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Reliability

If data binding is implemented between user control and view model proxy, then data synchronization is achieved, but system complexity increases

Engineering Contradiction:
Improvedata synchronizationVSAvoiddata binding infrastructure
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system creates a view model proxy that is a simplified copy of the actual view model, containing only the data binding interface needed for the user control. This copying approach enables data synchronization between processes without requiring complex inter-process communication infrastructure, as the proxy handles data binding locally while maintaining process isolation.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS12493478B2Extending user interface functionality across processes using declarative definition, data binding, and data synchronization
Publication Date: 2025.12.09 MICROSOFT TECHNOLOGY LICENSING LLC
  • US12493478B2 patent drawing
  • US12493478B2 patent drawing
  • US12493478B2 patent drawing

AI summary

Techniques are described herein that are capable of extending user interface functionality across processes using declarative definition, data binding, and data synchronization. A declarative definition is received at a target process in which a computer program runs from a source process in which an executable file runs. A user control in the target process is generated based at least on the declarative definition. A view model identifier that identifies a view model, which is data bound to the declarative definition, is received at the target process from the source process. A view model proxy is generated in the target process based at least on the view model identifier. The user control in the target process is data bound with the view model proxy in the target process. User interface functionality of the computer program is extended to the executable file by synchronizing the view model proxy with the view model.