Beep.Skia ships as 24 NuGet packages: the core library and its model assembly, one package per diagram family (16), the five platform hosts and the loader extension. This page covers the prerequisites, the package list and a minimal verification project.

Prerequisites

Two things must be in place before the first restore:

  1. A .NET SDK that can build the target framework you choose (see the table below). The repository itself builds with the .NET 10 SDK.
  2. The private TheTechIdea.Beep.* feed. The core package depends on BeepDM model packages (DataManagementModels, Vis.Modules) that are not published on nuget.org at the required versions. Add the feed to your nuget.config (or a local folder feed) before restoring.

nuget.config with the private feed

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <clear />
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
    <!-- Internal feed hosting TheTechIdea.Beep.* packages -->
    <add key="beep" value="https://nuget.your-company.com/v3/index.json" />
  </packageSources>
</configuration>

Target Frameworks

Package groupFrameworksNotes
Beep.Skia (core)net8.0, net9.0, net10.0Multi-targeted; pick what your app already uses.
Beep.Skia.Model and family packagesnet8.0, net9.0Library-only targets.
Beep.Skia.Winform.Controls, Beep.Skia.Wpf.Controlsnet10.0-windows10.0.19041.0SkiaSharp 4.x view packages ship no net8.0 assets; do not suppress NU1701 to force older Windows TFMs.
Beep.Skia.Blazor.Controls, Beep.Skia.Avalonia.Controlsnet8.0Cross-platform hosts.
Beep.Skia.Maui.Controlsnet10.0-android, -ios, -maccatalyst, -windows10.0.19041.0Requires the MAUI workload.

NuGet Installation

Install the core package to begin; add family or host packages as needed:

Install via .NET CLI

dotnet add package Beep.Skia

# A diagram family
dotnet add package Beep.Skia.ETL

# A platform host
dotnet add package Beep.Skia.Winform.Controls

Packages

PackageContents
Beep.SkiaCore: canvas, components, connections, themes, automation, collaboration, extensions, serialization.
Beep.Skia.ModelShared models and enums (DTOs, automation models, layout contracts).
Beep.Skia.FlowChart, .Business, .ERD, .DFD, .ETL, .UML, .Network, .PM, .MindMap, .StateMachine, .ECAD, .Cloud, .Security, .ML, .WellLogs, Beep.Ski.QuantitativeOne package per diagram family (16 in total).
Beep.Skia.Winform.ControlsWinForms host control plus a wrapper control for every Material component.
Beep.Skia.Wpf.ControlsWPF host surface.
Beep.Skia.Blazor.ControlsBlazor component.
Beep.Skia.Avalonia.ControlsAvalonia control.
Beep.Skia.Maui.ControlsMAUI view.
Beep.Skia.LoaderAssembly-loader extension for BeepDM hosts.

Every package ships XML documentation for IntelliSense and a package README.

Project Setup

Reference the namespaces you use. A minimal WinForms or console project needs only three:

Typical Using Directives

using Beep.Skia;              // DrawingManager, ConnectionLine, HistoryManager, themes
using Beep.Skia.Components;   // Material controls and utility components
using Beep.Skia.Flowchart;    // ProcessNode, DecisionNode, ...
using SkiaSharp;              // SKCanvas, SKSurface, SKColor

A console or test project that renders offscreen needs no Windows-specific TFM:

Project File Configuration

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net9.0</TargetFramework>
    <Nullable>enable</Nullable>
    <ImplicitUsings>enable</ImplicitUsings>
  </PropertyGroup>
</Project>

A WinForms app that uses SkiaHostControl targets the Windows TFM the host package provides:

WinForms Project

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>WinExe</OutputType>
    <TargetFramework>net10.0-windows10.0.19041.0</TargetFramework>
    <UseWindowsForms>true</UseWindowsForms>
    <Nullable>enable</Nullable>
  </PropertyGroup>
</Project>

Dependencies

The core package resolves these automatically:

DependencyVersionPurpose
SkiaSharp4.150.12D rendering engine (native assets per platform).
SkiaSharp.Extended3.0.0Additional Skia helpers.
SkiaSharp.Svg1.60.0SVG parsing for SvgImage.
TheTechIdea.Beep.DataManagementModels3.1.1BeepDM model contracts (private feed).
TheTechIdea.Beep.Vis.Modules2.0.44Visual module contracts (private feed).

Serialization uses System.Text.Json from the framework — no extra package is needed.

Solution Structure

The solution holds 27 projects: the core, the shared model, 16 family libraries, five host adapters, the loader extension, the tests and two runnable samples.

AreaProjects
CoreBeep.Skia, Beep.Skia.Model
FamiliesFlowChart, Business, ERD, DFD, ETL, UML, Network, PM, MindMap, StateMachine, ECAD, Cloud, Security, ML, WellLogs, Quantitative
HostsBeep.Skia.Winform.Controls, Beep.Skia.Wpf.Controls, Beep.Skia.Blazor.Controls, Beep.Skia.Avalonia.Controls, Beep.Skia.Maui.Controls
ExtrasBeep.Skia.Loader
SamplesBeep.Skia.Sample.WinForms, Beep.Skia.Sample.Server — see Sample Applications
TestsBeep.Skia.Tests (501 tests, including whole-surface sweeps)

Verifying Installation

Confirm that Beep.Skia is correctly installed by running a minimal render test:

Verification Test

using Beep.Skia;
using Beep.Skia.Flowchart;
using SkiaSharp;

using var surface = SKSurface.Create(new SKImageInfo(800, 600));
var canvas = surface.Canvas;

var manager = new DrawingManager();
manager.AddComponent(new ProcessNode
{
    Label = "Hello Beep.Skia",
    X = 50, Y = 50, Width = 180, Height = 60
});

manager.Draw(canvas);
Console.WriteLine($"Canvas nodes: {manager.GetComponents().Count}");
Console.WriteLine("Beep.Skia installation verified successfully.");

If the code compiles and runs without errors, Beep.Skia is ready for development. For further guidance, proceed to the Quick Start Tutorial, or see Troubleshooting if restore fails.