BlazorFlowGraph.Projection 0.1.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package BlazorFlowGraph.Projection --version 0.1.0
                    
NuGet\Install-Package BlazorFlowGraph.Projection -Version 0.1.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="BlazorFlowGraph.Projection" Version="0.1.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="BlazorFlowGraph.Projection" Version="0.1.0" />
                    
Directory.Packages.props
<PackageReference Include="BlazorFlowGraph.Projection" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add BlazorFlowGraph.Projection --version 0.1.0
                    
#r "nuget: BlazorFlowGraph.Projection, 0.1.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package BlazorFlowGraph.Projection@0.1.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=BlazorFlowGraph.Projection&version=0.1.0
                    
Install as a Cake Addin
#tool nuget:?package=BlazorFlowGraph.Projection&version=0.1.0
                    
Install as a Cake Tool

BlazorFlowGraph

BlazorFlowGraph is a dataflow visualization framework for .NET and Blazor applications using the interactive server render mode.

The project focuses on visualizing evolving semantic systems and data flows rather than building a generic diagram editor.

The current architecture combines:

  • a .NET semantic backend
  • a TypeScript browser runtime
  • incremental graph synchronization
  • automatic layout infrastructure
  • browser-side interaction and rendering

Goals

BlazorFlowGraph is designed for scenarios such as:

  • dataflow visualization
  • workflow topology exploration
  • event pipeline inspection
  • distributed system dependency graphs
  • ETL and process visualization
  • runtime architecture maps
  • semantic graph exploration

The project prioritizes:

  • incremental updates
  • automatic layouts
  • stable viewport and selection persistence
  • scalable graph rendering
  • semantic overlays
  • server-authoritative graph models

Architecture Overview

+---------------------------------------------------+
| .NET Semantic Backend                             |
|---------------------------------------------------|
| Domain Model                                      |
| Semantic Extraction                               |
| Projection Generation                             |
| Diff Computation                                  |
| Validation                                        |
+------------------------+--------------------------+
                         |
                    Graph Projection
                         |
                    Incremental Diffs
                         |
+------------------------v--------------------------+
| TypeScript Visualization Runtime                  |
|---------------------------------------------------|
| Rendering                                         |
| Layout                                            |
| Reconciliation                                    |
| Viewport Management                               |
| Selection/Search/Grouping                         |
| Interaction Runtime                               |
+---------------------------------------------------+

At the repository level, this is currently implemented as:

  • .NET: BlazorFlowGraph.Protocol, BlazorFlowGraph.Semantics, BlazorFlowGraph.Projection, BlazorFlowGraph.Diffing, BlazorFlowGraph.Blazor, and BlazorFlowGraph.Blazor.Server
  • TypeScript: @dataflow-visualizer/protocol, @dataflow-visualizer/runtime, @dataflow-visualizer/renderer-svg, @dataflow-visualizer/layout, @dataflow-visualizer/interop, and @dataflow-visualizer/host

For a more detailed breakdown, see docs/architecture/overview.md.

Design Principles

Semantic-First

The visualization is a projection of an authoritative semantic model.

The diagram is not the source of truth.

Incremental Synchronization

Graphs are updated using diffs rather than full rerenders whenever possible.

This enables:

  • stable interaction state
  • animation continuity
  • layout preservation
  • scalable updates

Browser-Native Interaction

Rendering and interaction are browser-side responsibilities.

The browser runtime handles:

  • rendering
  • selection
  • viewport state
  • grouping
  • filtering
  • layout execution
  • reconciliation

The .NET side handles:

  • semantic graph generation
  • diff computation
  • validation
  • orchestration

Automatic Layouts

BlazorFlowGraph is optimized for automatically arranged graphs.

The system is intended for topology comprehension rather than manual diagram authoring.

The repository already includes a layout package and automatic layout pipeline. The current implementation is a simple placeholder grid layout, with ELK-based layout documented as the planned production direction.

Current Features and Planned Direction

