Majorsilence.Forms
26.11.1
dotnet add package Majorsilence.Forms --version 26.11.1
NuGet\Install-Package Majorsilence.Forms -Version 26.11.1
<PackageReference Include="Majorsilence.Forms" Version="26.11.1" />
<PackageVersion Include="Majorsilence.Forms" Version="26.11.1" />
<PackageReference Include="Majorsilence.Forms" />
paket add Majorsilence.Forms --version 26.11.1
#r "nuget: Majorsilence.Forms, 26.11.1"
#:package Majorsilence.Forms@26.11.1
#addin nuget:?package=Majorsilence.Forms&version=26.11.1
#tool nuget:?package=Majorsilence.Forms&version=26.11.1
Majorsilence.Forms
Take your WinForms apps cross-platform — without rewriting them.
A WinForms-style UI framework for .NET. You keep the programming model you already know — Forms,
controls, event handlers, even your *.Designer.cs files — and gain Windows, macOS, and Linux, with
mobile and web reachable through the backends below.
⚠️ Beta. The API is stabilizing and not every WinForms corner is covered yet. Great for new cross-platform LOB apps and for migrating real apps today — just pin your version.
Target frameworks
Majorsilence.Forms targets net8.0, net10.0, and netstandard2.0. The
netstandard2.0 target lets classic .NET Framework 4.7.2+ (and Mono / older Unity) projects
reference the controls, value types, layout, and ComponentResourceManager — useful during a
staged migration. Note the shipping backends (Avalonia, Uno, WinForms, Headless) target net8.0+
only, so running a windowed app still needs a modern runtime; the netstandard2.0 surface is for
consuming and gradually porting code. VbInteraction (the Microsoft.VisualBasic MsgBox/InputBox
shim) is not included in the netstandard2.0 build.
This package needs a backend
Majorsilence.Forms contains the controls and does all its own drawing with
SkiaSharp. It deliberately references no windowing toolkit,
so on its own it cannot open a window. Add one backend package alongside it:
dotnet add package Majorsilence.Forms
dotnet add package Majorsilence.Forms.Avalonia # desktop default
Minimal app
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net10.0</TargetFramework>
</PropertyGroup>
using Majorsilence.Forms;
public class MainForm : Form
{
public MainForm ()
{
Text = "Hello";
Controls.Add (new Label { Text = "Hello, Majorsilence.Forms!", Left = 20, Top = 20 });
}
}
internal static class Program
{
[STAThread]
private static void Main () => Application.Run (new MainForm ());
}
Referencing Majorsilence.Forms.Avalonia is all the configuration a desktop app needs — the backend
is discovered automatically. To use a different one, set it before the first window is created:
Majorsilence.Forms.Backends.Platform.Backend = new Majorsilence.Forms.Headless.HeadlessPlatformBackend ();
Or scaffold the whole thing:
dotnet new install Majorsilence.Forms.Templates
dotnet new majorsilenceforms
dotnet run
The package family
| Package | Use it for |
|---|---|
Majorsilence.Forms |
The controls and the WinForms-compatible API. Always required. |
Majorsilence.Forms.Avalonia |
Desktop backend (Windows/macOS/Linux), plus Android, iOS, and Browser (WASM). |
Majorsilence.Forms.Uno |
Uno Platform backend — desktop, mobile, WebAssembly. |
Majorsilence.Forms.Headless |
Offscreen rendering for tests and CI. No display required. |
Majorsilence.Forms.Drawing.Common |
Skia-backed replacement for the Windows-only System.Drawing.Common (GDI+). Referenced automatically. |
Majorsilence.Forms.Telerik |
Telerik UI for WinForms compatibility surface, for apps migrating off it. |
Migrating an existing WinForms app
The repo ships a majorsilence-migrate CLI that rewrites a whole solution — project files,
namespaces, and System.Drawing usage — onto Majorsilence.Forms, and reports what needs a human.
It can also convert incrementally with --dual-build, leaving the app buildable against real
WinForms until you're ready to switch.
- Migration guide
- Compatibility matrix — what's implemented, approximated, or out of scope
Links
- Documentation — getting started, training guide, FAQ
- Live browser demo — the full control gallery, running in your browser
- Repository
- Getting started
- Platform backends
- Samples — control gallery, an Explorer clone, an Outlook clone
Licensed under the MIT License.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. 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 is compatible. 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 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. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. 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. |
-
.NETStandard 2.0
- Majorsilence.Forms.Drawing.Common (>= 26.11.1)
- SkiaSharp (>= 3.119.4)
- SkiaSharp.NativeAssets.Linux (>= 3.119.4)
- System.Formats.Nrbf (>= 9.0.0)
- System.Memory (>= 4.6.3)
- System.Reflection.Metadata (>= 9.0.0)
- System.Resources.Extensions (>= 8.0.0)
- System.Text.Json (>= 9.0.0)
- System.Threading.Tasks.Extensions (>= 4.6.3)
- Topten.RichTextKit (>= 0.4.167)
-
net10.0
- Majorsilence.Forms.Drawing.Common (>= 26.11.1)
- SkiaSharp (>= 3.119.4)
- SkiaSharp.NativeAssets.Linux (>= 3.119.4)
- System.Formats.Nrbf (>= 9.0.0)
- System.Resources.Extensions (>= 8.0.0)
- Topten.RichTextKit (>= 0.4.167)
-
net8.0
- Majorsilence.Forms.Drawing.Common (>= 26.11.1)
- SkiaSharp (>= 3.119.4)
- SkiaSharp.NativeAssets.Linux (>= 3.119.4)
- System.Formats.Nrbf (>= 9.0.0)
- System.Resources.Extensions (>= 8.0.0)
- Topten.RichTextKit (>= 0.4.167)
NuGet packages (23)
Showing the top 5 NuGet packages that depend on Majorsilence.Forms:
| Package | Downloads |
|---|---|
|
Majorsilence.Reporting.RdlEngine
Cross-platform RDL/RDLC report rendering engine — run SQL Server Reporting Services (SSRS 2005) report definitions without a report server on Linux, macOS, Windows, and containers. SkiaSharp-based rendering, Native-AOT-compatible. Renders to PDF, HTML, MHTML, CSV, Excel, and images. Targets .NET 8 and .NET 10. |
|
|
Majorsilence.Reporting.ReportDesigner
Cross-platform drag-and-drop RDL report designer control for Majorsilence Reporting, built on Majorsilence.Forms. Targets .NET 8 and .NET 10, any OS Majorsilence.Forms.Avalonia supports. |
|
|
Majorsilence.Reporting.RdlViewer
Cross-platform report viewer control for Majorsilence Reporting, built on Majorsilence.Forms. Embed RDL/RDLC report viewing, printing (PDF only -- see MIGRATION-NOTES.md), and export in desktop apps. Targets .NET 8 and .NET 10, any OS Majorsilence.Forms.Avalonia supports. To host it in WPF use Majorsilence.Forms.Wpf's ToWpfElement(); for System.Windows.Forms hosts use Majorsilence.Forms.WinForms's ToWinFormsControl(). |
|
|
Majorsilence.Reporting.EncryptionProvider
Connection-string encryption helper for Majorsilence Reporting viewers and designers. Targets .NET 8 and .NET 10, any OS Majorsilence.Forms supports. |
|
|
Majorsilence.Reporting.RdlGtk3
[MAINTENANCE MODE — new development should use the Avalonia viewer (Majorsilence.Reporting.UI.RdlAvalonia) or the web viewer.] GTK3 report viewer library for Majorsilence Reporting on Linux. Targets .NET 8 and .NET 10. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 26.11.1 | 0 | 10/10/2026 |
| 26.10.1 | 0 | 10/10/2026 |
| 26.10.0 | 55 | 10/10/2026 |
| 26.9.0 | 115 | 10/8/2026 |
| 26.8.2 | 386 | 10/6/2026 |
| 26.8.1 | 297 | 10/5/2026 |
| 26.8.0 | 358 | 10/3/2026 |
| 26.7.0 | 300 | 10/3/2026 |
| 26.6.0 | 429 | 10/2/2026 |
| 26.5.0 | 292 | 10/1/2026 |
| 26.4.0 | 959 | 9/29/2026 |
| 26.3.0 | 331 | 9/25/2026 |
| 26.2.0 | 390 | 9/23/2026 |
| 26.1.0 | 249 | 9/21/2026 |
| 26.0.52 | 319 | 9/12/2026 |
| 26.0.51 | 254 | 8/30/2026 |
| 26.0.50 | 258 | 8/29/2026 |
| 26.0.33 | 327 | 8/25/2026 |
| 26.0.32 | 1,575 | 8/19/2026 |
| 26.0.31 | 218 | 8/17/2026 |