A decade ago, Silverlight was king and I loved every minute of it. XAML provided precise and flexible layout, the Silverlight plugin alleviated most browser compatibility issues, MVVM and data binding allowed you to reduce coupling, and WCF RIA Services made it easy to rapidly build data services with corresponding client-side models.
But as HTML tooling improved and browser plugins fell out of favor, Microsoft made the decision to sunset Silverlight and end its mainstream support window in October 2021. Even with time left on the support clock, the only remaining browser that runs Silverlight without browser modifications is Internet Explorer.
It is time to move on, and fortunately, there are a wealth of modern development platforms to choose from. Although unlike other deprecated development platforms, Silverlight doesn’t leave many options to salvage all of your existing code, but we’ll identify some ways to make a migration less painful.
Modern Web
At Trailhead, we have worked with many clients to help them migrate their application from Silverlight, and the most common choice is to develop the application with modern web platforms: Angular or React, often paired with Telerik Kendo UI and built with corresponding REST APIs, typically built with ASP.NET or ASP.NET Core. This still gives you a feature-rich user experience with the added benefit of responsive design that can support tablets or mobile phones–something Silverlight was never able to fully offer.
Even with this approach, it doesn’t require you to throw away all layers of your Silverlight application. There are various approaches to upfitting your data services to support web applications so you can retain a good portion of your back-end logic while you replace the front-end with a modern web application. If you want to update your back-end services to the latest technologies, such as ASP.NET Core, this could be done all at once, or in phases if time and budget don’t allow for a full rewrite before the Silverlight end-of-life.
Xamarin Mobile
For others, even though their application was built as a desktop web application with Silverlight, it was really best suited as a mobile application. In these cases, we often build a cross-platform mobile application (iOS, Android, Windows) using Xamarin Native or Xamarin Forms along with Telerik UI for Xamarin. Again, you have the capability to upfit your existing data services to work with a new mobile application or build a modern data layer that uses your existing database.
Windows – Xamarin or UWP
Some Silverlight apps were really just as well suited to be a Windows application. This choice greatly limits your deployment options when compared to web or cross-platform mobile, but for applications that only need to run on Windows, Xamarin or Universal Windows Platform (UWP) will give your development team a familiar XAML design language with vast improvements from the Silverlight era.
Blazor
Blazor and WebAssembly are still in their infancy, but I’ll mention it here because it has similar aims that Silverlight had: the ability to develop with .NET and use it seamlessly across current web browsers. Blazor accomplishes this in a different way by compiling a micro version of the .NET Framework and run-time into WebAssembly, then running your native .NET code in the browser without the need for a plugin. It also provides a javascript patch that allows your code to run in browsers that don’t support WebAssembly, even though most of them already do. Keep in mind, though, you will still need to be comfortable developing with HTML and CSS for your UIs.
Proceed with caution right now, as Blazor is still experimental and unsupported.
Trailhead Can Help
If you’ve read this blog post and now have a better understanding of a way forward with your Silverlight application, but still need some help with the specific technology details, you’ve come to the right place.
Trailhead’s knowledge of Microsoft development technologies is both wide and deep, and our long experience over their history gives us a unique perspective. We can understand your legacy code AND help you upgrade it to something modern. We’ve helped many clients with this exact same transition, and we can help you, too!
There are different depths of update and approaches we would recommend for building a replacement for a Silverlight application based on your budget and timeline.
Of course each team, company, project, and situation is a little different, but perhaps your project would fit into one of these three typical approaches below:
- The teach-me approach – Maybe you already have an internal team that has been clamoring to learn something new and update your legacy applications. If that’s the case, we can help them get up-to-speed on all the latest technologies by sitting together and showing them everything they’ll need to know to build a beautiful, modern version of your software.
- The do-it-for-me approach – If you don’t have an internal team, or if they’re too busy or inexperienced to do the work, Trailhead can do it all for you. We have a top-notch team that can handle everything–making those difficult CTO-level decisions, designing the software architecture, setting up your cloud hosting, creating your DevOps pipeline, the actual programming work, and of course the testing.
- The hybrid approach – Most likely you’re somewhere in between the extremes of #1 and #2 above. We can tailor our involvement to your needs, company, team, and situation.