Platforms and Hosts
Target frameworks, the five host controls, and packaging notes
The framework core is platform-neutral; the hosts are thin adapters that give you a canvas control for your UI stack. This page is the practical reference for what targets what, and what to expect when you consume the packages.
Table of Contents
Target Frameworks
| Component | Targets | Notes |
|---|---|---|
| Core, model, family libraries | net8.0, net9.0, net10.0 | Multi-targeted; every shipped target is runtime-verified by a consumer |
| WinForms host | net10.0-windows10.0.19041.0 | SkiaSharp's 4.x view packages ship no net8.0 assets, so the Windows hosts require .NET 10 on Windows 10 2004 or later |
| WPF host | net10.0-windows10.0.19041.0 | Same constraint as WinForms |
| Blazor host | net8.0 | WebAssembly rendering through SKCanvasView |
| Avalonia host | net8.0 | Renders into an Avalonia WriteableBitmap-backed surface, so it needs only Avalonia plus the same SkiaSharp version as the core |
| MAUI host | net10.0-android/ios/maccatalyst/windows | Excluded from CI (Windows runners cannot build the iOS/MacCatalyst targets); build locally |
Host Controls
Each host wraps the same DrawingManager, so diagram code is portable between them. Hosts add what is
platform-specific: rendering surface, pointer and keyboard translation, and the in-canvas palette/editor where it makes
sense.
| Host | Control | Rendering surface |
|---|---|---|
| WinForms | SkiaHostControl | SKControl (flagship host: palette, property editor, minimap, dialogs) |
| WPF | SkiaHostElement | SKElement |
| Blazor | SkiaHostComponent | SKCanvasView (WebGL/Canvas2D) |
| Avalonia | SkiaHostControl | SkiaSurface — offscreen SKSurface over a WriteableBitmap |
| MAUI | SkiaHostView | SKCanvasView |
Consuming the Packages
Packages are versioned from git tags with MinVer, and 23 of them are produced by a release build (core, model, the 16 families, the hosts, and the loader). A consumer needs only what it uses:
<ItemGroup>
<!-- library only -->
<PackageReference Include="Beep.Skia" Version="1.0.0" />
<PackageReference Include="Beep.Skia.ERD" Version="1.0.0" />
<!-- with the WinForms editor -->
<PackageReference Include="Beep.Skia.Winform.Controls" Version="1.0.0" />
</ItemGroup>
Restore, compile, render, save/load and workflow execution from a packaged build are verified by a standalone
consumer project on net8.0, net9.0 and net10.0.
Private Dependency Note
TheTechIdea.Beep.* packages that are not published to nuget.org at the required
versions. Configure a feed that provides them before restoring: locally a folder source (for example
LocalNugetFiles), in CI a feed secret. Without it, restore fails for the projects that reference those
packages.