Migration Silverlight
Key Takeaways
  • Silverlight is not just "old technology." It is an active security liability with no patches, no browser support, and growing compliance exposure.
  • Three credible migration paths exist in 2026: OpenSilver (closest API surface), Uno Platform (XAML continuity with cross-platform reach), and Blazor (full rewrite into the ASP.NET Core ecosystem).
  • Your decision hinges on three factors: how deeply your codebase uses Silverlight-specific APIs, whether you need platforms beyond the browser, and how much rewrite effort your team can absorb.
  • AI agents can now pre-assess a Silverlight codebase, classifying every API call by migration difficulty before you commit to a path.
  • Uno Platform 6.5 on .NET 10 offers the broadest target surface (six platforms from a single codebase) with full XAML continuity and integrated AI tooling.

Who this is for: Enterprise architects, engineering managers, and LOB application owners who are responsible for Silverlight applications still in production and need to make a migration decision in 2026.

Status

Silverlight's Status in 2026: The Real Cost of Doing Nothing

Microsoft ended Silverlight 5 support on October 12, 2021. That date was not a soft deprecation. It was a hard cutoff: no more security patches, no more runtime updates, no more anything.

Here is what has happened since:

  • Browser plugin support is gone. Every major browser dropped NPAPI plugin support years ago. Chrome removed it in 2015. Firefox followed. Edge never supported it. The only browser that ever ran Silverlight reliably was Internet Explorer, which itself reached end of life in June 2022.
  • No security updates. Over four years without patches means every known Silverlight CVE remains unpatched. The CVE database lists dozens of vulnerabilities including remote code execution flaws. Your security team knows this. Your auditors know this too.
  • Custom browser configurations. To keep Silverlight running, many enterprises maintain locked-down IE11 instances via compatibility mode in Edge, Group Policy overrides, or virtualized browser environments. Each of these is a maintenance burden that grows more fragile with every Windows update.
  • Compatibility shims are brittle. Organizations using application virtualization or browser redirection to keep Silverlight alive are running on borrowed time. These shims break unpredictably, and the pool of engineers who can troubleshoot them is shrinking.
  • Audit findings pile up. If your organization undergoes SOC 2, HIPAA, PCI-DSS, or FedRAMP audits, unsupported runtime dependencies generate findings. Those findings require remediation plans. The longer you defer, the harder the conversation with auditors becomes.
  • Developer onboarding is nearly impossible. Try hiring a developer in 2026 who wants to write Silverlight. The tooling requires Visual Studio 2015 or earlier for full support. The documentation ecosystem has largely moved on. New team members inherit a codebase they cannot meaningfully extend.

The cost of keeping Silverlight alive is not just technical debt. It is operational risk, compliance exposure, and talent friction, all compounding every quarter you delay.

Comparison

Three Migration Paths Compared

In 2026, three frameworks offer credible paths from Silverlight to modern .NET. Each makes different trade-offs. Here is an honest comparison.

Comparison Table

