Die Entwickler des Programms Bottles, das eine Schnittstelle zur Vereinfachung der Installation, Konfiguration und AusfĂŒhrung von Windows-Anwendungen unter Linux bietet, haben Informationen ĂŒber die Entwicklung der Initiative Bottles Next veröffentlicht, die auf eine vollstĂ€ndige Ăberarbeitung der Architektur und des Codes des Projekts abzielt. Es wird festgestellt, dass die bestehende monolithische Anwendung in Python mit einer GTK-OberflĂ€che viele Ideen, wie beispielsweise die UnterstĂŒtzung von macOS, nicht umsetzen kann, die Möglichkeiten einschrĂ€nkt und zu Problemen fĂŒhrt, die ohne radikale Ănderungen an der Architektur nicht gelöst werden können.
Die neue Architektur sieht die Aufteilung der Anwendung in drei separate Komponenten vor: einen Client mit der grafischen BenutzeroberflĂ€che, einen Server mit der Logik fĂŒr das Starten von Anwendungen und das Verwalten von Wine-PrĂ€fixen sowie einen Agenten, der unter Wine lĂ€uft und mit der Windows-API interagiert. UrsprĂŒnglich war geplant, beim Client auf Web-Technologien (Electron und VueJS) zurĂŒckzugreifen, aber der Server sollte in Go geschrieben werden, jedoch haben die erstellten Prototypen und die Ablehnung der Idee eines Wechsels zur Electron-Engine durch die Community die Entwickler dazu gebracht, diese Idee aufzugeben.
Letztendlich wurde beschlossen, fĂŒr die Entwicklung des Clients und Server Die Programmiersprache Rust wird verwendet, um eine grafische BenutzeroberflĂ€che auf Basis des Frameworks libcosmic zu erstellen. Libcosmic wird in der Desktop-Umgebung COSMIC eingesetzt und stellt eine Erweiterung der iced-Bibliothek dar, die Funktionen zur Erstellung grafischer Anwendungen und Applets bietet. Bei der Entwicklung kommt ein reaktives Programmiermodell und eine Architektur zum Einsatz, die Entwicklern, die mit der deklarativen Schnittstellenbeschreibungssprache Elm vertraut sind, vertraut ist. FĂŒr das Rendering können Engines verwendet werden, die auf Vulkan, Metal, DX12, OpenGL 2.1+ und OpenGL ES 2.0+ basieren.
Es wird angemerkt, dass es den Entwicklern angenehmer wĂ€re, die Programmiersprache Go zu verwenden, jedoch aufgrund fehlender qualitativ hochwertiger Entwicklungstools fĂŒr BenutzeroberflĂ€chen davon Abstand genommen werden musste. ZusĂ€tzlich zum neuen vereinfachten Interface wird als Option die vertraute klassische BenutzeroberflĂ€che beibehalten. Der Agenten-Code wird in C# und .NET geschrieben, was durch die Notwendigkeit, den Service WineBridg in einer unter Windows formierten Umgebung, die durch Wine geschaffen wurde, auszufĂŒhren, erklĂ€rt wird. Ein Container fĂŒr das Testing des ersten Prototyps von Bottles Next, der in Rust geschrieben wurde, soll in einigen Wochen veröffentlicht werden. Aktuell ist nur eine einfache Demoversion verfĂŒgbar.


Quelle: opennet.ru
