Die Version 2.1 des OpenSilver-Projekts wurde veröffentlicht, die die Silverlight-Plattform weiterentwickelt und es ermöglicht, interaktive Webanwendungen mit C#, F#, XAML und .NET-Technologien zu erstellen. Mit OpenSilver kompilierte Silverlight-Anwendungen können in jedem Desktop- und Mobilbrowser, der WebAssembly unterstützt, ausgeführt werden, jedoch ist die Kompilierung derzeit nur unter Windows mit Visual Studio möglich. Der Projektcode ist in C# geschrieben und steht unter der MIT-Lizenz.
Im Jahr 2021 hat Microsoft die Entwicklung und Unterstützung der Silverlight-Plattform zugunsten standardisierter Web-Technologien eingestellt. Das OpenSilver-Projekt zielt ursprünglich darauf ab, ein Werkzeug zum Verlängern der Lebensdauer bestehender Silverlight-Anwendungen bereitzustellen, während die Unterstützung durch Microsoft eingestellt wurde und die Browser-Plug-ins nicht mehr unterstützt werden. OpenSilver unterstützt alle grundlegenden Funktionen der Silverlight-Engine, einschließlich vollständiger Unterstützung der Sprachen C# und XAML sowie der Implementierung eines Großteils der API der Plattform, die ausreichend ist, um C#-Bibliotheken wie Telerik UI, WCF RIA Services, PRISM und MEF zu nutzen.
OpenSilver hat sich inzwischen über die bloße Verlängerung von Silverlight hinaus entwickelt und kann als eigenständige Plattform zur Erstellung neuer Anwendungen angesehen werden. Beispielsweise wird die Entwicklungsumgebung (ein Add-on für Visual Studio) weiterentwickelt, um Unterstützung für neue Versionen der Programmiersprache C# und der .NET-Plattform zu bieten, und es wird Kompatibilität mit JavaScript-Bibliotheken gewährleistet.
Von OpenSilver wird der Code offener Projekte wie Mono (mono-wasm) und Microsoft Blazor (Teil von ASP.NET Core) verwendet. Anwendungen werden im Browser durch die Kompilierung in WebAssembly-Intermediate-Code ausgeführt. OpenSilver setzt die Entwicklung des Projekts CSHTML5 fort, das die Kompilierung von C#/XAML/.NET-Anwendungen in JavaScript-Formate für den Browser ermöglicht und erweitert dessen Codebasis um die Fähigkeit, C#/XAML/.NET in WebAssembly und nicht in JavaScript zu kompilieren.
Wichtige Verbesserungen in OpenSilver 2.1:
- Die Unterstützung der funktionalen Programmiersprache F# wurde hinzugefügt, die zusammen mit der Markup-Sprache XAML in einem Projekt verwendet werden kann, um komplexe Benutzeroberflächen zu erstellen.
- Der ursprüngliche Satz an Beispielen 'Silverlight Toolkit Samples', der von Microsoft bereitgestellt wurde, wurde für die Ausführung mit OpenSilver angepasst.
- Die Unterstützung für anpassbare Design-Themen wurde hinzugefügt. Im Lieferumfang sind 12 Themen enthalten, die aus dem Silverlight Toolkit portiert wurden.
- In die Galerie der Anwendungsbeispiele wurden über 100 kleine Programme in F# hinzugefügt.
- Die Weiterentwicklung von SampleCRM wurde fortgesetzt, einem Beispiel für die Implementierung eines CRM-Systems zur Organisation der Kundeninteraktion in einem Unternehmen und zur Unterstützung des Vertriebs.

- Eine vorläufige Version des XR#-Frameworks wurde vorgeschlagen, um .NET und XAML bei der Entwicklung von 3D-Anwendungen und Systemen für erweitere oder virtuelle Realität zu nutzen.
- Das Animationssystem wurde überarbeitet, in dem die ursprünglich in Silverlight angebotenen Mittel zur Arbeit mit Animationen implementiert wurden.
- Im UI-Element UIElement.Clip wurde die Möglichkeit verwirklicht, beliebige geometrische Objekte zu verwenden.
- Die Leistung wurde optimiert.
In den zukünftigen Plänen wird die Bereitstellung einer visuellen Entwurfsumgebung erwähnt, die das Erstellen von XAML-Schnittstellen im WYSIWYG-Modus ermöglicht, die Unterstützung zusätzlicher WPF-Funktionen, die Unterstützung der Funktion „Hot Reload“ in XAML (Anwendung von im Code vorgenommenen Änderungen auf eine laufende Anwendung), die Unterstützung von LightSwitch, die Verbesserung der Integration mit dem VS Code-Editor sowie die Integration mit dem .NET-Framework MAUI (Multi-platform App UI) zur Erstellung hybrider Anwendungen, die die native API der Plattform verwenden.
Quelle: opennet.ru