Core Visualization

  • SVG rendering pipeline
  • incremental graph reconciliation
  • Blazor component integration
  • viewport sizing and container management
  • semantic graph snapshots and diffs

Layout

  • automatic layout package
  • placeholder grid layout implementation
  • layout abstraction for future strategy upgrades
  • ELK integration planned and documented

Interaction

  • browser-side runtime orchestration
  • Blazor-to-JavaScript interop bridge
  • foundations for selection, viewport, and graph updates

Integration

  • Blazor Server interactive hosting
  • .NET 10 targeting
  • Razor Class Library packaging
  • TypeScript package workspace

Non-Goals

At least initially, the project does not aim to become:

  • a BPMN editor
  • a Visio replacement
  • a whiteboard or canvas editor
  • a freeform diagram designer
  • a collaborative editor
  • a generic workflow designer

Repository Structure

src/
  DotNet/
    BlazorFlowGraph.Blazor/
    BlazorFlowGraph.Blazor.Server/
    BlazorFlowGraph.Diffing/
    BlazorFlowGraph.Projection/
    BlazorFlowGraph.Protocol/
    BlazorFlowGraph.Semantics/
  TypeScript/
    packages/
      host/
      interop/
      layout/
      protocol/
      renderer-svg/
      runtime/

samples/
  IncrementalUpdates/
  LargeGraphStress/
  LayoutPlayground/
  MinimalViewer/
  SemanticAnnotations/

tests/
  DotNet/
  E2E/
  TypeScript/

docs/
tooling/

Technology Stack

.NET

  • .NET 10
  • Blazor Server interactive components
  • Razor Class Libraries

TypeScript

  • TypeScript
  • Vite
  • pnpm
  • Vitest
  • Playwright

Layout

  • current placeholder grid layout
  • ELK.js integration planned

Current Status

Early architecture and prototyping phase.

Current milestones in the repository include:

  1. semantic projection model
  2. static graph rendering
  3. incremental diff synchronization
  4. Blazor integration and JavaScript interop
  5. layout abstraction with a placeholder automatic layout

For the planned milestone progression and long-term capability roadmap, see Milestones.md.

Quick Start

Minimal Blazor Integration

Register services:

builder.Services.AddDataflowVisualizer();

Render a graph:

@using BlazorFlowGraph.Blazor

<DataflowGraph Snapshot="@snapshot" Width="1200" Height="800" />

Bootstrap the browser host:

<script src="_content/BlazorFlowGraph.Blazor/js/dataflow-visualizer.js"></script>

See docs/integration/guide.md for more detail.

Development

For a zero-install development environment, see Codespace.md for GitHub Codespace setup instructions.

Prerequisites

  • .NET 10 SDK
  • Node.js LTS
  • Corepack enabled for pnpm

Restore Dependencies

corepack enable
pnpm install --frozen-lockfile
dotnet restore BlazorFlowGraph.slnx

Build

dotnet build BlazorFlowGraph.slnx --configuration Release
pnpm build

Test

TypeScript:

pnpm test

.NET test projects use Microsoft Testing Platform and are run as executables:

dotnet run --no-build --project tests/DotNet/BlazorFlowGraph.Protocol.Tests --configuration Release
dotnet run --no-build --project tests/DotNet/BlazorFlowGraph.Diffing.Tests --configuration Release
dotnet run --no-build --project tests/DotNet/BlazorFlowGraph.Projection.Tests --configuration Release
dotnet run --no-build --project tests/DotNet/BlazorFlowGraph.Semantics.Tests --configuration Release

NuGet Packaging

NuGet packaging and publishing guidance is documented in Nuget.md.

Vision

BlazorFlowGraph aims to provide a robust semantic visualization platform for modern .NET applications where graph structures evolve dynamically and must remain comprehensible at scale.

The project intentionally separates:

  • semantic modeling
  • graph projection
  • rendering
  • interaction
  • layout

to enable long-term extensibility and maintainability.

License

This project is licensed under the Unlicense. See LICENSE.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.2.0 93 5/16/2026
0.1.0 99 5/10/2026