Nevron Open Vision Documentation
Data Structures Overview

Data structures are fundamental for all types of applications. Nevron Open Vision (NOV) aims to implement its own set of commonly used data structures, in order to eliminate any dependencies on the data structures implemented by the .NET CLR. This ensures that solutions that use NOV and NOV itself, can always rely on a consistent and fast data structures API that is decoupled from the data structures implementation of specific .NET frameworks.

NOV data structures are primary based on generic interfaces defined by NOV. That is why even if some interfaces are by design very common to .NET interfaces (for example Nevron.DataStructures.INIterator<T> is common to System.Collections.Generic.IEnumerator<T>), we have decided to stay as clean as possible of .NET interface dependencies, because the .NET counterparts are in many cases obstructed by legacy non-generic properties and methods (that ultimately require mixing of implicit and explicit implementations, which is pattern NOV aims to avoid). Furthermore the .NET data structures interfaces are in many cases cumbersome to implement. You can also never be sure whether a specific .NET interface is defined in exactly the same way under all .NET frameworks, if at all defined. So the best way to start with NOV Data Structures is to read the INSet Interfaces Hierarchy topic.

In some cases however .NET interfaces are bound with language constructs. The most notable example is the foreach keyword, which lets you loop through the items provided by an implementor of the System.Collections.Generic.IEnumerable<T> interface. Although the foreach keyword is not used in NOV, you can still use foreach keyword to enumerate the items in a NOV data structure, by adapting an INIterable<T> as IEnumerable<T>. The CLR Interop topic discusses some of the available conversions.

Following is a list of the topics that give more details about the fundamental NOV Data Structures:

All examples related to the NOV Data Structures assume that you are using the Nevron.Nov.DataStructures namespace and that you have referenced the Nevron.Nov.Presentation.XXX.dll for the specific runtime that you target.

Send Feedback