Introduction for .NET programmers / 写给 .NET 开发者
VL 是一门面向 .NET 的可视化编程语言。它把数据流编程和面向对象编程里的一些特性结合在一起。vvvv 则是 VL 的编辑环境。
- vvvv 5.x 使用 .NET 6
- vvvv 6.x 和 7.x 使用 .NET 8
由于可以直接访问 .NET 的全部库,你基本上可以把它当作又一门 .NET 语言来用,和 C# 或 F# 一样。但那些库大多不是为数据流设计的,所以我们为你精选整理了一个用起来舒服得多的库 —— 新建 VL 文档时默认引用的就是它。
Language Features / 语言特性
如果你熟悉 C#,除了「它是可视化的」这一点之外,VL 应该会让你觉得挺熟悉。不过有几样东西对你来说是新的:
Spreads
VL 里主要的集合类型叫 Spread,它的每一项叫 Slice。Spread 是不可变集合,有一个特别之处:对它调用 GetSlice(Index) 时,如果索引超出了元素个数,你拿到的不是错误,而是「索引对个数取模」之后那一项。
比如一个有 5 个 slice 的 Spread,你要第 7 个,拿到的是第 2 个。
Foreach with Multiple Inputs / 多输入的 Foreach
C# 里的 foreach 一次只能遍历一个集合,而 VL 里你可以同时遍历多个集合。迭代次数由元素最少的那个集合决定。
Renamings / 重命名
导入数据类型时,我们总体上尽量少改名字。但对集合类型,我们擅自做了这些调整:
- 所有 .NET 的不可变集合去掉 Immutable 前缀 —— 因为在 VL 里不可变才是默认
- 所有 .NET 的可变集合加上 Mutable 前缀
- IEnumerable 叫做 Sequence
Getting Started / 从哪里开始
下面这些工作坊录像特别适合有 .NET 背景的人:
- Introduction to vvvv For Coders
- Using .NET NuGets
- Object Oriented Patching
- Introduction to Reactive Patching
- Turning a .NET library into a VL library
- Talk introducing vvvv to .NET developers
看完再回到开始那一页,那里有更多学习资源。