OpenSilver
   HOME

TheInfoList



OR:

OpenSilver (formerly CSHTML5 or C#/XAML for HTML5) is an open-source framework designed to facilitate the development of rich internet applications (RIAs) using C# and
XAML Extensible Application Markup Language (XAML ) is a declarative XML-based language developed by Microsoft for initializing structured values and objects. It is available under Microsoft's Open Specification Promise. XAML is used extensively i ...
. It was developed as a successor to
Microsoft Silverlight Microsoft Silverlight is a discontinued application framework designed for writing and running rich internet applications, similar to Adobe Inc., Adobe's Run time environment, runtime, Adobe Flash. While early versions of Silverlight focused on ...
, enabling developers to migrate existing Silverlight applications to the web without rewriting their codebase. This framework is built on current web standards, including
HTML5 HTML5 (Hypertext Markup Language 5) is a markup language used for structuring and presenting hypertext documents on the World Wide Web. It was the fifth and final major HTML version that is now a retired World Wide Web Consortium (W3C) recommend ...
, CSS3, and
WebAssembly WebAssembly (Wasm) defines a portable binary-code format and a corresponding text format for executable programs as well as software interfaces for facilitating communication between such programs and their host environment. The main goal of ...
, ensuring broad compatibility across modern web browsers regardless of the operating system without requiring plugins. OpenSilver is a community-driven project that is freely available for anyone to use, modify, or improve. It operates under the MIT license. It is compatible with Microsoft's .NET platform, allowing developers to use C#, VB.NET, F#, and XAML for application development, thereby maintaining a familiar development experience for those from a Silverlight or WPF background. Over the past two years, OpenSilver's release 2.2 has positioned itself as an advanced web framework designed for line-of-business applications. Until the end of 2024, releases 3.0 and the version 3.1 bring several key features such as XAML designer for Visual Studio Code, improvements of WPF support, and support for .NET 9. As of March 2025, OpenSilver version 3.2 introduces support for porting Silverlight and WPF applications to web, mobile, and non-Windows desktop platforms.


History

In 2014, Userware, founded in 2007 and led by Giovanni Albani, launched CSHTML5, a precursor to becoming OpenSilver. This initiative began efforts to provide a contemporary alternative to Microsoft Silverlight in 2020, focusing on open-source development. As technology progressed and the need for modern web application frameworks grew, CSHTML5 evolved, culminating in the creation of OpenSilver 1.0 in October 2021. OpenSilver aimed to seamlessly integrate Silverlight's legacy capabilities with the demands of modern web development. The inception of OpenSilver was motivated by the discontinuation of Silverlight and the need for a robust solution that allows legacy Silverlight applications to continue functioning in a modern web environment. By providing a path forward for these applications, OpenSilver helps preserve the investment made in Silverlight-based projects while taking advantage of the advancements in web technology.


Version history and milestones


Technology

OpenSilver integrates three main components: # Compiler - Converts XAML into C# equivalents and copies resources, such as images, to the output folder. # Runtime - Bridges the HTML DOM and the XAML code. # Simulator - Allows developers to debug OpenSilver web applications like desktop applications. OpenSilver's foundation is its ability to take .NET assemblies and XAML files (the building blocks of Silverlight applications) as input and use Blazor to compile them in WebAssembly.


Compilation process

* XAML to C# conversion - Converts XAML files into C# classes, preserving the layout and styling of Silverlight applications. * .NET to WebAssembly execution - NET assemblies, which include C#, VB.NET, and F# code, can execute in web browsers through two primary modes supported by Mono for WebAssembly: interpreter mode and Ahead-of-Time (AOT) compilation.


Runtime environment

* WebAssembly Runtime - The compiled code runs within the browser's WebAssembly runtime, generating HTML, CSS, and JavaScript to render the application. * JavaScript Interoperability - A JavaScript layer bridges WebAssembly and the browser's native functions, allowing access to browser APIs that are not directly accessible via WebAssembly. * HTML/CSS Renderer - The browser renders the converted HTML and CSS, including the visual layout, styles, and interactive elements defined in the original XAML.


Development and debugging

* Facilitate development and testing - The simulator provides a robust and accurate environment mimicking Silverlight's behavior, aiding the transition from Silverlight to OpenSilver.


High-level architecture of OpenSilver

* Blazor web app (C#) - The entry point creates an OpenSilver application instance and runs the code in WebAssembly. * OpenSilver app (C#, VB, F#, and XAML) - Integrates several mechanisms to run converted Silverlight applications on standard web technologies in modern browsers without plugins.


Development tools

OpenSilver offers development tools and a
software development kit A software development kit (SDK) is a collection of software development tools in one installable package. They facilitate the creation of applications by having a compiler, debugger and sometimes a software framework. They are normally specific t ...
(SDK) to aid application development. These tools include Visual Studio project templates and the OpenSilver Simulator, simplifying the workflow for developers accustomed to Silverlight or .NET environments.


Supported IDE


Supported coding editors

NOTE
OpenSilver CLI
is supported since OpenSilver 3.0. It allows the creation and manipulation of OpenSilver projects with
Command-line interface A command-line interface (CLI) is a means of interacting with software via command (computing), commands each formatted as a line of text. Command-line interfaces emerged in the mid-1960s, on computer terminals, as an interactive and more user ...
, which makes it convenient for users to use their preferred code editors for software development.


Licensing

OpenSilver is licensed under the
MIT License The MIT License is a permissive software license originating at the Massachusetts Institute of Technology (MIT) in the late 1980s. As a permissive license, it puts very few restrictions on reuse and therefore has high license compatibility. Unl ...
, which allows users to freely use, modify, distribute, and sell the software as long as they include the original copyright and permission notices.


See also

*
Microsoft Silverlight Microsoft Silverlight is a discontinued application framework designed for writing and running rich internet applications, similar to Adobe Inc., Adobe's Run time environment, runtime, Adobe Flash. While early versions of Silverlight focused on ...
*
.NET The .NET platform (pronounced as "''dot net"'') is a free and open-source, managed code, managed computer software framework for Microsoft Windows, Windows, Linux, and macOS operating systems. The project is mainly developed by Microsoft emplo ...
*
Blazor Blazor is a free and open-source web framework that enables developers to create web user interfaces (UI) based on components, using C# and HTML. It is being developed by Microsoft, as part of the ASP.NET Core web app framework. Blazor can be u ...
*
WebAssembly WebAssembly (Wasm) defines a portable binary-code format and a corresponding text format for executable programs as well as software interfaces for facilitating communication between such programs and their host environment. The main goal of ...
* Mono


References


Further reading


OpenSilver 3.2 Extends Silverlight and WPF to Mobile Devices

OpenSilver 3.2 Takes WPF Apps to Mobile with .NET MAUI Hybrid Integration

OpenSilver 3.1: A New Era for WPF Developers and Web Migration

OpenSilver 3.0 Releases WYSIWYG UI Designer with AI Support





OpenSilver 2.1: A Framework for Modern Business Web Apps That Support F#

OpenSilver 2.1 Brings F# Support for the Silverlight Reimplementation

OpenSilver 2.0 Adds VB.NET, RIA Services and Live XAML Preview

OpenSilver: Open-Source Silverlight via WebAssembly

From CSHTML5 to OpenSilver


External links

* * {{GitHub, OpenSilver/OpenSilver


Documentation and resources

* '
Official Documentation
'' - Provides an overview of OpenSilver, including how to get started, migration strategies, and detailed technical information. * Tutorials and Guides - Accessible on GitHub, along with sample projects
examples
and helper tools. * Community Forums and Support - Discussions o
GitHub Issues
2020 software .NET software Web programming Free and open-source software Software using the MIT license