Cross-Process UI Data Binding With Synchronized View Model Proxies
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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
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.
3Reliability
If data binding is implemented between user control and view model proxy, then data synchronization is achieved, but system complexity increases
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.
Data Source
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.