CriteriaOpenSilverUno PlatformBlazor
API CompatibilityClosest to Silverlight API surface. Direct re-compilation of many controls.WinUI-based XAML. Different dialect, same paradigm.Complete rewrite to Razor components. No XAML.
Output TargetsWebAssembly (primary). Mobile via .NET MAUI Hybrid as of v3.2.Six platforms: Wasm, Windows, macOS, Linux, iOS, Android.Web (Server, Wasm, Auto). Desktop/mobile via Blazor Hybrid + MAUI.
Rendering ModelHTML/CSS mapping. XAML → HTML DOM elements.Skia-based (pixel-perfect) or native control mapping.HTML/CSS. Standard browser layout engine.
Migration EffortLowest for pure Silverlight XAML. Many apps re-compile with namespace changes.Moderate. XAML dialect change requires systematic updates but preserves structure.Highest. Complete UI rewrite from XAML to Razor.
Platform ReachWeb-first. Mobile/desktop added via MAUI Hybrid.Web + mobile + desktop from a single codebase. First-class across all six.Web-first. Desktop/mobile through Blazor Hybrid (requires MAUI as host).
AI ToolingAI-enhanced XAML designer (v3.3).Full MCP server integration: Uno MCP + App MCP. Works with Claude Code, VS Code, Copilot, and more.GitHub Copilot support. Standard AI code completion.
Latest Version3.3 (.NET 10, C# 14, VS 2026)6.5 (.NET 10, VS 2026, Skia improvements).NET 10 (Nov 2025 release, ongoing updates)
XAML PreservationYes. Silverlight/WPF XAML syntax.Yes. WinUI XAML syntax (namespace and control name changes required).No. UI is Razor/HTML.
Backend ServicesWCF/RIA Services compatibility layers available.REST, gRPC, or CoreWCF. RIA Services migration guide available.Full ASP.NET Core integration. REST, gRPC, SignalR, Minimal APIs.

OpenSilver: The Closest API Match

OpenSilver is purpose-built to be a Silverlight and WPF successor. It compiles your existing XAML and C# to WebAssembly, translating XAML elements into HTML/CSS at runtime. If your Silverlight application uses standard controls, data binding, and Silverlight-era patterns, OpenSilver offers the shortest path to a working application in the browser.

Version 3.3 adds Blazor component embedding directly inside XAML views, responsive layout extensions, .NET 10 support, and expanded WPF compatibility. The team behind OpenSilver has over seven years of migration experience and offers professional migration services.

The trade-off: OpenSilver's rendering is HTML/CSS-based, which means visual fidelity depends on how well XAML constructs map to HTML elements. Complex custom controls or heavy visual customizations may require adjustment. Cross-platform reach beyond the web is available through .NET MAUI Hybrid integration, but it is not the primary use case.

Uno Platform: XAML Continuity with Cross-Platform Reach

Uno Platform takes a different approach. Rather than replicating the Silverlight API surface, it implements the WinUI API across six platforms: WebAssembly, Windows, macOS, Linux, iOS, and Android. Your Silverlight XAML migrates to WinUI XAML, which requires namespace changes and some control name updates, but the structural patterns (XAML markup, C# code-behind, MVVM data binding) carry over directly.

Uno Platform 6.5 on .NET 10 brings Skia-based rendering tuned for display-synced frame pacing with lower overhead, expanded windowing capabilities on desktop, and tighter AI integration through Uno Platform Studio 2.0. The Skia renderer means your application looks identical across every platform, pixel for pixel.

For Silverlight teams, the key advantage is that you are not just migrating to the web. You are migrating to a modern, actively developed XAML platform that can also target mobile and desktop if your business requirements expand. Your XAML skills, your MVVM patterns, and your C# business logic all transfer.

Blazor: Full Embrace of ASP.NET Core

Blazor is not a XAML migration path. It is a modern web UI framework built on Razor components, HTML, and CSS, running on ASP.NET Core. Choosing Blazor means accepting a complete UI rewrite. Every Silverlight page becomes a Razor component. Your C# business logic and service layers carry over, but the presentation layer is rebuilt from scratch.

What you get in return is deep integration with the ASP.NET Core ecosystem: authentication, authorization, dependency injection, minimal APIs, SignalR for real-time communication, and the full breadth of ASP.NET Core middleware. .NET 10 brings Hot Reload improvements, a 76% reduction in the Blazor script payload, improved WebAssembly diagnostics, and streaming asset preloading.

Blazor Hybrid via .NET MAUI enables desktop and mobile scenarios, but your UI is still HTML/CSS rendered inside a WebView, not native controls.

Decision

Decision Matrix: Which Path Fits Your Application?

Your migration path depends on your application's profile, your team's skills, and your strategic requirements.

Your SituationBest FitWhy
Heavy Silverlight API usage, browser-only targetOpenSilverClosest API match; many apps recompile with namespace changes alone
Need iOS, Android, desktop alongside webUno PlatformSix platforms from one codebase with first-class support for each
Team knows ASP.NET Core, accepts full UI rewriteBlazorDeepest integration with modern Microsoft web stack
Want to preserve XAML + C# investmentUno PlatformWinUI XAML continuity; systematic migration, not structural rewrite
Want AI agents to assist migrationUno PlatformFull MCP server integration for agentic workflows
Simple app, just need it off Silverlight fastOpenSilverMinimal code changes to reach a working WebAssembly build
Complex app, long-term product investmentUno PlatformModern, actively developed platform with broad roadmap

A few scenarios are worth expanding on:

Heavy Silverlight API surface. If your application relies on WCF RIA Services, Silverlight Toolkit controls, deep visual state managers, or custom Silverlight behaviors, OpenSilver supports the Silverlight API surface directly. This is the fastest path when your only goal is getting off Silverlight with the least code change.

Cross-platform beyond the web. If your roadmap includes mobile (iOS, Android) or desktop (Windows, macOS, Linux) alongside WebAssembly, Uno Platform is the only option that delivers all six targets from one codebase.

Full ASP.NET Core ecosystem. If your team has Razor/HTML/CSS expertise and you are willing to accept a complete UI rewrite, Blazor gives you server-side rendering, WebAssembly, and hybrid modes out of the box, plus the full ASP.NET Core middleware pipeline.

AI-assisted migration. Uno Platform 6.5 provides Model Context Protocol (MCP) integration through two servers: Uno MCP for documentation and API conventions, and App MCP for live runtime inspection. This works with Claude Code, VS Code, GitHub Copilot, and other agentic tools. No other framework in this comparison offers this level of AI-agent interoperability.

Uno Platform

What Makes Uno Platform Compelling for Silverlight Migration

For teams that want to modernize rather than just survive, Uno Platform offers several advantages worth examining in detail.

XAML-to-XAML Continuity

Silverlight XAML and WinUI XAML share the same conceptual foundation: declarative UI markup, dependency properties, data binding with {Binding} and {x:Bind}, styles and templates, visual states, and the MVVM pattern. The migration from Silverlight to WinUI involves specific, well-documented changes rather than an architectural overhaul.

Common migration tasks include:

  • Updating XML namespaces to WinUI-specific namespaces for platform controls
  • Replacing Silverlight Toolkit controls with WinUI equivalents (for example, toolkit:BusyIndicator becomes muxc:ProgressRing)
  • Updating style and template syntax for WinUI's updated VisualStateManager approach
  • Replacing NavigationService with WinUI navigation patterns

Uno Platform provides a detailed Silverlight migration guide with a complete sample application (TimeEntryRIA) that walks through each of these changes step by step.

WebAssembly as a First-Class Target

Your Silverlight application runs in the browser. Your migrated Uno Platform application also runs in the browser, via WebAssembly. From your users' perspective, the experience is similar: they open a URL, the application loads, and they interact with a rich client-side UI. The difference is that WebAssembly is a standard supported by every modern browser, with no plugins required.

Uno Platform's WebAssembly target is not an afterthought. It is a first-class compilation target with Skia-based rendering, meaning the exact same visual output you see on desktop appears in the browser. There is no HTML/CSS translation layer introducing rendering discrepancies.

Six-Platform Reach from One Codebase

Silverlight was web-only. With Uno Platform, you write your application once and deploy to WebAssembly, Windows (WinUI), macOS, Linux, iOS, and Android. If your enterprise later decides the LOB application should also run as a native mobile app or a desktop application, you do not start over. You add a target and ship.

Skia Rendering for Pixel-Perfect Consistency

Uno Platform's Skia renderer draws your UI directly to a canvas on each platform. This means a DataGrid on WebAssembly looks identical to the same DataGrid on Windows, macOS, or Linux. For enterprise applications where visual consistency across environments matters (think: regulated reporting, financial dashboards, medical imaging UIs), Skia rendering eliminates the "it looks different on platform X" problem.

Estimates

Effort Estimation by Silverlight Application Category

Every Silverlight application is different, but migration effort tends to cluster around three profiles. The estimates below assume a competent .NET team migrating to Uno Platform, with the understanding that OpenSilver may require less effort for the simplest cases and Blazor will require more across the board.

Basic LOB Application

Estimated: 4–8 weeks

Profile: Forms-based application with data grids, simple navigation, standard Silverlight controls, MVVM or code-behind patterns. Uses WCF services for backend communication.

Typical scope: 10–30 pages/views, standard controls (DataGrid, TextBox, ComboBox, DatePicker, buttons, lists), simple frame-based navigation, WCF service calls to a backend API.

Migration work:

  • XAML namespace updates and control replacements (systematic, low risk)
  • Replace WCF service proxies with HttpClient-based REST calls or gRPC
  • Update navigation to WinUI navigation patterns
  • Test and fix data binding adjustments
  • Theme/style updates to match WinUI conventions

Complex LOB Application with RIA Services

Estimated: 2–4 months

Profile: Multi-module application with WCF RIA Services for data access, complex validation logic, authentication/authorization integration, custom controls, and possibly third-party control libraries (Telerik, DevExpress, ComponentOne for Silverlight).

Typical scope: 30–100+ pages/views, RIA Services DomainContext and DomainDataSource patterns throughout, custom or third-party controls, complex validation, role-based authorization tied to the UI.

Migration work:

  • Everything from the basic LOB category
  • Replace RIA Services with REST APIs or gRPC endpoints — typically the largest single effort item. The DomainContext pattern needs to be replaced with a service layer using HttpClient, and server-side query composition needs to be rebuilt.
  • Replace third-party Silverlight controls with WinUI equivalents (most major vendors offer WinUI control suites)
  • Rebuild custom controls using WinUI templated controls
  • Update authentication to use modern identity patterns (OIDC, MSAL)

Media-Rich Application

Estimated: 4–6 months

Profile: Application with significant video playback, DRM-protected content, real-time streaming, or rich media manipulation. Silverlight's MediaElement and DRM pipeline were deeply integrated into the runtime.

Typical scope: Video playback with DRM (PlayReady was native to Silverlight), adaptive streaming (Smooth Streaming), real-time communication features, significant canvas/drawing operations.

Migration work:

  • Everything from the complex LOB category
  • Replace Silverlight's media pipeline with platform-appropriate alternatives. On WebAssembly, this means HTML5 video with EME (Encrypted Media Extensions) for DRM. On native platforms, this means platform media APIs.
  • Rebuild smooth streaming with HLS or DASH protocols
  • Replace Silverlight's real-time communication with SignalR or WebRTC

Note: The media-rich category requires significant rework regardless of which migration path you choose. Neither OpenSilver nor Blazor avoids this work, because Silverlight's media pipeline has no direct equivalent in any modern framework.

Effort Comparison Across Paths

App CategoryUno PlatformOpenSilverBlazor
Basic LOB4–8 weeks2–4 weeks8–14 weeks
Complex LOB + RIA2–4 months1–3 months4–8 months
Media-rich4–6 months4–6 months5–8 months

OpenSilver estimates assume high Silverlight API compatibility. Blazor estimates reflect the complete UI rewrite requirement. All estimates assume a team of 2–4 experienced .NET developers.

AI Assessment

Using AI Agents to Pre-Assess a Silverlight Codebase

Before you commit to a migration path, you should understand exactly what you are migrating. AI agents can automate the assessment of a Silverlight codebase, identifying every API dependency and classifying each by migration difficulty.

How the Assessment Works

An AI agent with access to your source code (via an MCP-enabled development environment) can perform the following analysis:

  1. Scan all XAML files for Silverlight-specific controls, namespaces, and markup extensions. Each is classified as: direct equivalent available, equivalent with modification, or no equivalent (requires rewrite).
  2. Scan all C# files for Silverlight-specific API calls. Key categories include System.Windows.* namespace usage, WCF RIA Services (DomainContext, DomainDataSource), Silverlight Toolkit references, IsolatedStorageFile usage, browser interop (HtmlPage, ScriptObject), and media APIs.
  3. Classify each API call by migration difficulty (see table below).
  4. Generate a migration report with total API call count by difficulty, estimated effort hours, recommended migration path based on the API profile, and specific files and line numbers for every high/critical item.
DifficultyDescriptionExamples
LowDirect equivalent exists in target frameworkTextBox, Button, Grid, basic data binding, ObservableCollection
MediumEquivalent exists but requires code changesNavigationService (pattern change), ChildWindowContentDialog, DataGrid (column API differs)
HighNo direct equivalent; requires architectural reworkDomainContext, DomainDataSource, IsolatedStorageFile, browser interop via HtmlPage
CriticalRequires significant rework regardless of pathDRM media pipeline, Smooth Streaming, real-time communication, custom pixel shaders

Sample Agent Prompt

If you are using an AI agent with MCP integration (such as Claude Code with the Uno MCP server), you can start with a prompt like this:

"Analyze this Silverlight solution for migration readiness. For every .xaml and .cs file, identify all Silverlight-specific APIs (controls, namespaces, services, browser interop). Classify each by migration difficulty: Low (direct WinUI equivalent), Medium (equivalent with code changes), High (no direct equivalent, needs rework), Critical (fundamental architecture change required). Output a summary table with file counts per category and a detailed report listing every API reference with file path, line number, current API, and recommended replacement."

What the Report Tells You

The output of this assessment directly informs your path decision:

  • Mostly Low and Medium? Any of the three paths will work. Choose based on your platform requirements and team preferences.
  • Significant High, few Critical? OpenSilver may handle some High items natively due to its Silverlight API compatibility. Uno Platform will require systematic replacement but provides guidance through its migration documentation. Blazor requires rewriting everything regardless.
  • Multiple Critical items? Expect significant rework on any path. Focus your decision on which framework best serves your long-term product strategy, not which one saves the most migration effort in the short term.
FAQ

Frequently Asked Questions

Is Silverlight still safe to run in production?

No. Silverlight has received no security patches since October 2021. Every known vulnerability remains unpatched. Running Silverlight in production exposes your organization to security risks and will generate findings in compliance audits (SOC 2, HIPAA, PCI-DSS, FedRAMP).

Can I migrate incrementally, or is it all-or-nothing?

With OpenSilver and Uno Platform, you can migrate page by page or module by module. Both frameworks support running alongside existing services during transition. Blazor also supports incremental migration at the component level, though the UI rewrite means each page must be fully rebuilt before it can go live.

Do I need to replace WCF RIA Services?

Yes, on all three paths. WCF RIA Services are discontinued. The standard replacements are REST APIs (using ASP.NET Core Web API), gRPC, or CoreWCF (the open-source community port of WCF). This is typically the single largest effort item in a Silverlight migration regardless of which frontend framework you choose.

Can Uno Platform target WebAssembly only, or do I have to ship to all six platforms?

You choose your targets. If you only need WebAssembly, you only build for WebAssembly. The other five platforms are available when you need them, but there is no requirement to target them. Your project file specifies which target frameworks to include.

What about third-party Silverlight controls (Telerik, DevExpress, ComponentOne)?

These vendors have discontinued their Silverlight control suites. However, most offer equivalent WinUI control suites that work with Uno Platform, and Blazor component libraries as well. OpenSilver has compatibility with some legacy Silverlight controls, but complex third-party controls typically need vendor-specific replacements regardless of your migration path.

How does Uno Platform's Skia rendering affect performance on WebAssembly?

Skia rendering on WebAssembly draws to an HTML Canvas element. Uno Platform 6.5 includes rendering improvements tuned for display-synced frame pacing with lower overhead. For typical LOB applications (forms, grids, charts, navigation), performance is comparable to or better than Silverlight in a modern browser. For extremely graphics-intensive applications, benchmark on your target hardware.

What is the MCP integration, and why does it matter for migration?

The Model Context Protocol (MCP) is an open standard that lets AI agents interact with external tools and data sources. Uno Platform provides two MCP servers: the Uno MCP (for documentation and API knowledge) and the App MCP (for live runtime inspection of your running application). This means an AI agent can scaffold migration code using current Uno Platform conventions and then verify it against a live application, catching issues that static analysis would miss.

Can I use AI to actually perform the migration, not just assess it?

AI agents can assist with the migration itself, particularly for repetitive tasks like XAML namespace updates, control replacements, and boilerplate service layer code. However, architectural decisions (replacing RIA Services, redesigning navigation, handling authentication) require human judgment. The most effective approach is to use AI for the mechanical work and have your team focus on the architectural decisions.

Get Started

Getting Started

Once you have completed your assessment and chosen a path, here are the next steps for each option:

OpenSilver: Visit the OpenSilver migration service page, download the OpenSilver SDK (NuGet package OpenSilver v3.3), and follow their migration guide for your Silverlight application type.

Uno Platform: Install the Uno Platform 6.5 templates via dotnet new install Uno.Templates, create a new solution, and follow the Silverlight Migration Guide which walks through a complete TimeEntryRIA sample application. Set up the Uno MCP and App MCP servers to enable AI-assisted migration workflows.

Blazor: Create a new Blazor Web App project with .NET 10, choose your rendering mode (Server, WebAssembly, or Auto), and begin rebuilding your UI as Razor components. Your C# business logic and service layers will port directly; the UI is a rewrite.

Bottom line: Whichever path you choose, the worst option in 2026 is no migration at all. Every month on Silverlight increases your security exposure, your compliance risk, and the difficulty of eventually moving off a platform that no longer has a future.