Migrating Silverlight apps to WinUI + Uno Platform (XAML in the browser!)

Silverlight will reach the end of support  on October 12, 2021. As luck would have it, a new Windows UI framework is about to RTM in March 2021 – WinUI – the modern native UI platform of Windows. And with WinUI launch there is a renewed desire by C# and XAML developers to write single codebase applications for Windows and the Web.

Enter Uno Platform. Hello “Rich Internet Applications (RIA)” again! Kudos to Daren May for writing a comprehensive Silverlight migration guide which migrates a sample TimeEntryRia application to WinUI and Uno Platform.


About Uno Platform
For those new to Uno Platform – it allows for creation of pixel-perfect, single-source C# and XAML apps which run natively on Windows, Web/WebAssembly, Linux, macOS, iOS and Android. Uno Platform is free and Open Source (Apache 2.0) and available on GitHub.

Migrating from Silverlight to WinUI and Uno Platform Documentation

There are 47 pages of Silverlight migration documentation to help you with migration – accompanying source code, techniques and considerations you need to make when migrating your Silverlight application.

Table of contents:

  • Silverlight to Uno Migration Introduction
    • Scoping the migration – things to consider
    • Why choose Uno?
    • Starting migration – considering layout, architecture, etc.
  • Create the Uno solution for UWP and WASM
  • Considering navigation – comparing Silverlight and UWP navigation
  • Reviewing the app startup – comparing Silverlight and UWP app lifecycle
  • Migrating the home page XAML and styles – comparing XAML
  • Switching to string resources – comparing the Silverlight and UWP approach to resources
  • Dialogs and errors – Silverlight ChildWindow to UWP ContentDialog and console logging
  • Data access services – high-level review of alternatives to WCF RIA Services, data and authentication
  • Client Authentication – securing access to data APIs
  • Implementing a singleton token service – pattern for implementing singletons and creating a token service to secure data APIs
  • Implementing an identity service client – implementing an authentication service
  • Migrating the authentication UI – migrating the Silverlight login UI, alternative to Silverlight DataForm
  • Integrating authentication and navigation – WIP – will migrate the role check before navigating
  • Implement the time entry service – WIP – will implement the Time Entry Service client
  • Migrating the time entry UI – WIP – will look at alternatives to the Silverlight DataGrid
  • Wrap-up – WIP – will summarize the key migration activites
  • The TimeEntry Sample apps – overview of sample apps and build instructions
  • Useful resources

Uno Platform Team

Share this post: