Die Entwickler des Programms Bottles, das eine BenutzeroberflĂ€che zur Vereinfachung der Installation, Konfiguration und AusfĂŒhrung von Windows-Anwendungen unter Linux bietet, haben Informationen ĂŒber die Weiterentwicklung der Initiative Bottles Next veröffentlicht, die auf eine vollstĂ€ndige Neugestaltung der Architektur und des Codes des Projekts abzielt. Es wird angemerkt, dass die bestehende monolithische Anwendung in Python mit einer GTK-OberflĂ€che viele Ideen, wie die UnterstĂŒtzung von macOS, nicht umsetzen kann, die Möglichkeiten einschrĂ€nkt und zu Problemen fĂŒhrt, die sich ohne grundlegende Ănderungen der Architektur nicht lösen lassen.
Die neue Architektur sieht die Aufteilung der Anwendung in drei separate Komponenten vor: einen Client mit einer grafischen BenutzeroberflĂ€che, einen Server mit der Logik zum Starten von Anwendungen und zur Verwaltung der Wine-PrĂ€fixe sowie einen Agenten, der unter Wine lĂ€uft und mit der Windows-API interagiert. ZunĂ€chst war geplant, fĂŒr die Implementierung des Clients Web-Technologien (Electron und VueJS) zu verwenden, aber Server es wurde beschlossen, die Client-Software in der Programmiersprache Go zu schreiben. Die entwickelten Prototypen und die Ablehnung der Idee des Wechsels zur Electron-Engine durch die Gemeinschaft veranlassten die Entwickler, von diesem Plan Abstand zu nehmen.
Letztendlich wurde entschieden, den Client mit Server der Programmiersprache Rust zu entwickeln und die grafische BenutzeroberflĂ€che auf dem Framework libcosmic aufzubauen. Libcosmic wird in der Desktop-Umgebung COSMIC verwendet und ist ein Overlay ĂŒber die Bibliothek iced, die Funktionen zur Erstellung grafischer Anwendungen und Applets bereitstellt. FĂŒr die Entwicklung wird ein reaktives Programmiermodell und eine Architektur verwendet, die Entwicklern, die mit der deklarativen Schnittstellensprache Elm vertraut sind, vertraut ist. Zum Rendern können Engines auf Basis von Vulkan, Metal, DX12, OpenGL 2.1+ und OpenGL ES 2.0+ verwendet werden.
Es wird angemerkt, dass die Entwickler es bevorzugt hĂ€tten, die Programmiersprache Go zu verwenden, aber aufgrund des Fehlens hochwertiger Toolkits fĂŒr die Entwicklung von BenutzeroberflĂ€chen darauf verzichten mussten. Neben der neuen vereinfachten BenutzeroberflĂ€che ist geplant, die gewohnte klassische Schnittstelle als Option zu belassen. Der Code des Agenten wird in C# und .NET geschrieben, was durch die Notwendigkeit erklĂ€rt wird, den Service WineBridg in einer Windows-Umgebung, die von Wine geformt wurde, zu starten. Der Container zum Testen des anfĂ€nglichen Prototyps von Bottles Next, der in Rust geschrieben wurde, soll in einigen Wochen veröffentlicht werden. Derzeit ist nur eine einfache Demoversion verfĂŒgbar.


Quelle: opennet.ru
