VeloxDev.Core
6.0.1
dotnet add package VeloxDev.Core --version 6.0.1
NuGet\Install-Package VeloxDev.Core -Version 6.0.1
<PackageReference Include="VeloxDev.Core" Version="6.0.1" />
<PackageVersion Include="VeloxDev.Core" Version="6.0.1" />
<PackageReference Include="VeloxDev.Core" />
paket add VeloxDev.Core --version 6.0.1
#r "nuget: VeloxDev.Core, 6.0.1"
#:package VeloxDev.Core@6.0.1
#addin nuget:?package=VeloxDev.Core&version=6.0.1
#tool nuget:?package=VeloxDev.Core&version=6.0.1
<div align="center">
⚡ VeloxDev
Build modern, AI-controllable workflow editors on any .NET GUI — WPF, Avalonia, WinUI, MAUI, or WinForms.
🌐 Online Wiki
📁 Local Wiki
</div>
✨ What is VeloxDev?
VeloxDev gives .NET developers a complete foundation for building interactive workflow editors — the kind where users drag nodes, wire slots together, and watch data flow through a graph at runtime.
The workflow system is the core. Everything else exists to make workflows more extensible, more polished, and AI-controllable:
| Layer | What it provides | Adapter needed? |
|---|---|---|
| ⛓️ Workflow | Tree / Node / Slot / Link templates with full undo-redo, spatial indexing, and a serialization model | ❌ |
| 🤖 Workflow Agent | 60+ Function Calling tools — an AI can create nodes, wire slots, patch properties, and manage routing at runtime via natural language. Supports MCP (Model Context Protocol) for connecting to external tools and data sources. | ✔ Extension |
| 🪶 MVVM | Source Generator for observable properties and async, cancellable commands — the glue that keeps node ViewModels lightweight | ❌ |
| 🎞️ Transition | Cross-platform interpolation animation with easing & Fluent API — smooth visual feedback for workflow state changes | ✔ |
| 🎨 Theme | Runtime theme switching with animated transitions — instant visual identity for your editor | ✔ |
| 🌀 AOP | Compile-time aspect proxies — intercept node execution, add logging or validation without modifying business logic | ❌ |
| ⚙️ MonoBehaviour | Frame-driven lifecycle loop — tick-based node simulation or real-time graph execution | ❌ |
📦 Installation
Pick the adapter for your GUI framework and you get everything — workflow, agent, animations, and theming wired up for that platform.
Platform adapter packages (recommended)
| Platform | Package | NuGet |
|---|---|---|
| WPF | VeloxDev.WPF |
|
| Avalonia | VeloxDev.Avalonia |
|
| WinUI | VeloxDev.WinUI |
|
| MAUI | VeloxDev.MAUI |
Build a WPF workflow view suite with the CLI
Run these commands from an existing WPF project. Replace MyApp with the
project's root namespace:
dotnet new install VeloxDev.WPF.Templates
dotnet add package VeloxDev.WPF
dotnet new wpf-v-slot -n SlotView -ns MyApp.Views -o Views
dotnet new wpf-v-node -n NodeView -ns MyApp.Views -o Views
dotnet new wpf-v-link -n LinkView -ns MyApp.Views -o Views
dotnet new wpf-v-selector -n TemplateSelector -ns MyApp.Views -o Views
dotnet new wpf-v-decorator -n GridDecorator -ns MyApp.Views -o Views
dotnet new wpf-v-minimap -n MinimapOverlay -ns MyApp.Views -o Views
dotnet new wpf-v-tree -n TreeView -ns MyApp.Views -o Views
dotnet build
The template package contains the Node, Slot, Link, Tree, template selector, grid decorator, and minimap overlay views. Each view template generates its files with the required VeloxDev workflow behaviors already connected.
The Avalonia, WPF, WinUI, and MAUI template suites expose the same style options. Common short aliases include:
| Template | Style aliases |
|---|---|
| Node | -bg background, -fg foreground, -bb border brush, -bt border thickness, -cr corner radius |
| Slot | -bg background, -sc standby color, -bc border color, -sp SVG path data |
| Link | -lc line color, -lt line thickness |
| Tree | -bg background, -bb border brush, -bt border thickness, -cr corner radius |
| Grid decorator | -bg background, -mic minor color, -mac major color, -ac axis color, -gs spacing, -mle major interval |
| Minimap overlay | -bg background, -bdr border, -nf node fill, -vs viewport stroke |
All templates use -ns for the generated namespace.
Core-only packages (bring your own adapter)
🚀 Quick Look
Define a node
// Declare a node — the Source Generator handles INotifyPropertyChanged,
// slot lifecycle, and command wiring automatically.
[WorkflowBuilder.Node<MyNodeHelper>]
public partial class MyNodeViewModel
{
public MyNodeViewModel() => InitializeWorkflow();
[AgentContext(AgentLanguages.English, "Input slot (receiver)")]
[VeloxProperty] public partial MySlotViewModel InputSlot { get; set; }
[AgentContext(AgentLanguages.English, "Output slot (sender)")]
[VeloxProperty] public partial MySlotViewModel OutputSlot { get; set; }
[AgentContext(AgentLanguages.English, "Display title shown in the node header")]
[VeloxProperty] private string title = "My Node";
}
Let an AI control the workflow at runtime
// One fluent call wires up discovery, tools, and the agent session.
var scope = tree.AsAgentScope()
.WithAutoDiscovery(assemblyName: "MyApp")
.WithInteractionSafety(3) // confirm before destructive ops; present choices via tool
.WithSelectionHandler(ShowDialog)
.WithConfirmationHandler(ShowDialog);
var agent = chatClient.AsAIAgent(
instructions: scope.ProvideProgressiveContextPrompt(),
tools: scope.ProvideTools());
The agent can then create nodes, wire slots, change routing credentials, and patch properties — all through natural-language instructions, with full undo/redo support.
Connect MCP servers for external tooling
// Load external tools via Model Context Protocol (stdio transport).
// Supports Node (npm install + node), Npx (npx -y), and Uvx (uvx) modes.
var mcpTools = await new McpScope()
.WithMcpRoot(".evn/mcp")
.LoadAsync(new[]
{
new McpServerConfiguration
{
Name = "Filesystem",
RunMode = McpServerRunMode.Npx,
NpmPackage = "@modelcontextprotocol/server-filesystem",
},
new McpServerConfiguration
{
Name = "Git",
RunMode = McpServerRunMode.Npx,
NpmPackage = "@modelcontextprotocol/server-git",
},
});
// Merge MCP tools into your workflow agent
var allTools = scope.ProvideTools().Concat(mcpTools).ToArray();
The McpScope handles npm package installation (idempotent, thread-safe) and stdio transport management automatically. Failed servers are reported via the ServerError event without blocking remaining servers.
🗂️ Repository Layout
VeloxDev/
├── Src/
│ ├── Core/
│ │ ├── VeloxDev.Core # Workflow abstractions, MVVM generators & runtime models
│ │ ├── VeloxDev.Core.Extension # MAF-based Workflow Agent tools & runtime extensions
│ │ ├── VeloxDev.Core.Test # Unit tests for VeloxDev.Core
│ │ └── VeloxDev.Core.Extension.Test # Unit tests for VeloxDev.Core.Extension
│ ├── Adapters/
│ │ ├── VeloxDev.WPF # WPF platform adapter
│ │ ├── VeloxDev.Avalonia # Avalonia platform adapter
│ │ ├── VeloxDev.WinUI # WinUI 3 platform adapter
│ │ ├── VeloxDev.MAUI # .NET MAUI platform adapter
│ │ └── VeloxDev.WinForms # WinForms platform adapter
│ ├── Generators/
│ │ └── VeloxDev.Core.Generator # Roslyn Source Generators (netstandard2.0)
│ └── Templates/ # dotnet new item templates for GUI adapters
├── Examples/
│ ├── Workflow/ WPF · Avalonia · WinUI · WinForms · MAUI · Common(Lib)
│ ├── MVVM/ WPF · Avalonia
│ ├── Transition/ WPF · Avalonia · WinUI · WinForms · MAUI
│ ├── Theme/ WPF · Avalonia
│ ├── AOP/ WPF · Avalonia
│ ├── AOTReflection/
│ └── MonoBehaviour/ WPF
└── Docs/
├── VeloxDev.Docs # Documentation site (Blazor WebAssembly)
├── VeloxDev.Docs.Browser # Browser-hosted docs entry point
└── VeloxDev.Docs.Desktop # Desktop-hosted docs entry point
📄 License
Released under the MIT License. © 2025 Axvser
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 is compatible. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 is compatible. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 is compatible. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETCoreApp 3.0
- Microsoft.Bcl.HashCode (>= 6.0.0)
- VeloxDev.Core.Generator (>= 6.0.0)
-
.NETFramework 4.6.1
- Microsoft.Bcl.HashCode (>= 6.0.0)
- VeloxDev.Core.Generator (>= 6.0.0)
-
.NETStandard 2.0
- Microsoft.Bcl.HashCode (>= 6.0.0)
- VeloxDev.Core.Generator (>= 6.0.0)
-
net5.0
- Microsoft.Bcl.HashCode (>= 6.0.0)
- VeloxDev.Core.Generator (>= 6.0.0)
NuGet packages (7)
Showing the top 5 NuGet packages that depend on VeloxDev.Core:
| Package | Downloads |
|---|---|
|
VeloxDev.Avalonia
VeloxDev.Core + Avalonia |
|
|
VeloxDev.WPF
VeloxDev.Core + WPF |
|
|
VeloxDev.MAUI
VeloxDev.Core + MAUI |
|
|
VeloxDev.WinUI
VeloxDev.Core + WinUI |
|
|
VeloxDev.Core.Extension
VeloxDev.Core tries not to rely on any third-party libraries, while Extension, as an optional extension package, contains a set of advanced functions implemented based on third-party libraries, which can further optimize the user experience |
GitHub repositories
This package is not used by any popular GitHub repositories.