OpenSilver is an open-source framework designed to facilitate the development of rich internet applications (RIAs) using C# and XAML. It was developed as a successor to Microsoft Silverlight, enabling developers to migrate existing Silverlight applications to the web without rewriting their codebase. This framework is built on current web standards, including HTML5, CSS3, and WebAssembly, ensuring broad compatibility across modern web browsers regardless of the operating system without requiring plugins.
Developer(s) | Userware |
---|---|
Initial release | March 9, 2020 |
Stable release | 2.2
/ April 30, 2024[1] |
Repository | github |
Written in | C# |
Operating system | Cross-platform |
Platform | .NET, WebAssembly |
Available in | English |
Type | Software framework |
License | MIT License |
Website | opensilver |
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,[2] F#,[3] 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 latest release, version 2.2,[4] has positioned itself as an advanced web framework designed for line-of-business applications.
History
editIn 2014, Userware, founded in 2007 and led by Giovanni Albani,[5] launched CSHTML5,[6] a precursor to becoming OpenSilver. This initiative began efforts to provide a contemporary alternative to Microsoft Silverlight in 2020,[7] 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.[8] 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.[9] 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
editVersion | Release Date | Notes | |
---|---|---|---|
Technology Preview | March 9, 2020 | / | |
Beta | September 13, 2021 | / | |
1.0 | October 12, 2021 | / | |
1.1 | October 4, 2022 | Support for third-party libraries, including Telerik UI for Silverlight. | |
2.0 | October 16, 2023 | Support for the VB.NET programming language. | |
2.1 | February 6, 2024 | Support for the F# programming language and integration of the Microsoft Silverlight Toolkit. | |
2.2 | April 23, 2024 | Support for Visual Studio LightSwitch. | |
3.0 | July 10, 2024 | AI-powered UI designer and supports Windows, Linux, and Mac. |
Technology
editOpenSilver 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
edit- 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
edit- 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
edit- 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
edit- 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
editOpenSilver offers development tools and a software development kit (SDK[10]) 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.
Product name | Code name | Version number | .NET Framework | .NET (formerly .NET Core) |
---|---|---|---|---|
Visual Studio 2019 | Dev16 | 16.0 | Only to run the OpenSilver simulator application | 6.0 |
Visual Studio 2022 | Dev17 | 17.0 | Only to run the OpenSilver simulator application | 6.0, Recommended: 7.0, 8.0 |
Note: The roadmap for further development of OpenSilver and its ecosystem included developing CLI and supporting Visual Studio Code.
Licensing
editOpenSilver is licensed under the MIT License, 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
editReferences
edit- ^ "OpenSilver 2.2 Aims to Revive Visual Studio LightSwitch Legacy Apps". Visual Studio Magazine. Retrieved April 30, 2024.
- ^ "OpenSilver 2.0 Adds VB.NET, RIA Services and Live XAML Preview". InfoQ. Retrieved October 20, 2023.
- ^ "OpenSilver 2.1 adds support for F#". SD Times. 7 February 2024. Retrieved February 7, 2024.
- ^ Ramel, David (April 30, 2024). "OpenSilver 2.2 Aims to Revive Visual Studio LightSwitch Legacy Apps". Visual Studio Magazine. Retrieved July 10, 2024.; Krill, Paul (April 30, 2024). "OpenSilver 2.2 shines on LightSwitch". InfoWorld. Retrieved July 10, 2024.; Kapić, Edin (May 30, 2024). "OpenSilver 2.2 Migrates LightSwitch Applications". InfoQ. Retrieved July 10, 2024.; Ewbank, Kay (April 30, 2024). "OpenSilver 2.2 Adds LightSwitch Compatibility Pack". I-Programmer. Retrieved July 10, 2024.; Lee, Michaelis (May 1, 2024). "Continuing Development Of Silverlight Technology: OpenSilver 2.2 Platform Released". Gamingdeputy. Retrieved July 10, 2024.
- ^ "OpenSilver Ships with Giovanni Albani". .NET Rocks!. Retrieved December 9, 2021.
- ^ "Missing Silverlight and Waiting for Blazor? CSHTML5 for C# Web Development Goes Open Source". Visual Studio Magazine. Retrieved March 12, 2019.
- ^ Schwichtenberg, Holger (March 11, 2020). "OpenSilver: Silverlight kehrt als Open Source zurück" [OpenSilver: Silverlight returns as open source]. Heise Online (in German). Retrieved July 10, 2024.; Schwichtenberg, Holger (March 11, 2020). "OpenSilver: Silverlight kehrt als Open Source zurück" [OpenSilver: Silverlight returns as open source]. Heise Online (in German). Retrieved July 10, 2024.; Krill, Paul (March 11, 2020). "OpenSilver resurrects Silverlight with WebAssembly". InfoWorld. Retrieved July 10, 2024.; Krill, Paul; Elyan, Jean (March 13, 2024). "OpenSilver ressuscite Silverlight avec WebAssembly" [OpenSilver Resurrects Silverlight with WebAssembly]. Le Monde Informatique (in French). Retrieved July 10, 2024.
- ^ Ramel, David (October 26, 2021). "OpenSilver v1.0 Arrives as Microsoft Ends Silverlight Support". Visual Studio Magazine. Retrieved July 10, 2024.; Anderson, Tim (September 16, 2021). "OpenSilver throws Microsoft Silverlight devs a lifeline as end of support looms – or you could forget it ever happened". The Register. Situation Publishing. Retrieved July 10, 2024.; Krčmář, Petr (October 14, 2021). "Silverlight je mrtev, ať žije OpenSilver" [Silverlight is dead, long live OpenSilver]. Root.cz (in Czech). Retrieved July 10, 2024.; Taler, Hubert (October 14, 2021). "Umarł Silverlight, niech żyje OpenSilver" [Silverlight is dead, long live OpenSilver]. Spider's Web (in Polish). Retrieved July 10, 2024.
- ^ "OpenSilver". AlternativeTo. Retrieved July 10, 2024.
- ^ "Download OpenSilver SDK". OpenSilver website.
Further reading
edit- OpenSilver resurrects Silverlight with WebAssembly
- OpenSilver adds F# language 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
edit- Official website
- OpenSilver on GitHub
- OpenSilver Framework on Twitter
- OpenSilver Framework's channel on YouTube
Documentation and resources
edit- 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 on GitHub Issues.