Table of Contents

Introduction for .NET programmers

VL is a visual programming language for .NET. It combines dataflow programming with features known from object-oriented programming. vvvv is the editing environment for VL.

Versions 5.x of vvvv are using .NET6 Versions 6.x of vvvv are using .NET8

With direct access to all of .NETs libraries you can basically use it as just another .NET language like C# or F#. But since most of those libraries were not created with dataflow in mind, we've curated a library for you that is much more comfortable to use and is the default referenced library when creating a new VL document.

Language Features

If you're familiar with programming in C#, VL should feel quite familiar, apart from the fact that it is visual. Here are a few things things that will be new to you though:

Spreads

The main collection type in VL is called Spread and its individual entries are called Slices. The Spread is an immutable collection with one special feature: If you're calling GetSlice(Index) on it, with an index that exceeds its count, instead of an error you get the slice with the index taken modulo the count.

E.g. if you have a spread with 5s slice and you're asking for slice 7, you get slice 2.

Foreach with Multiple Inputs

Where in C#, a foreach loop can only iterate over one collection at a time, in VL you can iterate over many collections at the same time. The number of iterations executed, is determined by the collection with the smallest count.

Renamings

In general we try to do as little renaming as possible when importing data types. But for collections we took the liberty to do the following renamings from the original ones:

  • All immutable .NET collections drop the Immutable pre-fix since it's the default in VL
  • All mutable .NET collections get a Mutable pre-fix
  • IEnumerable is called Sequence

Getting Started

Here are a few workshop recordings particularly suited if you have a background in .NET:

Then head back to the Overview for more sources of learning content.

You may also want to find out how you can extend vvvv and have a look at our Demo Library including C# and F# examples of writing your own nodes for VL.

Any questions left? Get them answered in the forum or chat.