Skip to content

Overview

Robin Kahlow edited this page Apr 3, 2019 · 4 revisions

Description

NetPrints is a visual programming language which can both use and output any .NET library and C# source code. Just like in C# a NetPrints project consists of classes. Classes contain methods, attributes and the properties of the class itself such as its visibility and the class it is derived from. Every method is represented by a graph that has a start (the Entry node) and an end (the Return node). The nodes have input and output pins which can be dragged onto the grid to see suggestions for what can be done with them or connected with each other.

Pin types

Each node has input and output pins with different types which have different purposes.

Execution pins

Execution flows from output execution pins to input execution pins which can be connected together. The execution starts at the Entry node's output execution pin and continues from there using the connections made by the user.

Data pins

Data such as the return values of methods can be passed by connecting data pins. Every pin has an associated data type. Only pins with compatible types can be connected together, for example if one type is derived from another or if an implicit conversion exists. Types can also be explicitly converted with the Explicit Cast node.

Type pins

Type pins are a way to specify types for different nodes. For example the Explicit Cast node has a type input that specifies the type it will cast its input to. Type nodes output a selected type and can also take types as input if they have unbound generic arguments. Another important use for type pins is to specify the input types and return types of methods as well as their generic type arguments.

Misc

Pure nodes

Pure nodes don't have any execution pins of their own but are executed as part of another node. Many nodes can be converted between pure and non-pure (eg. Call Method). While non-pure nodes are stateful in the sense that their data output pins persist and can be used from other nodes, pure nodes' output data pins are set every time they are referenced from a non-pure node. As the execution of pure nodes is not as explicit as that of non-pure nodes it is advised to only use them for nodes which don't modify a state, although this is not a strict requirement.

Clone this wiki locally