Web-enable a WinForms app without calling WinForms dead

Microsoft still ships WinForms on .NET 10. A browser cannot run `System.Windows.Forms`. We will tell you whether to stay desktop, host new screens inside the EXE, or rewrite it as a website.

Australian .NET team. We look at the app before anyone talks about a rebuild.

Still running a WinForms EXE?

The app still works. That is why it has been left alone.

Windows Forms is a supported Windows desktop UI stack. A lot of the line-of-business EXEs we hear about were built on Framework 4.x, with a bought grid suite and a pile of modal dialogs. Then the person who understood the designer code-behind left, and “Microsoft still ships WinForms” became the reason never to start.

You might recognise one of these:

  • Someone said WinForms is end-of-life, and you are not sure that is true
  • Infragistics, DevExpress, or Telerik WinForms are the screens
  • Printers, scanners, COM, or a file-system assumption is the product
  • Citrix or RDP already “web-enables” the EXE for internal users
  • You have been told Blazor Hybrid will put it on the internet
  • You are not sure whether to keep the desktop app or leave it

You do not need a new brand, or a cloud pitch. You need a clear read on the application you already have.

Why these apps stall

WinForms is not end-of-life. On Framework 4.8 / 4.8.1, support follows the parent Windows OS. On modern .NET, WinForms ships every year with the runtime. .NET 10, November 2025, includes first-class WinForms work: async forms, dark mode out of preview, a clipboard overhaul, ScreenCaptureMode, analyzer clean-up. The landing page is web-enable or leave the desktop — not “WinForms died”.

Not EOL

No web converter

Control suites

Hybrid ≠ web

A browser cannot run System.Windows.Forms.

There is no official WinForms to ASP.NET Core web converter. Designer code-behind, WinForms controls, and Win32 handles do not run in a browser. Web-enable means rewrite or Hybrid, not retarget. Microsoft Copilot and the upgrade assistant do not turn a WinForms EXE into a website.

Caption under the diagram:

Hybrid hosts Blazor inside a Windows EXE. That is not a public website.

Blazor Hybrid is still Windows.

Microsoft documents Blazor Hybrid inside WinForms — Microsoft.AspNetCore.Components.WebView.WindowsForms, BlazorWebView — as a way to host web UI on the desktop. Official tutorial. It still requires Windows and WebView2. It is not iPad. It is not a random Chrome. It does not put the app on the internet.

Third-party grids block both paths.

WinForms control suites have no browser twin. They also slow a Framework-to-modern-.NET desktop port. Printers, scanners, COM, file-system assumptions, and modal dialogs are the product. Those do not become HTTP endpoints without design work. RDP or Citrix is an access method for the same EXE. It is not a modernisation — until you want mobile or external users.

The clocks you actually have.

Framework 4.8 has no calendar end-of-life. Framework 4.8 WinForms will not stop launching in 2026 unless the Windows under it loses support. Server 2012 extended security updates end in mid-October 2026; Server 2016 extended support ends in mid-January 2027. On modern .NET, 8 and 9 end 10 November 2026; .NET 10 LTS ends 14 November 2028. A Framework-to-modern-.NET desktop port is a different project from “make it a website”. Security patches for Framework do not patch your custom forms, hardcoded SQL, or obsolete binaries.

None of that makes the business rules worthless. It does mean “WinForms is EOL so we have to web it” is the wrong first sentence, and “press the Hybrid button” is the wrong first move.

How we work

We start with the app, not with a destination.

1

Look at what you have

Framework versus modern .NET, which control suite is in the UI, COM and device dependencies, whether logic can be separated from the designer, and whether anyone already RDP’s the EXE. We will tell you which of the three jobs you actually have.

2

Decide the job

There are three honest outcomes. We recommend one, not all three.

3

Do the work in stages

If you are leaving the desktop, we extract business logic and rewrite the screens people actually use. Unused dialogs stay behind. If you are staying desktop, we do not pretend that is a website.

4

Hand it back so the next person can run it

Source, a short record of what changed, and an app someone else can understand.

Three honest outcomes

  • Stay desktop: port Framework WinForms to WinForms on .NET 10. That is Microsoft’s still-supported rich-client path.
  • Hybrid: host new screens in BlazorWebView inside the existing EXE. Official tutorial. Still Windows-only. Not a public website.
  • Rewrite as a web app — ASP.NET Core MVC, Razor Pages, or Blazor Server / WASM — and keep extracted business logic. Or replace with a packaged line-of-business product or Power Apps if the EXE is CRUD.

We will not tell you WinForms is end-of-life. We will not tell you WordPress is the answer to a desktop EXE. If you already know you want to stay on WinForms forever, that can be a responsible choice on a current Windows box or on .NET 10. If you want an honest fork in the road, talk to us.

What we need for the first call

A screenshot of the app, and a rough Framework or .NET version, is enough to start.

  • Framework 4.8 / 4.8.1, or already WinForms on .NET 6 / 8 / 9 / 10
  • Which Windows version it runs on
  • Whether Infragistics, DevExpress, Telerik, or another suite is the UI
  • Printers, scanners, COM, or other device assumptions
  • Whether users already reach it through RDP or Citrix
  • What “done” looks like: stay desktop, Hybrid, rewrite as web, or get a clear picture first

The first call is 30 minutes. You leave with a recommendation you can take to a manager, not a rewrite estimate pulled from thin air.

Related work

We have taken over and modernised ageing .NET systems for Australian organisations, including work with Data#3, Hastie, NESS, and NSW Health. Hastie and NSW Health TESL are older ASP.NET web work. That is related Microsoft-stack work, not a published WinForms-to-web case study. Your EXE still starts with its own assessment. We will not pretend it is a project we have already published.

FAQ

Is WinForms end-of-life?
No. Microsoft still ships it on .NET 10. On Framework 4.8 / 4.8.1, support follows the parent Windows version. That is not the same as “safe forever”, and it is not EOL.
Will the EXE stop launching in 2026?
Not because it is WinForms. Framework 4.8 has no calendar end date. The near-term dates are the host OS — Server 2012 in October 2026, Server 2016 in January 2027 — or a .NET 8 / 9 desktop app that needs a hop to .NET 10 before 10 November 2026.
Does Blazor Hybrid put it on the internet?
No. It hosts Blazor inside a Windows EXE, with WebView2. Users still need that Windows machine. It is not a public website.
Can we just retarget the project to a website?
No. There is no official converter. A browser cannot run System.Windows.Forms. Control suites do not come with you.
We only have the EXE and a screenshot.
That is common. Bring that.

Talk through the WinForms app you already have

Thirty minutes. Bring a screenshot and a version if you know it. We will tell you whether to stay on .NET 10 desktop, host new screens in the EXE, or rewrite it as a website — and we will not call WinForms end-of-life.

Book a free 30-minute discovery call