Silverlight China

A plain-English reference for the Silverlight era — and what to run instead

Is Blazor the Replacement for Silverlight?

The short answer

Functionally, yes: if you want to keep writing web application UIs in C# on .NET, Blazor is the Microsoft-supported way to do it today. But it is a successor in spirit, not a drop-in replacement — the programming model is different enough that moving a Silverlight app to Blazor is a porting project, not a recompile.

What Blazor and Silverlight have in common

Both let .NET developers build interactive web UIs without writing their application logic in JavaScript. Both use C#. Both offer a component model, data binding, and a familiar .NET ecosystem of libraries. For a team whose skills are C# and .NET, Blazor preserves the core value Silverlight offered: one language and one runtime across client and server.

The delivery mechanism, however, is fundamentally different. Silverlight was a plugin the user had to install, running outside the browser's own machinery. Blazor WebAssembly runs on WebAssembly, a standard part of every modern browser — no install, no plugin prompt, no separate runtime to patch. That difference is exactly why Blazor is viable where Silverlight no longer is; the background is covered in why Silverlight won't run in modern browsers.

What changes in the programming model

The biggest adjustment for Silverlight developers is the UI layer. Silverlight UIs were written in XAML; Blazor components are written in Razor, a templating syntax that mixes HTML with C#. There is no automatic converter between the two, and the layout systems differ: Silverlight used XAML panels (Grid, StackPanel, Canvas), while Blazor renders real HTML styled with CSS. Screens get re-expressed, not translated.

Microsoft's migration guide for Web Forms developers moving to Blazor is the closest official playbook — Web Forms is a different legacy framework, but the guide's structure applies well to Silverlight migrations too: bring the business logic across largely intact, rebuild the UI as components, and modernize the service layer as you go. In practice, teams find that models, validation rules, and calculation logic port with modest changes, while anything touching the visual tree is rewritten.

Data access is the other common gap. Many Silverlight apps used WCF RIA Services or SOAP endpoints; Blazor apps typically talk to web APIs over HTTP/JSON. Budget for reworking that seam — it is often more effort than the screens themselves.

Hosting models: a choice Silverlight never had

Blazor offers more than one way to run, documented in the official Blazor docs. Blazor WebAssembly executes the app in the browser, which feels most like Silverlight's client-side model and works offline once loaded. Blazor Server keeps the app on the server and syncs UI updates over a persistent connection, which gives fast initial loads and full server-side .NET at the cost of requiring connectivity. Which fits depends on your app's shape — a data-entry tool used on a reliable office network suits Blazor Server nicely; a field tool wants WebAssembly.

When Blazor is the wrong answer

If your Silverlight app was really a desktop application in a browser costume — heavy local files, printing workflows, kiosk deployment — a genuine desktop framework may fit better. See when does WPF make sense for that path, and do XAML skills still transfer if team skills are the deciding factor.

Sources