Nevron Open Vision Documentation
Data Exchange Overview

Data Exchange in the context of NOV UI is the ability to exchange formatted data via Clipboard and Drag-and-Drop. Data exchange is fundamentally built upon the concept of a data object, that is a union of binary data streams, each associated with a specific data format. In order for the data exchange to work across the application/process boundaries, the medium of data exchange is always the byte stream, meaning that all data formats in NOV are able to serialize an object into a byte array and deserialize an object from a byte array.

The Data Exchange in NOV is implemented with both integration and virtualization in mind. On the integration side, this means that NOV will automatically convert data that you want to exchange via clipboard and drag and drop to native representation(s) when that is possible, and use the native clipboard and drag-and-drop when they conform to the NOV standards for such operations. On the virtualization side it mimics a system with complete support for clipboard and drag-and-drop, when such is not available (Silverlight for example has no support for drag-and-drop initiation and a pitiful format set for data exchange). This gives you the technological advantage to write data exchange code in exactly the same way under different presentation layers, that deeply integrates with the native data-exchange mechanisms when that is possible and is at the same time completely decoupled from them, allowing it to virtualize such mechanisms when no native counterpart exists.

Data exchange is the ability to publish data in various formats that can be consumed by multiple other applications, including the application that published it. As far as your application is concerned this means that it needs to rely on a solid data exchange model, to implement internal drag-and-drop, cut-copy-paste etc. features that will not be broken when this application migrates to a new presentation layer host. NOV does just that - as far as your application is both the publisher and consumer for data-exhange services, it guarantees that you can implement these higher level application features from a single code base.

More information about the data-exhange fundamentals can be found in the following topics:

Send Feedback