NetForms is Windows Forms for .NET 10 that runs the same on Windows and Linux.
Same namespaces, same Application.Run(new MainForm()), same
InitializeComponent(). You change the project file, not the code.
A WinForms project on Linux fails twice. Then you fix one file.
Build it
$ dotnet build
error NETSDK1100: To build a project
targeting Windows on this operating
system, set the EnableWindowsTargeting
property to true.
Force it
$ dotnet run -p:EnableWindowsTargeting=true
You must install or update .NET
to run this application.
Framework: 'Microsoft.WindowsDesktop.App'No frameworks were found.
A project exactly as Visual Studio creates it, after netforms-convert --apply, built from the NuGet
packages and started under X11. Not one line of C# changed. netforms-convert also moves
.NET Framework 4.x projects and tells you up front what will not carry over, with file and line.
HelloForms, Ubuntu 24.04, .NET 10
Painted by NetForms, designed in VS Code
Your controls, your designer.
Every control is drawn by NetForms with SkiaSharp, so a form looks the same on both systems. Avalonia 12
does only what Win32 did: windows, input, IME, clipboard, native file dialogs, DPI. The VS Code
extension opens any *.Designer.cs as a canvas and writes it back the way Visual Studio does.
NetForms Designer: toolbox, component tray, properties and events, snap lines. Works offline.The control gallery. The golden test image is pixel-identical on Windows and Linux.
Preview 0.1 · measured, not guessed
How close to WinForms is it?
Every number comes from a test that runs in CI: the API is compared with the reference assemblies of
the real WinForms, behaviour is diffed against it on Windows, real projects are converted and built.
664 / 1254WinForms and System.Drawing types with the complete API; 163 more partial
415 / 415tests pass; layout, event order and text metrics are diffed against the real WinForms
7 / 7.NET Framework 4.8 business apps convert and build with no manual edit
28 / 45open-source WinForms projects convert and build with no manual edit