RemotableViewModel

The RemotableViewModel (RVM) library allows sharing of ViewModels accross process boundaries following the Model-View-ViewModel (MVVM) pattern. An exported ViewModel can have no, one or several importers. The exporting application itself can still bind onto
the ViewModel directly. That is to say, it can be a local and remote ViewModel at the same time, depending on the point of view.

The core was initially developed by Siemens Corporate Technology in the course of a proof-of-concept for re-engineering parts of an internal forensic analysis tool at Siemens Corporate Finance, called SInvestigate. Instead of having multiple instances of long-running
preprocessing clients, one single user interface should manage several console-based workers. This allows starting the preprocessing clients even via terminal, while viewing and manipulating these on demand through an administration and monitoring application.

As the library grew, we realized it has uses beyond our own original application. We decided to spend some of our spare time and to release the library under Apache 2.0 license to the public.

The RVM library is not officially maintained by Siemens. But we intend to continue using this public build within SInvestigate, where it completely satisfied our needs. We plan to use it to replace the complete preprocessing client in the near future.

The current implementation targets Windows Presentation Foundation (WPF) only, but having different or even mixed technologies for exporting and importing clients is imaginable.

Possible fields of application:

User Interfaces for console-based executables

User Interfaces for interaction with Windows Services (having a view outside of session-0-isolation)

Sharing ViewModels across arbitrary applications, e.g. docking to another UI-application