When Does WPF Make Sense for a Former Silverlight App?
The case for going desktop
A surprising number of Silverlight applications were browser-hosted for deployment convenience, not because the web was essential to them. Internal tools used by a fixed set of employees on company Windows machines gained little from the browser except easy distribution — and modern Windows deployment has largely solved that problem. For those apps, Windows Presentation Foundation (WPF) is often the migration path with the least friction, because it is the framework Silverlight was originally carved out of.
Why WPF is the low-friction port
Silverlight began as a subset of WPF, and the family resemblance runs deep. Both use XAML for UI markup, as Microsoft's WPF documentation describes: the same Grid and StackPanel layout containers, the same data-binding syntax, the same styles, templates, and MVVM patterns that Silverlight teams already know. Where moving to Blazor means re-expressing every screen in HTML and CSS, moving to WPF means adapting XAML to a richer superset of itself. Many bindings, converters, and view models carry over with light edits, and custom control templates often port with modest rework rather than a rewrite.
The skills story is equally direct: a developer who was productive in Silverlight's XAML is productive in WPF's within days, not months. If your team's depth is XAML rather than web technologies, that alone can tilt the decision — more on this in do XAML skills still transfer.
The honest costs
WPF is Windows-only. If any meaningful slice of your users is on macOS, tablets, or phones, or if outside parties (customers, vendors, the public) use the app, a desktop-only answer forecloses them. WPF also puts deployment back on your plate: instead of a URL, you ship an installer or use an enterprise deployment channel. Modern tooling makes this routine for managed corporate machines and genuinely painful for anyone else.
There is also a service-layer question that catches teams off guard. Many Silverlight apps talked to WCF RIA Services, which has no modern successor. Whether you land on WPF or Blazor, that backend seam usually gets rebuilt as a web API — so do not assume the desktop path means zero server work.
A simple decision test
WPF deserves a serious look when most of these are true:
- All users run Windows, and the machines are centrally managed
- The app is internal — no customers or general public involved
- The UI leans on Silverlight features that map to desktop strengths: printing, heavy keyboard-driven data entry, local file access, multi-window layouts
- The team's strength is XAML and C#, not HTML/CSS/JavaScript
- You want the fastest credible route off an unmaintained runtime
If instead the app must reach browsers, non-Windows devices, or external users, weigh Blazor — Microsoft's Blazor documentation covers hosting models that suit different connectivity situations.
Sizing the job either way
Whichever direction you lean, size the work before choosing. The migration complexity scorer on this site's home page gives a rough first read, and how to inventory a legacy Silverlight app walks through the audit that should precede any framework decision. The framework choice is rarely the risky part of these projects — the unknowns buried in the old codebase are.